Abrufen einer Liste der von Ihnen erstellten Gebietsschemata
Verifizierungsumgebung
- Fenster
-
- Windows 11
- Unity-Editor
-
- 2021.3.12f1
- Eingabesystem (Unity Technologies)
-
- 1.4.4
- Lokalisierung (Unity Technologies)
-
- 1.3.2
Voraussetzungen für diesen Tipp
Die folgenden Einstellungen wurden im Vorfeld als Prämisse für die Beschreibung dieses Tipps vorgenommen.
Ziele unserer Tipps
Zeigt eine Liste der entsprechenden Gebietsschemas in der Dropdown-Benutzeroberfläche an und schaltet den Anzeigetext so um, dass er mit dem vom Benutzer ausgewählten Gebietsschema übereinstimmt.
Voraussetzungskenntnisse und Vorbereitung
Dieser Tipp setzt die Lokalisierung des folgenden Textes voraus: Beachten Sie zunächst die folgenden Tipps, um die Anzeige von lokalisiertem Text vorzubereiten.
Dropdown-Platzierung für Gebietsschemaänderung
Stellt eine Dropdownliste bereit, in der eine Liste der Gebietsschemas angezeigt wird. Sie müssen nur in der Lage sein, anzuzeigen und auszuwählen, stellen Sie also sicher, dass die UI-Parameter entsprechend eingestellt sind.
Abrufen einer Liste von Gebietsschemata
Sie können eine Liste der Gebietsschemata LocalizationSettings.AvailableLocales.Locales
abrufen, die in erstellt wurden.
Wenn Sie dies verwenden und es auf das Dropdown-Menü am Anfang der Szene einstellen, sind Sie in Ordnung.
Es kann jedoch sein, dass Localization
die Initialisierung beim Start des Spiels noch nicht abgeschlossen ist, sodass Sie möglicherweise warten müssen, bis sie abgeschlossen ist.
Erstellen Sie zunächst ein Skript. DropDownEvent
Lassen Sie den Namen als .
Das Skript sieht wie folgt aus:
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
Die Methode führt die Verarbeitung zu Beginn der Szene durch, aber zu diesem Zeitpunkt Localization
ist die Initialisierung von möglicherweise noch nicht abgeschlossen.
await LocalizationSettings.InitializationOperation.Task
Warten Sie, bis die Initialisierung abgeschlossen ist.
await
, also Start
fügen Sie es bitte der async
Methode hinzu.
LocalizationSettings.AvailableLocales.Locales
Enthält als Nächstes eine Liste der Gebietsschemas, die Sie erstellt haben, also foreach
verarbeiten Sie so viele Gebietsschemas, wie Sie möchten.
Dropdown.OptionData
Legen Sie den Gebietsschemanamen auf fest, und fügen Sie Dropdown
ihn hinzu.
Um das aktuelle Gebietsschema in der Dropdownliste auszuwählen Dropdown.value
, suchen Sie in der Eigenschaft nach dem Zielgebietsschema, und legen Sie den Index fest.
Dies ist das Ende der Erstellung der Liste, aber ich möchte auch einen Prozess einschließen, der das Gebietsschema ändert, wenn das Dropdown-Element ausgewählt wird.
onValueChanged
Fügt dem Ereignis einen Gebietsschemawechsel hinzu. Dies ist derselbe wie der vorherige Tipp.
Hängen Sie das von Ihnen erstellte Skript an die Dropdown-Liste an.
Ausführen und Verifizieren
Versuchen Sie, das Spiel auszuführen, um es auszuprobieren.
Es gibt Zeiten, in denen die Locale-Liste nicht sofort nach dem Start des Spiels festgelegt wird, Localization
da sie nicht initialisiert wird.
Nach einiger Zeit sollten Sie in der Lage sein, die Liste der registrierten Gebietsschemata in der Dropdown-Liste zu sehen. Wenn Sie versuchen, Elemente zu wechseln, sollten Sie sehen können, dass sich der Inhalt des Textes ändert.