Krijg op elk gewenst moment gelokaliseerde tekst en middelen

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Verificatieomgeving

Ramen
  • Voor Windows 11
Unity Editor
  • 2021.3.12f1
Invoersysteem (Unity Technologies)
  • 1.4.4
Lokalisatie (Unity Technologies)
  • 1.3.2

Vereisten voor deze tip

De volgende instellingen zijn vooraf gemaakt als uitgangspunt voor de beschrijving van deze tip.

Doelen van onze tips

Wanneer u op de knop klikt, wordt de doeltekst uit de lokalisatietabel weergegeven op het laadscherm.

Vereiste kennis en voorbereiding

In deze tip wordt uitgegaan van lokalisatie van de volgende tekst: Omdat we ze echter niet allemaal zullen implementeren, zullen we de procedure van 1 hier plaatsen, maar we zullen de dubbele inhoud vereenvoudigen.

Het lokalisatiepakket installeren

De procedure is hier hetzelfde.

Een lokalisatie maken

Dit is hetzelfde als voorheen, dus ik zal alleen de afbeelding plaatsen.

Hier maken we een map "Lokalisatie" in de map "Scènes" en maken deze daarin.

Een landinstelling maken

Dit is ook hetzelfde als voorheen, dus ik zal de gedetailleerde procedure weglaten. De landinstellingen die u wilt toevoegen zijn "Japans (ja)", "Engels (en)" en "Spaans (es)".

Ik heb de eerder genoemde map "Lokalisatie" opgegeven.

Laat de standaardlandinstelling staan op "Japans (ja)".

Teksten maken

Laat de tabelnaam TextTable staan als .

Localization Maak een map in TextTable de map en geef deze op.

Maak een tekst. Dit keer is het de bedoeling om het programmatisch te krijgen, zodat je er voorlopig een kunt registreren.

UI-plaatsing

Ik wil de tekst en de knop plaatsen en wanneer ik op de knop klik, wil ik de tekst van de huidige landinstelling weergeven.

Scripts maken en koppelen

Maak een script. ButtonEvent Laat de naam staan als .

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

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private Text Text;

  public void OnClick()
  {
    // Localization から指定したテーブル名とキーからエントリーを取得します
    var entry = LocalizationSettings.StringDatabase.GetTableEntry("TextTable", "Hello").Entry;

    Text.text = entry.Value;
  }
}

Voer in wat er gebeurt wanneer op de knop wordt geklikt. Het enige wat we hier doen is één LocalizationSettings.StringDatabase.GetTableEntry ding: u kunt de invoer van de gevonden set krijgen door de tabelnaam en sleutel op te geven die in Lokalisatie in de methode zijn gemaakt. Deze keer doen we het met tekst, maar assets kunnen ook LocalizationSettings.AssetDatabase worden verkregen door gebruik te maken van .

Zodra je de vermelding hebt, hoef je alleen maar de waarde te krijgen die je hebt. De inhoud is de tekst van de geselecteerde landinstelling. Deze keer wordt het verkregen door synchrone verwerking, maar u kunt ook asynchrone methoden gebruiken.

Koppel het script aan het EventSystem. Stel ook de tekst in.

Wijs klikafhandeling toe aan de knop.

Uitvoeren en verifiëren

Probeer het uit te voeren nadat u klaar bent met het instellen. Aangezien er geen lokalisatiegebeurtenissen zijn ingesteld in de gebruikersinterface, verandert de tekst niet wanneer deze wordt uitgevoerd.

Klik op de knop om over te schakelen naar de Japanse tekst. Dit komt omdat de huidige landinstelling van de Japanners is geselecteerd.

Probeer de landinstelling in de rechterbovenhoek van het scherm te wijzigen en klik vervolgens op de knop. Het moet veranderen in de tekst voor de doellandinstelling.