[Unity] 언어에 따라 폰트 변경하기. Change Font by language 본문
반응형
게임을 글로벌에 출시하기 위해 이것저것 언어를 변경하다 보면
일본어, 한자, 혹은 인도네시아어 등등 여러가지 폰트가 깨져 보이는 문제가 발생한다.
이로 인해 언어마다 폰트를 다르게 지정해주어야 하는 이슈가 있다.
필자는 NGUI를 사용하고 있기에 NGUI를 기준으로 다음과 같이 구현하였다.
최초 게임을 실행했을 때 다음과 같이 언어에 따른 폰트 파일을 가져와준다
public static Font m_vGlobalFont = null;
...
if (IsGlobalUser())
{
eLang = Application.systemLanguage;
switch (eLang)
{
case SystemLanguage.Japanese:
if (m_vGlobalFont == null)
m_vGlobalFont = Resources.Load("Font/JP_support_font") as Font;
break;
case SystemLanguage.Chinese:
case SystemLanguage.ChineseTraditional:
case SystemLanguage.ChineseSimplified:
if (m_vGlobalFont == null)
m_vGlobalFont = Resources.Load("Font/CN_support_font") as Font;
break;
}
}
이후 UI에서 Label구문을 처리하는 공용 클래스에 다음과 같은 구문을 추가해주었다
public void Start()
{
...
if (Application.isPlaying) //런타임 체크를 하지 않을경우 에디터에서 폰트가 변경된다
{
if (IsGlobalUser())
{
SystemLanguage eLang = Application.systemLanguage;
switch (eLang)
{
case SystemLanguage.Japanese:
case SystemLanguage.Chinese:
case SystemLanguage.ChineseTraditional:
case SystemLanguage.ChineseSimplified:
if (G_UIBase.m_vGlobalFont != null)
{
if (trueTypeFont != m_vGlobalFont)
trueTypeFont = m_vGlobalFont;
}
break;
}
}
}
...
}
반응형
'프로그래밍 > ㄴ기타' 카테고리의 다른 글
[Unity] Unity 게임 최적화 방법 정리 (NDC-AxE 강연 정리) (0) | 2023.04.13 |
---|---|
[Unity/Spine] Unity Spine MixAndMatch Android Texture error (0) | 2023.03.22 |
[Unity] Unity Play Asset Delivery 앱 빌드, Unity 대용량 앱 빌드 (4) | 2021.12.02 |
Mobile DPI (0) | 2021.08.04 |
상용한글 2350자/11172자+특수문자+영문 파일 (1) | 2021.06.24 |
Comments