Nhận danh sách các ngôn ngữ bạn đã tạo

Trang Cập Nhật :
Ngày tạo trang :

Môi trường xác minh

Windows
  • cửa sổ 11
Biên tập viên Unity
  • 2021.3.12f1
Hệ thống đầu vào (Unity Technologies)
  • 1.4.4
Bản địa hóa (Unity Technologies)
  • 1.3.2

Điều kiện tiên quyết cho mẹo này

Các cài đặt sau đây đã được thực hiện trước làm tiền đề cho mô tả về mẹo này.

Mục tiêu của lời khuyên của chúng tôi

Hiển thị danh sách các ngôn ngữ tương ứng trong giao diện người dùng thả xuống và chuyển đổi văn bản hiển thị để khớp với ngôn ngữ mà người dùng đã chọn.

Kiến thức tiên quyết và sự chuẩn bị

Mẹo này giả định bản địa hóa văn bản sau: Trước tiên, vui lòng tham khảo các mẹo sau để chuẩn bị hiển thị văn bản được bản địa hóa.

Vị trí thả xuống thay đổi ngôn ngữ

Cung cấp menu thả xuống để hiển thị danh sách các ngôn ngữ. Bạn chỉ cần có thể hiển thị và chọn, vì vậy hãy đảm bảo rằng các thông số giao diện người dùng được đặt phù hợp.

Nhận danh sách các ngôn ngữ

Bạn có thể lấy danh sách các ngôn ngữ LocalizationSettings.AvailableLocales.Locales được tạo trong . Nếu bạn sử dụng tùy chọn này và đặt nó thành menu thả xuống khi bắt đầu cảnh, bạn vẫn ổn. Tuy nhiên, quá trình khởi tạo có thể chưa hoàn tất khi Localization bạn bắt đầu trò chơi, vì vậy bạn có thể cần đợi trò chơi hoàn tất.

Đầu tiên, tạo một tập lệnh. DropDownEvent Để tên là .

Kịch bản trông như thế này:

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 Phương pháp thực hiện xử lý khi bắt đầu cảnh, nhưng tại thời điểm Localization này, việc khởi tạo có thể chưa được hoàn thành. await LocalizationSettings.InitializationOperation.Task Chờ quá trình khởi tạo hoàn tất. await , vì vậy Start hãy thêm nó vào phương async thức.

LocalizationSettings.AvailableLocales.Locales Tiếp theo, chứa một danh sách các ngôn ngữ mà bạn đã tạo, vì vậy hãy foreach xử lý bao nhiêu ngôn ngữ tùy thích. Dropdown.OptionData Đặt Dropdown tên ngôn ngữ thành và thêm nó vào .

Để chọn Dropdown.value ngôn ngữ hiện tại trong menu thả xuống, hãy tìm kiếm ngôn ngữ mục tiêu trong thuộc tính và đặt chỉ mục.

Đây là phần cuối của việc tạo danh sách, nhưng tôi cũng muốn bao gồm một quy trình thay đổi ngôn ngữ khi mục thả xuống được chọn. onValueChanged Thêm chuyển đổi ngôn ngữ vào sự kiện. Điều này giống như mẹo trước.

Đính kèm tập lệnh bạn đã tạo vào menu thả xuống.

Chạy và xác minh

Hãy thử chạy trò chơi để kiểm tra. Có lúc danh sách ngôn ngữ không được đặt ngay sau khi trò chơi bắt đầu, Localization vì không được khởi tạo.

Sau một thời gian ngắn, bạn sẽ có thể xem danh sách các ngôn ngữ đã đăng ký trong menu thả xuống. Nếu bạn thử chuyển đổi các mục, bạn sẽ có thể thấy rằng nội dung của văn bản thay đổi.