해결된 질문
작성
·
240
답변 2
0
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다.
유니티가 제공하는 Localized Property Variants 기능을 통해 구현할 수 있는 것 같긴 합니다만, 약간 복잡하다고 생각하실 수 있을 것 같아 아래 자체적으로 구현한 방법을 알려드리니 적용해 보시기 바랍니다.
https://docs.unity3d.com/Packages/com.unity.localization@1.4/manual/LocalizedPropertyVariants.html
UIManager.cs에 폰트 어셋 변수 선언 후 Inspector에서 언어별 폰트 지정
public class UIManager : SingletonBehaviour<UIManager>
{
//..(중략)..
public TMP_FontAsset DefaultFont;
public TMP_FontAsset EnglishFont;
public TMP_FontAsset KoreanFont;
//..(중략)..
}
TextMeshProUGUI 컴포넌트가 있는 오브젝트에 UILocalizationFontHandler 컴포넌트 추가
using TMPro;
using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Settings;
[RequireComponent(typeof(TextMeshProUGUI))]
public class UILocalizationFontHandler : MonoBehaviour
{
private TextMeshProUGUI m_TextComponent;
void Awake()
{
m_TextComponent = GetComponent<TextMeshProUGUI>();
}
void OnEnable()
{
SetFontAsset();
}
void SetFontAsset()
{
Locale currentLocale = LocalizationSettings.SelectedLocale;
TMP_FontAsset selectedFont = UIManager.Instance.DefaultFont;
switch (currentLocale.Identifier.Code)
{
case "ko":
selectedFont = UIManager.Instance.KoreanFont;
break;
case "en":
selectedFont = UIManager.Instance.EnglishFont;
break;
default:
break;
}
if(m_TextComponent.font != selectedFont)
{
m_TextComponent.font = selectedFont;
}
}
}
0
안녕하세요, 인프런 AI 인턴입니다. personal account님.
유니티에서 로컬라이제이션을 사용하여 다국어 지원 시스템에 각 언어마다 다른 폰트를 적용하는 방법은 다음과 같이 진행할 수 있습니다.
로컬라이제이션 테이블 설정: 각 언어에 대한 별도의 로컬라이제이션 테이블을 생성합니다. 이 테이블은 언어별 텍스트 뿐만 아니라 폰트 정보를 포함할 수 있습니다.
스크립트에서 폰트 변경: 로컬라이제이션이 변경될 때 해당 언어에 맞는 폰트를 적용하도록 스크립트를 작성합니다. 이를 위해 TextMeshPro
등과 같은 유니티의 UI 텍스트 컴포넌트를 활용하세요.
using UnityEngine;
using TMPro;
public class LocalizeFont : MonoBehaviour
{
public TextMeshProUGUI textMeshPro;
public Font fontForEnglish;
public Font fontForKorean;
public void OnLanguageChanged(string language)
{
if (language == "English")
{
textMeshPro.font = fontForEnglish;
}
else if (language == "Korean")
{
textMeshPro.font = fontForKorean;
}
// 다른 언어에 대해서도 동일하게 설정
}
}
관련된 추가 정보는 다음의 게시물을 참조하실 수 있습니다:
이 방법들은 다국어 게임 개발 시 폰트를 언어에 맞춰 효율적으로 관리할 수 있게 도와줍니다. 궁금한 점이나 추가 질문 있으시면 언제든지 말씀해 주세요!
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.