using UnityEngine; namespace TKS { /// 한글 표시용 폰트와 월드 텍스트(TextMesh) 생성. public static class TextUtil { static Font font; public static Font Font { get { if (font == null) font = LoadFont(); return font; } } static Font LoadFont() { try { var f = UnityEngine.Font.CreateDynamicFontFromOSFont( new[] { "Malgun Gothic", "맑은 고딕", "NanumGothic", "Noto Sans CJK KR", "Apple SD Gothic Neo", "Arial" }, 32); if (f != null) return f; } catch (System.Exception e) { Debug.LogWarning("[TKS] OS 폰트 로드 실패 → 내장 폰트 사용: " + e.Message); } return Resources.GetBuiltinResource("LegacyRuntime.ttf"); } /// 월드 좌표에 놓는 텍스트. worldHeight = 글자 높이(월드 단위). public static TextMesh CreateWorldText(Transform parent, string text, float worldHeight, Color color, int sortingOrder, TextAnchor anchor = TextAnchor.MiddleCenter) { var go = new GameObject("Text"); go.transform.SetParent(parent, false); var tm = go.AddComponent(); tm.font = Font; tm.fontSize = 64; tm.characterSize = worldHeight * 10f / 64f; tm.text = text; tm.color = color; tm.anchor = anchor; tm.alignment = TextAlignment.Center; tm.richText = false; var mr = go.GetComponent(); mr.sharedMaterial = Font.material; mr.sortingOrder = sortingOrder; return tm; } } }