언제든지 로캘 변경

페이지 업데이트 :
페이지 생성 날짜 :

검증 환경

윈도우
  • 윈도우 11
Unity 에디터
  • 2021.3.12f1
입력 시스템(Unity Technologies)
  • 1.4.3
현지화(Unity Technologies)
  • 1.3.2

이 팁의 전제 조건

이 팁에 대한 설명의 전제로 다음 설정이 미리 이루어졌습니다.

전제 조건 지식 및 준비

이 팁은 다음 텍스트의 지역화를 가정합니다. 먼저 다음 팁을 참조하여 현지화된 텍스트를 표시할 준비를 하십시오.

로캘 변경을 위한 단추 배치

유니티 에디터에서 실행하면 화면 우측 상단에서 로케일을 변경할 수 있지만, 게임을 빌드한 후에는 해당 기능이 없어서 직접 준비해야 합니다. 이번에는 "일본어 (ja)", "영어 (en)", "스페인어 (es)"의 3 개 언어 사이를 전환하는 버튼을 배치하고 클릭하여 전환합니다.

단추에 대한 스크립팅

단추를 클릭할 때 대상 메서드가 호출되는지 확인합니다. 이것은 범용 절차이므로 자세한 내용은 생략하겠습니다. 자세한 지침은 다음 팁을 참조하십시오.

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 다음에 설정하는 프로세스가 로캘이 이미 완전히 전환되었음을 의미하지는 않습니다. 로캘 종속 작업을 수행하는 경우 주의해야 합니다.

실행 및 확인

이것이 전부이므로 실행하고 움직임을 확인하십시오. 게임 화면의 오른쪽 상단에서 로케일을 변경할 때와 같은 방식으로 다양한 리소스가 동적으로 전환되는 것을 볼 수 있습니다.