Alterar localidade a qualquer momento

Página atualizada :
Data de criação de página :

Ambiente de verificação

Windows
  • Janelas 11
Unity Editor
  • 12.3.2021F1
Sistema de Entrada (Unity Technologies)
  • 1.4.3
Localização (Unity Technologies)
  • 1.3.2

Pré-requisitos para esta dica

As configurações a seguir foram feitas com antecedência como premissa para a descrição desta dica.

Pré-requisito de conhecimento e preparação

Esta dica pressupõe a localização do seguinte texto: Primeiro, consulte as dicas a seguir para se preparar para exibir texto localizado.

Colocando botões para alterar a localidade

Se você executá-lo no Editor Unity, você pode alterar a localidade no canto superior direito da tela, mas depois de construir o jogo, ele não tem essa função e você precisa prepará-lo sozinho. Desta vez, colocarei um botão para alternar entre os três idiomas "japonês (ja)", "inglês (en)" e "espanhol (es)" e clicarei para alterná-los.

Script para botões

Certifique-se de que o método de destino é chamado quando você clica no botão. Trata-se de um procedimento de uso geral, por isso vou omitir os detalhes. Consulte as dicas a seguir para obter instruções detalhadas.

ButtonEvent Crie um script com o nome .

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

Atribua cada método a um clique no botão.

Manipulando alterações de localidade

Modifique o código da seguinte maneira:

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

A mudança em si é simples LocalizationSettings.SelectedLocale e pode ser trocada simplesmente definindo o destino Locale na propriedade. Locale Locale.CreateLocale pode ser criado definindo o nome da localidade no método.

No entanto, como o processo de alteração de localidade é assíncrono,LocalizationSettings.SelectedLocale o próximo processo definido não significa que a localidade já foi completamente alternada. Tenha cuidado se você estiver fazendo operações dependentes da localidade.

Executar e verificar

Isso é tudo o que há para ele, então por favor, execute-o e verifique o movimento. No canto superior direito da tela do jogo, você pode ver que os vários recursos alternam dinamicamente da mesma maneira que quando você altera a localidade.