เปลี่ยนตําแหน่งที่ตั้งได้ตลอดเวลา

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมการตรวจสอบ

หน้าต่าง
  • หน้าต่าง 11
บรรณาธิการ Unity
  • ปี 2021.3.12f1
ระบบอินพุต (Unity Technologies)
  • 1.4.3
การแปลเป็นภาษาท้องถิ่น (เทคโนโลยีความสามัคคี)
  • 1.3.2

ข้อกําหนดเบื้องต้นสําหรับเคล็ดลับนี้

การตั้งค่าต่อไปนี้ได้ทําไว้ล่วงหน้าเพื่อเป็นหลักฐานสําหรับคําอธิบายของเคล็ดลับนี้

ความรู้เบื้องต้นและการเตรียมตัว

เคล็ดลับนี้ถือว่าการแปลข้อความต่อไปนี้: ก่อนอื่นโปรดดูเคล็ดลับต่อไปนี้เพื่อเตรียมแสดงข้อความที่แปลเป็นภาษาท้องถิ่น

การวางปุ่มสําหรับเปลี่ยนตําแหน่งที่ตั้ง

หากคุณเรียกใช้ใน Unity Editor คุณสามารถเปลี่ยนตําแหน่งที่ตั้งที่มุมขวาบนของหน้าจอ แต่หลังจากสร้างเกมแล้วจะไม่มีฟังก์ชันนั้นและคุณต้องเตรียมมันด้วยตัวเอง คราวนี้ฉันจะวางปุ่มเพื่อสลับระหว่างสามภาษา "ญี่ปุ่น (ja)", "อังกฤษ (en)" และ "สเปน (es)" และคลิกเพื่อสลับ

การเขียนสคริปต์สําหรับปุ่ม

ตรวจสอบให้แน่ใจว่าวิธีการเป้าหมายถูกเรียกเมื่อคุณคลิกปุ่ม นี่เป็นขั้นตอนวัตถุประสงค์ทั่วไปดังนั้นฉันจะละเว้นรายละเอียด ดูเคล็ดลับต่อไปนี้สําหรับคําแนะนําโดยละเอียด

ButtonEvent สร้างสคริปต์ด้วยชื่อ .

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

กําหนดแต่ละวิธีให้กับการคลิกปุ่ม

การจัดการการเปลี่ยนแปลงตําแหน่งที่ตั้ง

ปรับเปลี่ยนรหัสดังต่อไปนี้:

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

การเปลี่ยนแปลงนั้นง่าย LocalizationSettings.SelectedLocale และสามารถเปลี่ยนได้โดยเพียงแค่กําหนดเป้าหมาย Locale ในทรัพย์สิน Locale Locale.CreateLocale สามารถสร้างได้โดยการตั้งค่าชื่อของตําแหน่งที่ตั้งในวิธีการ

อย่างไรก็ตาม เนื่องจากกระบวนการเปลี่ยนตําแหน่งที่ตั้งเป็นแบบอะซิงโครนัสLocalizationSettings.SelectedLocale กระบวนการถัดไปที่ตั้งค่าไม่ได้หมายความว่าตําแหน่งที่ตั้งถูกสลับอย่างสมบูรณ์แล้ว โปรดใช้ความระมัดระวังหากคุณกําลังดําเนินการที่ขึ้นอยู่กับตําแหน่งที่ตั้ง

เรียกใช้และตรวจสอบ

นี่คือทั้งหมดที่มีดังนั้นโปรดเรียกใช้และตรวจสอบการเคลื่อนไหว ที่มุมขวาบนของหน้าจอเกมคุณจะเห็นว่าทรัพยากรต่างๆสลับแบบไดนามิกในลักษณะเดียวกับเมื่อคุณเปลี่ยนสถานที่