Editor拡張で正常に日本語が表示されなくなる Unity
なにがおこったか
Atlas is full, consider enabling multi-atlas textures in the Font Asset: English - OSX
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:224)これがログに表示され、Editor拡張内で使用しているメモノードに正常に日本語が表示されなくなった。
これは、Unityが自動で作成してくれるフォントアセットらしく、こちらから操作したり、設定を変更することが出来ないフォントの様子。なので、溢れたらもう終わりでこれ以上新しい文字が使えない、ということが起きている。
どう解決したか
専用に1つフォントをDLし、直接割り当てた
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
// プロジェクトに取り込んだフォント (.ttf/.otf) を Editor で読む
// Editor フォルダ配下に置けばビルドには含まれない
const string FontPath = "Assets/_Game/Editor/Fonts/NotoSansJP-Regular.ttf";
// 毎回ロードしないよう static キャッシュ
static Font editorJpFont;
static Font EditorJpFont =>
editorJpFont ??= AssetDatabase.LoadAssetAtPath<Font>(FontPath);
// --- UI Toolkit 要素への割り当て ---
var field = new TextField { multiline = true };
if (EditorJpFont != null)
field.style.unityFontDefinition =
new StyleFontDefinition(FontDefinition.FromFont(EditorJpFont));