お世話になっております。
Widgetのテキストとフォントの内部動作についての質問がございます。
フォントの表示情報が不足している場合、添付の画像のようなデバッグ枠(文字コード範囲の情報が付与された四角)が表示されます。
こちらを「□」:(文字コード0x25A1)のような字へ置き換えたく、エンジンコードを読み進めております。
SlateFontRenderer.hに「InvalidSubChar」という定義がありますが、ここを変更するだけではランタイムでは不十分のようで、デバッグ枠を生成している箇所や置き換える場合の適切な位置などございましたらアドバイスいただけたらと思います。コンポジットフォントを使用したいため、最終的にデバッグ枠となるタイミングで置き換えたいと考えております。
以上です。よろしくおねがいいたします。
再現手順
WidgetBlueprintへテキストボックスを配置
robotoフォントをセットし、「
」などと入力する
デバッグ枠(文字コード範囲の情報が付与された四角)が表示される:ここを工夫したい。
お世話になっております。
本件確認させて頂いたところ、エンジン内部でフォールバックを行っているLastResortフォントが表示されている状態となっておりました。
こちらで設定されているフォントがない場合InvalidSubCharが使用されるため、一括で変えたい場合は該当フォントをリネームや置き換える事で対応可能かと思われます。
.\Engine\Content\SlateDebug\Fonts
`FLegacySlateFontInfoCache::FLegacySlateFontInfoCache()
{
LastResortFontPath = FPaths::EngineContentDir() / TEXT(“SlateDebug/Fonts/LastResort.ttf”);
bIsLastResortFontAvailable = !FPlatformProperties::RequiresCookedData() && FPaths::FileExists(LastResortFontPath);
[Content removed]
お手数おかけしますが、よろしくお願いいたします。
ありがとうございます!
ご提示いただいた箇所を参考にLastResortを不使用にする方針で意図通りの挙動を実現できました。
またLastResort自体につきまして大変勉強になりました。不足文字の確認に便利な表現として備わっていたのですね。
本件解決とさせていただけたらと思います。
以上よろしくおねがいいたします。ご対応感謝いたします。