Izveidoto lokalizāciju saraksta iegūšana
Verifikācijas vide
- Windows
-
- Operētājsistēmā Windows 11
- Vienotības redaktors
-
- 2021.3.12f1
- Ievades sistēma (Unity Technologies)
-
- 1.4.4
- Lokalizācija (Unity Technologies)
-
- 1.3.2
Priekšnoteikumi šim padomam
Tālāk norādītie iestatījumi ir veikti iepriekš kā priekšnoteikums šī padoma aprakstam.
Mūsu padomu mērķi
Nolaižamajā lietotāja saskarnē parāda atbilstošo lokalizāciju sarakstu un pārslēdz parādāmo tekstu atbilstoši lietotāja atlasītajai lokalizācijai.
Priekšzināšanas un sagatavošana
Šis padoms pieņem, ka tiek lokalizēts šāds teksts: Vispirms, lūdzu, skatiet tālāk sniegtos padomus, lai sagatavotos lokalizēta teksta parādīšanai.
Lokalizācijas maiņas nolaižamais novietojums
Nodrošina nolaižamo sarakstu, lai parādītu lokalizāciju sarakstu. Jums tikai jāspēj parādīt un atlasīt, tāpēc pārliecinieties, vai lietotāja saskarnes parametri ir iestatīti pareizi.
Iegūt lokalizāciju sarakstu
Varat iegūt lokalizāciju LocalizationSettings.AvailableLocales.Locales
sarakstu, kas izveidots vietnē .
Ja to izmantojat un ainas sākumā iestatāt nolaižamo izvēlni, viss ir kārtībā.
Tomēr, sākot Localization
spēli, inicializēšana, iespējams, nav pabeigta, tāpēc jums, iespējams, būs jāgaida, līdz tā tiks pabeigta.
Vispirms izveidojiet skriptu. DropDownEvent
Atstājiet vārdu kā .
Skripts izskatās šādi:
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
Metode veic apstrādi ainas sākumā, bet šajā brīdī Localization
, inicializācija, iespējams, nav pabeigta.
await LocalizationSettings.InitializationOperation.Task
Pagaidiet, līdz inicializācija ir pabeigta.
await
, tāpēc Start
, lūdzu, async
pievienojiet to metodei.
LocalizationSettings.AvailableLocales.Locales
Pēc tam ir jūsu izveidoto lokalizāciju saraksts, tāpēc foreach
apstrādājiet tik daudz lokalizāciju, cik vēlaties.
Dropdown.OptionData
Iestatiet Dropdown
lokalizācijas nosaukumu un pievienojiet to .
Lai nolaižamajā izvēlnē atlasītu Dropdown.value
pašreizējo lokalizāciju, īpašumā meklējiet mērķa lokalizāciju un iestatiet indeksu.
Šīs ir saraksta izveides beigas, bet es vēlos iekļaut arī procesu, kas maina lokalizāciju, kad tiek atlasīts nolaižamais vienums.
onValueChanged
Pievieno lokalizācijas pārslēgšanos uz notikumu. Tas ir tāds pats kā iepriekšējais padoms.
Pievienojiet izveidoto skriptu nolaižamajai izvēlnei.
Palaišana un pārbaude
Mēģiniet palaist spēli, lai to pārbaudītu.
Ir laiks, kad lokalizācijas saraksts netiek iestatīts uzreiz pēc spēles sākuma, Localization
jo tas nav inicializēts.
Pēc neilga laika jums vajadzētu būt iespējai redzēt nolaižamajā izvēlnē reģistrēto lokalizāciju sarakstu. Ja mēģināt pārslēgt vienumus, jums vajadzētu būt iespējai redzēt, ka teksta saturs mainās.