Ändra språk när som helst

Sidan uppdaterad :
Datum för skapande av sida :

Verifiering miljö

Windows
  • Fönster 11
Unity-redaktör
  • 2021.3.12F1
Inmatningssystem (Unity-teknik)
  • 1.4.3
Lokalisering (Unity-tekniker)
  • 1.3.2

Förutsättningar för det här tipset

Följande inställningar har gjorts i förväg som en förutsättning för beskrivningen av detta tips.

Förkunskapskrav och förberedelse

Det här tipset förutsätter lokalisering av följande text: Läs först följande tips för att förbereda visning av lokaliserad text.

Placera knappar för att ändra språk

Om du kör den i Unity-redigeraren kan du ändra språket längst upp till höger på skärmen, men efter att ha byggt spelet har det inte den funktionen och du måste förbereda det själv. Den här gången kommer jag att placera en knapp för att växla mellan de tre språken "japanska (ja)", "engelska (en)" och "spanska (es)" och klicka för att växla dem.

Skript för knappar

Kontrollera att målmetoden anropas när du klickar på knappen. Detta är ett allmänt förfarande, så jag kommer att utelämna detaljerna. Se följande tips för detaljerade instruktioner.

ButtonEvent Skapa ett skript med namnet .

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

Tilldela varje metod till ett knappklick.

Hantera språkändringar

Ändra koden enligt följande:

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

Ändringen i sig är enkel LocalizationSettings.SelectedLocale och kan ändras genom att helt enkelt ställa in målet Locale i fastigheten. Locale Locale.CreateLocale kan skapas genom att ange namnet på språkinställningen i metoden.

Men eftersom språkändringsprocessen är asynkronLocalizationSettings.SelectedLocale betyder nästa process som anges inte att språkinställningen redan har växlats helt. Var försiktig om du utför språkberoende åtgärder.

Kör och verifiera

Det här är allt som finns i det, så kör det och kontrollera rörelsen. I det övre högra hörnet av spelskärmen kan du se att de olika resurserna växlar dynamiskt på samma sätt som när du ändrar språk.