만든 로캘 목록 가져오기
검증 환경
- 윈도우
-
- 윈도우 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
직후 로케일 목록이 설정되지 않는 경우가 있습니다.
잠시 후 드롭다운에 등록된 로캘 목록을 볼 수 있습니다. 항목을 전환하려고 하면 텍스트의 내용이 변경되는 것을 볼 수 있습니다.