Lokalės keitimas bet kuriuo metu

Puslapis atnaujintas :
Puslapio sukūrimo data :

Tikrinimo aplinka

Windows
  • Langai 11
"Unity" redaktorius
  • 2021.3.12f1
Įvesties sistema ("Unity Technologies")
  • 1.4.3
Lokalizavimas ("Unity Technologies")
  • 1.3.2

Būtinos šio patarimo sąlygos

Šie nustatymai buvo atlikti iš anksto kaip šio patarimo aprašymo prielaida.

Būtinos žinios ir pasirengimas

Šiame patarime daroma prielaida, kad lokalizuojamas šis tekstas: Pirmiausia perskaitykite šiuos patarimus, kaip pasiruošti rodyti lokalizuotą tekstą.

Mygtukų įdėjimas lokalės keitimui

Jei paleisite jį "Unity" redaktoriuje, lokalę galite pakeisti viršutiniame dešiniajame ekrano kampe, tačiau sukūrę žaidimą jis neturi šios funkcijos ir turite ją paruošti patys. Šį kartą įdėsiu mygtuką, kad perjungtumėte tris kalbas "Japonų (ja)", "Anglų (en)" ir "Ispanų (es)" ir spustelėkite, kad jas perjungtumėte.

Mygtukų scenarijų kūrimas

Įsitikinkite, kad tikslinis metodas iškviečiamas spustelėjus mygtuką. Tai yra bendrosios paskirties procedūra, todėl praleisiu detales. Peržiūrėkite šiuos patarimus, kad gautumėte išsamias instrukcijas.

ButtonEvent Sukurkite scenarijų su pavadinimu .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
  }
}

Priskirkite kiekvieną metodą mygtuko paspaudimui.

Lokalės keitimų tvarkymas

Pakeiskite kodą taip:

using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Settings;

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("en");
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("es");
  }
}

Pats pakeitimas yra paprastas LocalizationSettings.SelectedLocale ir gali būti perjungiamas tiesiog nustatant tikslą Locale nuosavybėje. Locale Locale.CreateLocale galima sukurti metode nustatant lokalės pavadinimą.

Tačiau, kadangi lokalės keitimo procesas yra asinchroninis, kitas nustatytas procesas nereiškia,LocalizationSettings.SelectedLocale kad lokalė jau buvo visiškai perjungta. Būkite atsargūs, jei atliekate nuo lokalės priklausančias operacijas.

Paleiskite ir patikrinkite

Tai viskas, kas yra, todėl paleiskite jį ir patikrinkite judėjimą. Viršutiniame dešiniajame žaidimo ekrano kampe matote, kad įvairūs ištekliai dinamiškai persijungia taip pat, kaip ir keičiant lokalę.