Alterar localidade a qualquer momento
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.