Tukar penempatan pada bila-bila masa

Laman dikemaskini :
Tarikh penciptaan halaman :

Persekitaran pengesahan

Windows
  • Windows 11
Penyunting Perpaduan
  • 2021.3.12f1
Sistem Input (Unity Technologies)
  • 1.4.3
Penyetempatan (Teknologi Perpaduan)
  • 1.3.2

Prasyarat untuk petua ini

Tetapan berikut telah dibuat terlebih dahulu sebagai premis untuk penerangan petua ini.

Prasyarat pengetahuan dan penyediaan

Petua ini menganggap penyetempatan teks berikut: Pertama, sila rujuk petua berikut untuk bersedia untuk memaparkan teks setempat.

Meletakkan butang untuk menukar tempat

Jika anda menjalankannya dalam Editor Perpaduan, anda boleh menukar tempat di sudut kanan atas skrin, tetapi selepas membina permainan, ia tidak mempunyai fungsi itu dan anda perlu menyediakannya sendiri. Kali ini, saya akan meletakkan butang untuk beralih antara tiga bahasa "Jepun (ja)", "Bahasa Inggeris (en)", dan "Sepanyol (es)" dan klik untuk menukarnya.

Penskripan untuk butang

Pastikan kaedah sasaran dipanggil apabila anda mengklik butang. Ini adalah prosedur tujuan umum, jadi saya akan meninggalkan butirannya. Lihat petua berikut untuk arahan 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()
  {
  }
}

Peruntukkan setiap kaedah kepada klik butang.

Mengendalikan perubahan penempatan

Ubah suai kod seperti 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 adalah mudah LocalizationSettings.SelectedLocale dan boleh ditukar dengan hanya menetapkan sasaran Locale dalam harta tanah. Locale Locale.CreateLocale boleh dibuat dengan menetapkan nama tempat dalam kaedah.

Walau bagaimanapun, kerana proses perubahan penempatan tidak segerak,LocalizationSettings.SelectedLocale proses seterusnya yang ditetapkan tidak bermakna bahawa penempatan telah ditukar sepenuhnya. Berhati-hati jika anda melakukan operasi yang bergantung kepada tempatan.

Jalankan dan sahkan

Ini semua ada padanya, jadi sila jalankan dan periksa pergerakan. Di sudut kanan atas skrin permainan, anda dapat melihat bahawa pelbagai sumber beralih secara dinamik dengan cara yang sama seperti ketika anda menukar tempat.