유니티 버전 - 6000.0.34f1
목차
- 지난 포스팅
- Fallback Font Assets 이란?
- 실험 결과
지난 포스팅
지난번에 Localization을 이용하여 다국어 지원에 대한 포스팅을 작성하였습니다, 그때는 폰트가 없어서 영어로 대체하였지만, 언어별 폰트를 이용할때 해당 언어의 폰트가 없으면 ㅁㅁㅁㅁ 처럼 글자가 깨져나올 것이고, 이것을 해결하기 위해 Fallvack Font Assets라는 옵션을 사용하였습니다
Fallback Font Assets이란?
결론부터 말하자면 메모리 낭비가 발생합니다, 아래에서 설명하겠습니다
Fallback Font Assets이란 현재 TMP (text)에서 사용중인 폰트가 지원하지 않는 언어를 출력해야할때, 유니티가 자동적으로 Fallback에 등록된 Font Assets으로 교체하여 글자가 깨지는 것을 방지해주는 기능입니다
먼저 Fallback에 폰트를 추가하는 방법은 다음과 같습니다, 기본으로 설정된 폰트의 Fallback Font Assets에 대체하고자하는 폰트를 넣어줍니다
그리고 Localization을 이용하여 각 언어를 출력하려고 하였을때 잘 출력되었습니다
실험 결과
유니티에서 사용자가 어떤 언어의 폰트를 사용할지 모르기때문에 모든 폰트 에셋을 항상 대기시켜야하니, 메모리에 사용하지않는 폰트들도 올려놓기에 메모리 낭비가 발생합니다
유니티에서 필요한 시점에 로드하거나 언로드 하지 않을까라고 생각하여서 실험해 보았습니다, 하지만 플레이와 동시에 모든 폰트가 메모리에 올라갔고 (Memory Profiler 캡처), 모든 캔버스를 제거하고 GC.Collect();을 호출하여 정리해보았지만 폰트가 계속 올라가있었습니다
결론적으로 다국어 지원을 위해 폰트 에셋을 여러개 사용해야한다면, 언어 변경시 필요한 폰트를 로드, 필요없는 폰트를 언로드하는 방식으로 메모리 최적화가 필요할 것 같습니다
'코드 및 공부 > 데이터 관리' 카테고리의 다른 글
EditorWindow를 이용하여 에디터에서 윈도우 탐색기 폴더 열기 (0) | 2025.02.23 |
---|---|
RenderPipelineGlobalSettings should be edited from Project Settings > Graphics 경고 (0) | 2025.02.09 |
로컬라이제이션 패키지를 이용한 다양한 언어 설정 (다국어 시스템) (0) | 2025.02.05 |
마우스 커서 스프라이트가 깨져서 나올때 해결법 (0) | 2025.01.13 |
인벤토리 슬롯 저장/로드시 간헐적으로 아이템이 사라지는 현상 (0) | 2024.12.27 |