만든 로캘 목록 가져오기

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

검증 환경

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

이 팁의 전제 조건

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

팁의 목표

드롭다운 UI에 해당 로캘 목록을 표시하고 사용자가 선택한 로캘과 일치하도록 표시 텍스트를 전환합니다.

전제 조건 지식 및 준비

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

로캘 변경 드롭다운 배치

로캘 목록을 표시하는 드롭다운을 제공합니다. 표시하고 선택할 수 있어야 하므로 UI 매개변수가 적절하게 설정되어 있는지 확인하십시오.

로캘 목록 가져오기

에서 만든 로캘 LocalizationSettings.AvailableLocales.Locales 목록을 가져올 수 있습니다. 이것을 사용하고 장면 시작 부분의 드롭다운으로 설정하면 괜찮습니다. 그러나 게임을 시작할 때 Localization 초기화가 완료되지 않았을 수 있으므로 완료될 때까지 기다려야 할 수 있습니다.

먼저 스크립트를 만듭니다. DropDownEvent 이름을 그대로 둡니다.

스크립트는 다음과 같습니다.

using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.UI;

public class DropDownEvent : MonoBehaviour
{
  // 最初のフレームアップデートの前に開始が呼び出されます
  async void Start()
  {
    // Localization の初期化が完了するまで待機します
    await LocalizationSettings.InitializationOperation.Task;

    // 処理対象の Dropdown コンポーネントを取得します
    var dropdownLocale = GetComponent<Dropdown>();
    dropdownLocale.options.Clear();

    // LocalizationSettings.AvailableLocales.Locales からロケール一覧を取得してオプションを追加します
    foreach (var locale in LocalizationSettings.AvailableLocales.Locales)
    {
      dropdownLocale.options.Add(new Dropdown.OptionData(locale.name));
    }

    // 初期選択されているロケールのインデックスを取得して選択します
    dropdownLocale.value = LocalizationSettings.AvailableLocales.Locales.IndexOf(LocalizationSettings.SelectedLocale);

    // ドロップダウンのアイテムが選択されたときにロケールを変更します
    dropdownLocale.onValueChanged.AddListener((index) =>
    {
      LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
    });
  }
}

Start 이 메서드는 장면의 시작 부분에서 처리를 수행하지만 이 시점에서 Localization 의 초기화가 완료되지 않았을 수 있습니다. await LocalizationSettings.InitializationOperation.Task 초기화가 완료될 때까지 기다립니다. await , 그래서 Start 메소드에 async 추가하십시오.

LocalizationSettings.AvailableLocales.Locales 다음으로, 사용자가 만든 로캘 목록이 포함되어 있으므로 foreach 원하는 만큼 로캘을 처리합니다. Dropdown.OptionData 로캘 이름을 로 설정하고 Dropdown 에 추가합니다.

드롭다운에서 현재 로캘을 선택 Dropdown.value 하려면 속성에서 대상 로캘을 검색하고 인덱스를 설정합니다.

이것으로 목록 작성이 끝났지만 드롭다운 항목을 선택할 때 로캘을 변경하는 프로세스도 포함하려고 합니다. onValueChanged 이벤트에 로캘 전환을 추가합니다. 이것은 이전 팁과 동일합니다.

만든 스크립트를 드롭다운에 첨부합니다.

실행 및 확인

게임을 실행하여 확인해 보세요. 초기화되지 않기 때문에 게임이 시작된 Localization 직후 로케일 목록이 설정되지 않는 경우가 있습니다.

잠시 후 드롭다운에 등록된 로캘 목록을 볼 수 있습니다. 항목을 전환하려고 하면 텍스트의 내용이 변경되는 것을 볼 수 있습니다.