Cambiare impostazioni locali in qualsiasi momento

Pagina aggiornata :
Data di creazione della pagina :

Ambiente di verifica

Finestre
  • Windows 11
Unity Editor
  • 2021.3.12f1
Sistema di input (Unity Technologies)
  • 1.4.3
Localizzazione (Unity Technologies)
  • 1.3.2

Prerequisiti per questo suggerimento

Le seguenti impostazioni sono state effettuate in anticipo come premessa per la descrizione di questo suggerimento.

Conoscenze e preparazione preliminari

Questo suggerimento presuppone la localizzazione del testo seguente: Innanzitutto, fai riferimento ai seguenti suggerimenti per prepararti a visualizzare il testo localizzato.

Posizionamento dei pulsanti per la modifica delle impostazioni locali

Se lo esegui in Unity Editor, puoi cambiare le impostazioni locali nell'angolo in alto a destra dello schermo, ma dopo aver costruito il gioco, non ha quella funzione e devi prepararlo da solo. Questa volta, metterò un pulsante per passare tra le tre lingue "giapponese (ja)", "inglese (en)" e "spagnolo (es)" e fare clic per cambiarle.

Creazione di script per i pulsanti

Assicurarsi che il metodo di destinazione venga chiamato quando si fa clic sul pulsante. Questa è una procedura generica, quindi ometterò i dettagli. Vedere i seguenti suggerimenti per istruzioni dettagliate.

ButtonEvent Creare uno script con il nome .

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()
  {
  }
}

Assegnare ogni metodo a un clic del pulsante.

Gestione delle modifiche locali

Modificare il codice come segue:

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");
  }
}

La modifica stessa è semplice LocalizationSettings.SelectedLocale e può essere cambiata semplicemente impostando il target Locale nella proprietà. Locale Locale.CreateLocale può essere creato impostando il nome delle impostazioni locali nel metodo.

Tuttavia, poiché il processo di modifica delle impostazioni locali è asincrono,LocalizationSettings.SelectedLocale il processo successivo che imposta non significa che le impostazioni locali siano già state completamente cambiate. Prestare attenzione se si eseguono operazioni dipendenti dalle impostazioni locali.

Esegui e verifica

Questo è tutto ciò che c'è da fare, quindi per favore eseguilo e controlla il movimento. Nell'angolo in alto a destra della schermata di gioco, puoi vedere che le varie risorse cambiano dinamicamente nello stesso modo in cui cambi le impostazioni locali.