Mengubah lokal kapan saja

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi

Windows
  • jendela 11
Editor Kesatuan
  • 2021.3.12f1
Sistem Input (Teknologi Unity)
  • 1.4.3
Lokalisasi (Unity Technologies)
  • 1.3.2

Prasyarat untuk tip ini

Pengaturan berikut telah dibuat sebelumnya sebagai premis untuk deskripsi tip ini.

Pengetahuan dan persiapan prasyarat

Tips ini mengasumsikan lokalisasi teks berikut: Pertama, silakan lihat tips berikut untuk bersiap menampilkan teks yang dilokalkan.

Menempatkan tombol untuk mengubah lokal

Jika Anda menjalankannya di Unity Editor, Anda dapat mengubah lokal di sudut kanan atas layar, tetapi setelah membangun game, itu tidak memiliki fungsi itu dan Anda harus menyiapkannya sendiri. Kali ini, saya akan menempatkan tombol untuk beralih di antara tiga bahasa "Jepang (ja)", "Inggris (en)", dan "Spanyol (es)" dan klik untuk mengalihkannya.

Skrip untuk tombol

Pastikan bahwa metode target dipanggil ketika Anda mengklik tombol. Ini adalah prosedur tujuan umum, jadi saya akan menghilangkan detailnya. Lihat tips berikut untuk petunjuk terperinci.

ButtonEvent Buat skrip dengan nama .

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

Tetapkan setiap metode ke klik tombol.

Menangani perubahan lokal

Ubah kode sebagai berikut:

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

Perubahan itu sendiri sederhana LocalizationSettings.SelectedLocale dan dapat dialihkan hanya dengan menetapkan target Locale di properti. Locale Locale.CreateLocale dapat dibuat dengan mengatur nama lokal dalam metode.

Namun, karena proses perubahan lokal tidak sinkron,LocalizationSettings.SelectedLocale proses berikutnya yang menetapkan tidak berarti bahwa lokal telah sepenuhnya dialihkan. Hati-hati jika Anda melakukan operasi yang bergantung pada lokal.

Jalankan dan verifikasi

Ini semua ada untuk itu, jadi silakan jalankan dan periksa gerakannya. Di sudut kanan atas layar game, Anda dapat melihat bahwa berbagai sumber daya beralih secara dinamis dengan cara yang sama seperti ketika Anda mengubah lokal.