유니티 장면 내 폰트 한번에 바꾸기
검색을 하다가 유용한 에디터 코드가 있어서 가져와보았습니다. 출처는 글 하단에 있습니다.
가져온 코드는 현재 Scene 내에서 사용된 폰트들을 모두 Assets/ Fonts/ 폴더 내에 있는 Jalnan.ttf 폰트로 교체하는 코드입니다.
ChangeFontInUITex 는 레거시 텍스트 폰트를, ChangeFontInTextMeshPro 는 TMP 텍스트 폰트를 교체합니다.
유니티 에디터 내에서 클릭하여 사용할 수 있습니다.
빌드할 때에는 필요가 없기 때문에 저는 #if Unity_Editor를 추가해줬습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using TMPro;
namespace Modules.Util
{
#if UNITY_EDITOR
public class UITextFontSetter
{
//폰트 경로 설정.
public const string PATH_FONT_UITEXT_Pretendard = "Assets/Fonts/Pretendard-Regular.otf";
public const string PATH_FONT_TEXTMESHPRO_Pretendard = "Assets/Fonts/Pretendard-Regular SDF.asset";
[MenuItem("CustomMenu/ChangeUITextFont(현재 Scene 내 UIText 폰트를 Pretendard 폰트로 교체함)")]
public static void ChangeFontInUIText()
{
GameObject[] rootObj = GetSceneRootObjects();
for (int i = 0; i (PATH_FONT_UITEXT_Pretendard);
}
}
}
[MenuItem("CustomMenu/ChangeTextMeshPro(현재 Scene 내 TextMeshProUGUI 폰트를 Pretendard 폰트로 교체함)")]
public static void ChangeFontInTextMeshPro()
{
GameObject[] rootObj = GetSceneRootObjects();
for (int i = 0; i (PATH_FONT_TEXTMESHPRO_Pretendard);
}
}
}
///
/// 모든 최상위 Root의 GameObject를 받아옴.
///
///
private static GameObject[] GetSceneRootObjects()
{
Scene currentScene = SceneManager.GetActiveScene();
return currentScene.GetRootGameObjects();
}
}
#endif
}
[unity] UI 텍스트 폰트 일괄 교체하는 방법 Unity에서 Scene 내 모든 UI Text 및 TextMeshProUGUI Text의 폰트를 일괄 교체하는 방법에 대해 알아보자. 프로젝트 중에 디자이너의 요청에 따라, 메인 폰트가 변경되는 상황이 발생하였다. 물론 Scene에 들어가서 구성한 UI의 Text 컴포넌트를 찾아가며 하나씩 바꿔줄 수도 있지만, 만약 Scene과 UI 수량이 많다면, 상당히 귀찮은 작업이 아닐 수 없다! 자동화 개념을 생각하여 에디터클래스로 스크립트를 만들어 클릭 한 번으로 일괄 교체하는 방법에 대해 알아보자. 1. 폰트 교체용 EditorClas… Unity에서 Scene 내 모든 UI Text 및 TextMeshProUGUI Text의 폰트를 일괄 교체하는 방법에 대해 알아보자. 프로젝트 중에 디자이너의 요청에 따라, 메인 폰트가 변경되는 상황이 발생하였다. 물론 Scene에 들어가서 구성한 UI의 Text 컴포넌트를 찾아가며 하나씩 바꿔줄 수도 있지만, 만약 Scene과 UI 수량이 많다면, 상당히 귀찮은 작업이 아닐 수 없다! 자동화 개념을 생각하여 에디터클래스로 스크립트를 만들어 클릭 한 번으로 일괄 교체하는 방법에 대해 알아보자. 1. 폰트 교체용 EditorClas…
감사합니다.

