본문 바로가기

유니티 최적화

[유니티 최적화] 앱 다운로드 크기 최적화 #6 ( 폰트 font 사이즈 줄이기 )

  • 폰트(font) 사이즈
    • 중요도 : 상
      난이도 : 중

    • Font 리소스의 크기는 Editor Log 상에서 Other Assets 사이즈에 포함된다.
      Editor Log를 확인하는 법은 아래 글 참고
      https://pokaragames.tistory.com/4
 

[유니티 최적화] 앱 다운로드 크기 최적화 #2 ( 빌드에 포함된 리소스 크기 확인 )

앱 크기 확인 방법 유니티에서 앱을 빌드 한 뒤 Console 창으로 이동(메뉴: Window > General > Console)하여 오른쪽 상단의 작은 드롭다운 패널을 클릭하고 Open Editor Log 를 선택하고 스크롤을 내리다 보면

pokaragames.tistory.com

 

  • 폰트 파일은 .ttf 나 .otf 로 표기됨 유니티에서는 두가지 형식 모두 사용 가능
    폰트 최적화를 위해서 가장 먼저 고려 해야 하는 부분은 Texture Mesh Pro(TMP) 를 사용 하는 것인데,
    게임 내에서 사용 할 글자들을 Texture로 만들어서 사용 하는 방식이다.
    이때 TMP로 만들어둔 폰트의 원본 .ttf, .otf 파일이 빌드에 포함 되지 않도록 주의.

  • https://docs.unity3d.com/2021.2/Documentation/Manual/com.unity.textmeshpro.html
 

Unity - Manual: TextMeshPro

TextMeshPro com.unity.textmeshpro Description TextMeshPro is the ultimate text solution for Unity. It’s the perfect replacement for Unity’s UI Text and the legacy Text Mesh. Powerful and easy to use, TextMeshPro (also known as TMP) uses Advanced Text R

docs.unity3d.com

기존 Text( font ) component를 TextMeshPro 로 변경한 모습

  • Texture Mesh Pro(TMP)를 만드는 옵션에 따라 기존 폰트를 사용하는 방식보다 빌드 용량이 작아진다고 볼 수는 없지만 성능적으로 큰 이득이 있기때문에 사용을 권장( 텍스트가 많은 UI 동작에서 프레임이 떨어진다면 폰트 문제일 확률이 크다 )
    TMP를 사용하는 법은 추후에 포스팅 하도록 하겠다. (Google 검색을 하면 관련 자료가 많음)

    중국어나 일본어 한국어는 폰트 용량이 크기때문에 앱 용량이 커질 여지가 많은데
    사용하는 폰트 수를 줄이는 것이 첫번째 이고
    유니티에서 기본으로 제공하는 Arial 폰트를 사용하면 추가로 폰트 데이터가 앱에 추가 되지 않는다.

    채팅창이나 유저 이름 등은 어떤 글자가 나올지 모르기 때문에 TMP를 사용할 수가 없는데 이럴때는 별도의 폰트를 적용하면 용량이 늘어나니 Arial 폰트를 사용하면 용량을 줄일 수 있다.

Arial 폰트

유저 이름을 표기 하기 위해 사용하고 있던 중국어 폰트(약 16M)를 제외 하고 Arial 폰트를 사용하니 앱 용량이 15Mb 줄어 들었다.
폰트 데이터는 압축률이 좋지 않은 건지 앱 크기에 큰 영향을 미치는 것 같다.

 

추천 

되도록 TMP 사용( 성능 )

사용하는 폰트 개수 줄이기 ( 언어 당 1개 추천 )

유저 아이디나 채팅창처럼 TMP를 사용하기 힘든 경우에는 Arial 폰트 사용