Obtenir la liste des paramètres régionaux que vous avez créés
Environnement de vérification
- Windows
-
- Fenêtres 11
- Éditeur Unity
-
- 2021.3.12f1
- Système d’entrée (Unity Technologies)
-
- 1.4.4
- Localisation (Unity Technologies)
-
- 1.3.2
Conditions préalables à cette astuce
Les paramètres suivants ont été définis à l’avance comme prémisse pour la description de cette astuce.
Objectifs de nos conseils
Affiche la liste des paramètres régionaux correspondants dans l’interface utilisateur déroulante et active le texte d’affichage pour qu’il corresponde aux paramètres régionaux sélectionnés par l’utilisateur.
Connaissances préalables et préparation
Cette astuce suppose la localisation du texte suivant : Tout d’abord, reportez-vous aux conseils suivants pour vous préparer à l’affichage de texte localisé.
Emplacement de la liste déroulante de modification des paramètres régionaux
Fournit une liste déroulante pour afficher une liste de paramètres régionaux. Vous devez uniquement pouvoir afficher et sélectionner, alors assurez-vous que les paramètres de l’interface utilisateur sont définis de manière appropriée.
Obtenir une liste de paramètres régionaux
Vous pouvez obtenir la liste des paramètres régionaux LocalizationSettings.AvailableLocales.Locales
créés dans .
Si vous l’utilisez et que vous le définissez sur le menu déroulant au début de la scène, tout va bien.
Toutefois, l’initialisation n’est peut-être pas terminée lorsque Localization
vous démarrez le jeu, vous devrez donc peut-être attendre qu’elle se termine.
Tout d’abord, créez un script. DropDownEvent
Conservez le nom .
Le script ressemble à ceci :
using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.UI;
public class DropDownEvent : MonoBehaviour
{
// 最初のフレームアップデートの前に開始が呼び出されます
async void Start()
{
// Localization の初期化が完了するまで待機します
await LocalizationSettings.InitializationOperation.Task;
// 処理対象の Dropdown コンポーネントを取得します
var dropdownLocale = GetComponent<Dropdown>();
dropdownLocale.options.Clear();
// LocalizationSettings.AvailableLocales.Locales からロケール一覧を取得してオプションを追加します
foreach (var locale in LocalizationSettings.AvailableLocales.Locales)
{
dropdownLocale.options.Add(new Dropdown.OptionData(locale.name));
}
// 初期選択されているロケールのインデックスを取得して選択します
dropdownLocale.value = LocalizationSettings.AvailableLocales.Locales.IndexOf(LocalizationSettings.SelectedLocale);
// ドロップダウンのアイテムが選択されたときにロケールを変更します
dropdownLocale.onValueChanged.AddListener((index) =>
{
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
});
}
}
Start
La méthode effectue le traitement au début de la scène, mais à ce stade Localization
, l’initialisation de peut ne pas avoir été terminée.
await LocalizationSettings.InitializationOperation.Task
Attendez la fin de l’initialisation.
await
, veuillez donc Start
l’ajouter à la async
méthode.
LocalizationSettings.AvailableLocales.Locales
Ensuite, contient une liste des paramètres régionaux que vous avez créés, afin foreach
de traiter autant de paramètres régionaux que vous le souhaitez.
Dropdown.OptionData
Définissez Dropdown
le nom des paramètres régionaux sur et ajoutez-le à .
Pour sélectionner Dropdown.value
les paramètres régionaux actuels dans la liste déroulante, recherchez les paramètres régionaux cibles dans la propriété et définissez l’index.
C’est la fin de la création de la liste, mais je souhaite également inclure un processus qui modifie les paramètres régionaux lorsque l’élément déroulant est sélectionné.
onValueChanged
Ajoute le changement de paramètres régionaux à l’événement. C’est la même chose que le conseil précédent.
Joignez le script que vous avez créé à la liste déroulante.
Exécuter et vérifier
Essayez d’exécuter le jeu pour le vérifier.
Il arrive que la liste des paramètres régionaux ne soit pas définie immédiatement après le début du jeu, Localization
car elle n’est pas initialisée.
Après un peu de temps, vous devriez pouvoir voir la liste des paramètres régionaux enregistrés dans la liste déroulante. Si vous essayez de changer d’élément, vous devriez pouvoir voir que le contenu du texte change.