Thay đổi ngôn ngữ bất cứ lúc nà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.3
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.

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.

Đặt các nút để thay đổi ngôn ngữ

Nếu bạn chạy nó trong Unity Editor, bạn có thể thay đổi ngôn ngữ ở góc trên bên phải của màn hình, nhưng sau khi xây dựng trò chơi, nó không có chức năng đó và bạn cần phải tự chuẩn bị. Lần này, tôi sẽ đặt một nút để chuyển đổi giữa ba ngôn ngữ "Nhật Bản (ja)", "Tiếng Anh (en)" và "Tiếng Tây Ban Nha (es)" và nhấp để chuyển đổi chúng.

Tạo tập lệnh cho các nút

Đảm bảo rằng phương thức đích được gọi khi bạn nhấp vào nút. Đây là một thủ tục có mục đích chung, vì vậy tôi sẽ bỏ qua các chi tiết. Xem các mẹo sau để biết hướng dẫn chi tiết.

ButtonEvent Tạo một tập lệnh với tên .

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

Gán mỗi phương pháp cho một nút bấm.

Xử lý thay đổi ngôn ngữ

Sửa đổi mã như sau:

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

Bản thân thay đổi rất đơn giản LocalizationSettings.SelectedLocale và có thể được chuyển đổi bằng cách đặt mục tiêu Locale trong thuộc tính. Locale Locale.CreateLocale có thể được tạo bằng cách đặt tên của ngôn ngữ trong phương thức.

Tuy nhiên, vì quá trình thay đổi ngôn ngữ không đồng bộ,LocalizationSettings.SelectedLocale quá trình tiếp theo đặt không có nghĩa là ngôn ngữ đã được chuyển đổi hoàn toàn. Hãy cẩn thận nếu bạn đang thực hiện các hoạt động phụ thuộc vào địa phương.

Chạy và xác minh

Đây là tất cả những gì cần có, vì vậy hãy chạy nó và kiểm tra chuyển động. Ở góc trên bên phải của màn hình trò chơi, bạn có thể thấy rằng các tài nguyên khác nhau chuyển đổi động giống như khi bạn thay đổi ngôn ngữ.