ดูรายการตําแหน่งที่ตั้งที่คุณสร้างขึ้น

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

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

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

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

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

เป้าหมายของเคล็ดลับของเรา

แสดงรายการตําแหน่งที่ตั้งที่เกี่ยวข้องใน UI แบบหล่นลงและสลับข้อความที่แสดงให้ตรงกับตําแหน่งที่ตั้งที่ผู้ใช้เลือก

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

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

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

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

ดูรายชื่อตําแหน่งที่ตั้ง

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

ขั้นแรกให้สร้างสคริปต์ DropDownEvent ทิ้งชื่อไว้เป็น .

สคริปต์มีลักษณะดังนี้:

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

public class DropDownEvent : MonoBehaviour
{
  // 最初のフレームアップデートの前に開始が呼び出されます
  async void Start()
  {
    // Localization の初期化が完了するまで待機します
    await LocalizationSettings.InitializationOperation.Task;

    // 処理対象の Dropdown コンポーネントを取得します
    var dropdownLocale = GetComponent<Dropdown>();
    dropdownLocale.options.Clear();

    // LocalizationSettings.AvailableLocales.Locales からロケール一覧を取得してオプションを追加します
    foreach (var locale in LocalizationSettings.AvailableLocales.Locales)
    {
      dropdownLocale.options.Add(new Dropdown.OptionData(locale.name));
    }

    // 初期選択されているロケールのインデックスを取得して選択します
    dropdownLocale.value = LocalizationSettings.AvailableLocales.Locales.IndexOf(LocalizationSettings.SelectedLocale);

    // ドロップダウンのアイテムが選択されたときにロケールを変更します
    dropdownLocale.onValueChanged.AddListener((index) =>
    {
      LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
    });
  }
}

Start วิธีการดําเนินการประมวลผลที่จุดเริ่มต้นของฉาก แต่ ณ จุดนี้ Localization การเริ่มต้นของอาจยังไม่เสร็จสมบูรณ์ await LocalizationSettings.InitializationOperation.Task รอให้การเริ่มต้นเสร็จสมบูรณ์ await ดังนั้น Start โปรดเพิ่มลงใน async วิธีการ

LocalizationSettings.AvailableLocales.Localesถัดไปมีรายการของตําแหน่งที่ตั้งที่คุณสร้างขึ้นดังนั้นforeachประมวลผลตําแหน่งที่ตั้งได้มากเท่าที่คุณต้องการ Dropdown.OptionDataตั้งชื่อDropdownตําแหน่งที่ตั้งเป็น และเพิ่มไปยัง .

เมื่อต้องการเลือก Dropdown.value ตําแหน่งที่ตั้งปัจจุบันในดรอปดาวน์ ให้ค้นหาตําแหน่งที่ตั้งเป้าหมายในพร็อพเพอร์ตี้และตั้งค่าดัชนี

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

แนบสคริปต์ที่คุณสร้างลงในเมนูแบบเลื่อนลง

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

ลองเรียกใช้เกมเพื่อตรวจสอบ มีช่วงเวลาที่รายการตําแหน่งที่ตั้งไม่ได้ถูกตั้งค่าทันทีหลังจากเกมเริ่ม Localization เนื่องจากไม่ได้เริ่มต้น

หลังจากเวลาผ่านไปเล็กน้อยคุณควรจะเห็นรายการสถานที่ที่ลงทะเบียนในเมนูแบบเลื่อนลง ถ้าคุณลองสลับรายการ คุณควรจะเห็นว่าเนื้อหาของข้อความเปลี่ยนแปลงไป