随时更改区域设置

更新页 :
页面创建日期 :

验证环境

窗户
  • 视窗 11
统一编辑器
  • 2021.3.12f1
输入系统(统一技术)
  • 1.4.3
本地化(统一技术)
  • 1.3.2

此提示的先决条件

作为此提示描述的前提,已预先进行了以下设置。

先决条件知识和准备

此提示假定以下文本的本地化: 首先,请参考以下提示来准备显示本地化文本。

放置用于更改区域设置的按钮

如果在 Unity 编辑器中运行它,则可以更改屏幕右上角的区域设置,但在构建游戏后,它没有该功能,您需要自己准备。 这次,我将放置一个按钮,用于在三种语言“日语(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 因此设置的下一个过程并不意味着区域设置已经完全切换。 如果您正在执行与区域设置相关的操作,请小心。

运行并验证

这就是它的全部内容,所以请运行它并检查运动。 在游戏屏幕的右上角,您可以看到各种资源以与更改区域设置时相同的方式动态切换。