박민혁의 개발

유니티 언어 설정 본문

TIL

유니티 언어 설정

박민혁_kog 2024. 6. 14. 20:45

처음엔 int값으로 스위치문 돌려야 한다고 생각했으나 유니티 패키지가 로컬라이제이션가 있었다

 

로컬라이제이션

그 후 언어 파일을 저장하기 위해 랭귀지 폴더를 생성

 

 

프로젝트 세팅 - 로컬라이제이션 에서 크리에이트 후 방금 만든 랭귀지 폴더에 저장

 

 

직 후 빨간 표시를 한 로케일 제네레이터를 누르면 아래와 같이 나오는데

나는 한국어와 영어를 위해 체크 후 하단 로케일 제네레이터를 클릭하여 설정

 

그림과 같이 기본 언어 설정을 해줌 

현재 맨위 리스트에서 부터 0(영어) 1(한국어)

 

윈도우- 에셋 매니지먼트 - 로컬라이제이션 테이블 선택

 

좌측 상단 뉴 테이블 컬렉션 클릭, 테이블 이름 설정 후 크리에이트

 

 

add new entry 클릭후 키에는 키값 en은 영어 ko는 한글 입력

 

이제 넣을 텍스트 파일을 찾은후

우클릭 하여 로컬 라이즈 (add component 하는 방법도 있다고 하는데 이게 훨씬 편리)

 

이제 스트링 리퍼런스 옆 none 에서 키값을 찾아 넣으면 언어 설정에 따라 다르게 보인다

 

이걸 언어 변경 코드는 다음과 같다

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

public void UserLocalization(int index) {
	LocalizationSettings.SelectedLocale = 
		LocalizationSettings.AvailableLocales.Locales[index];
}

index 값은 맨처음 리스트의 순서 이대로 따라 했다면 영어0 한글1

 

 

이제 젤 중요한 동적 할당 하는법 

 

로컬라이즈 스트링 이벤트를 퍼블릭으로 하여 하이라키에서 넣어줬다

 

public void LocalizeTextString(string localcode)
{
    GetComponent<LocalizeStringEvent>().StringReference
        .SetReference("TABLE", localcode);
}

위 "TABLE" 의 TABLE이 내 테이블이름이다 나는 테이블을 한개에 다 넣을거기 때문에 TABEL 고정

그 후 로컬 코드가 테이블의 키값이다 

 

나중엔 아마 로컬라이즈 매니저를 따로 만들어서 쓸것 같다

public void LocalizeTextString(LocalizeStringEvent localcompoent,string tabelname,string localcode)
{
    localcompoent.StringReference
        .SetReference(tabelname, localcode);
}

이렇게 만들면 

localizeManger.Instance.LocalizeTextString(로컬스티링이벤트,테이블명,키값) 식으로 사용할 예정

'TIL' 카테고리의 다른 글

점멸 구현  (0) 2023.12.19
의외로 심플한 블랙홀 구현  (0) 2023.12.19
상태이상 구현하기 그런데 최적화를 곁들인  (0) 2023.12.19
데바데 스킬 체크 구현  (1) 2023.12.19
유니티 유도 미사일  (1) 2023.12.19