using UnityEngine; namespace Crosstales.RTVoice.Tool { /// Change the gender of all voices (useful for eSpeak). [HelpURL("https://www.crosstales.com/media/data/assets/rtvoice/api/class_crosstales_1_1_r_t_voice_1_1_tool_1_1_change_gender.html")] [ExecuteInEditMode] public class ChangeGender : MonoBehaviour { #region Variables /// The new gender for all voices. [Tooltip("The new gender for all voices.")] public Model.Enum.Gender NewGender; /* /// Refresh on voices ready (default: true). [Tooltip("Refresh on voices ready (default: true).")] public bool RefreshOnVoicesReady = true; */ /// Change voices only when eSpeak is used (default: true). [Tooltip("Change voices only when eSpeak is used (default: true).")] public bool ESpeakOnly = true; #endregion #region MonoBehaviour methods private void Start() { Speaker.Instance.OnVoicesReady += Change; } private void OnDestroy() { if (!Util.Helper.isEditorMode && Speaker.Instance != null) Speaker.Instance.OnVoicesReady -= Change; } #endregion #region Public methods public void GenderChanged(int index) { NewGender = (Model.Enum.Gender)index; Change(); } public void Change() { if (!ESpeakOnly || ESpeakOnly && Speaker.Instance.ESpeakMode) { foreach (Model.Voice voice in Speaker.Instance.Voices) { voice.Gender = NewGender; } } } #endregion } } // © 2018-2020 crosstales LLC (https://www.crosstales.com)