private static void CreateDialectsDropdown() { EditorApplication.ExecuteMenuItem("GameObject/UI/Dropdown"); GameObject selection = Selection.activeGameObject; if (selection) { Dropdown dropdown = selection.GetComponent <Dropdown>(); if (dropdown) { selection.name = "DropdownDialects"; List <string> options = new List <string>(); options.Add("Dialect"); SpeechDetectionUtils.PopulateDropdown(dropdown, options); RectTransform rectTransform = dropdown.GetComponent <RectTransform>(); rectTransform.pivot = new Vector2(0.5f, 0.5f); rectTransform.localPosition = new Vector3(272, 231, 0); rectTransform.sizeDelta = new Vector2(267, 44); } } }
public static void PopulateLanguagesDropdown(Dropdown dropdownLanguages, LanguageResult languageResult) { if (null == dropdownLanguages) { Debug.LogError("The dropdown for languages is not set!"); return; } if (null == languageResult) { Debug.LogError("The language result is not set!"); return; } // prepare the language drop down items List <string> options = GetDefaultLanguageOptions(); if (null != languageResult) { if (null != languageResult.languages) { foreach (Language language in languageResult.languages) { if (!string.IsNullOrEmpty(language.display)) { options.Add(language.display); } else if (!string.IsNullOrEmpty(language.name)) { options.Add(language.name); } } } } SpeechDetectionUtils.PopulateDropdown(dropdownLanguages, options); }
/// <summary> /// Handler for changing languages /// </summary> public static void HandleLanguageChanged(Dropdown dropdownLanguages, Dropdown dropdownDialects, LanguageResult languageResult, ISpeechDetectionPlugin plugin) { if (null == dropdownLanguages) { Debug.LogError("The dropdown for languages is not set!"); return; } if (null == dropdownDialects) { Debug.LogError("The dropdown for dialects is not set!"); return; } if (null == languageResult) { Debug.LogError("The language result is not set!"); return; } string display = dropdownLanguages.options[dropdownLanguages.value].text; //Debug.Log(display); SetDefaultLanguage(display); Language language = null; if (dropdownLanguages.value > 0) { language = SpeechDetectionUtils.GetLanguage(languageResult, display); if (null == language) { Debug.LogError("Did not find specified language!"); } else { LanguageChangedResult languageChangedResult = new LanguageChangedResult(); languageChangedResult._mLanguage = language.name; plugin.Invoke(languageChangedResult); } } List <string> options = SpeechDetectionUtils.GetDefaultDialectOptions(); if (dropdownLanguages.value > 0 && null != language && null != language.dialects && language.dialects.Length > 0) { foreach (Dialect dialect in language.dialects) { if (!string.IsNullOrEmpty(dialect.display)) { options.Add(dialect.display); } else if (!string.IsNullOrEmpty(dialect.description)) { options.Add(dialect.description); } else if (!string.IsNullOrEmpty(dialect.name)) { options.Add(dialect.name); } } } SpeechDetectionUtils.PopulateDropdown(dropdownDialects, options); SpeechDetectionUtils.SetInteractable(options.Count > 1, dropdownDialects); SpeechDetectionUtils.SelectIndex(dropdownDialects, 1); HandleDialectChanged(dropdownDialects, languageResult, plugin); }
/// <summary> /// Disable the dialects UI when not available /// </summary> public static void DisableDialects(Dropdown dropdown) { SpeechDetectionUtils.PopulateDropdown(dropdown, SpeechDetectionUtils.GetDefaultDialectOptions()); SpeechDetectionUtils.SetInteractable(false, dropdown); }