示例#1
0
文件: Menu.cs 项目: juancpineda/Pesto
        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);
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
 /// <summary>
 /// Disable the dialects UI when not available
 /// </summary>
 public static void DisableDialects(Dropdown dropdown)
 {
     SpeechDetectionUtils.PopulateDropdown(dropdown, SpeechDetectionUtils.GetDefaultDialectOptions());
     SpeechDetectionUtils.SetInteractable(false, dropdown);
 }