uGUIのフォント設定は、旧TextかTextMeshProUGUIかによって使うアセットが違います。
新しい文字表示と、ShoeBoxやunitettcを使う旧作例を分け、文字が出ないときの確認順を整理しました。
参照資料はuGUI 2.0、TextMeshPro 4.0.0-pre.2、Unity 6.3のTextCoreです。
2026年10月26日にTMPのFont Asset資料を再確認しました。
TMPの参照先はプレリリース版です。
導入済みの安定版と同じ仕様だとは判断せず、使用版の資料も確認してください。
これらは参照資料の版で、このPCにインストールされた版ではありません。
掲載画像は旧記事の資料で正確な撮影版は未確認です。
Unity・ShoeBox・unitettcでの今回の操作は未実施です。
最初に文字コンポーネントを確認する
| 目的・症状 | 設定・確認先 |
|---|---|
| UnityEngine.UI.Textを使う旧UI | FontとMaterialを割り当てる。このページのTextUnicode例はこちら用 |
| TextMeshProUGUIを使うUI | TMP Font Assetと必要なMaterial Preset・fallback等を確認 |
| 装飾を画像として固定したい | 画像素材・文字範囲・拡大率に合う方式を選ぶ。ShoeBoxの旧例は後述 |
旧TextのFontをTMP Font Asset欄へそのまま設定することはできません。
TMPではプロジェクトの導入状況を確認し、フォントからFont Assetを作成して割り当てます。
Dynamic/Static、必要な文字の範囲、アトラスサイズ、fallbackの選定は表示する言語と端末から決めてください。
Font Assetを作成して割り当てただけでは、必要な文字が揃ったとは限りません。
上記のTMP公式資料では、メニューから作る空のFont Assetは、初期状態で文字を含まないと説明されています。
表示する日本語・数字・記号を試し、欠ける文字はFont Assetの文字収録と元フォントの字形を確認します。
アトラスは文字の字形を収めた画像です。
文字が出ないときは色やサイズだけでなく、必要な字形がアトラスへ追加されているかも調べてください。
1. リッチテキストで色とサイズを変える
旧TextではRich Textを有効にして、対応タグを本文に記述します。
次のGIFは旧作例で、数字5に色を指定し、Gの文字サイズを変えた例です。
TextMeshProにもタグ機能がありますが、旧Textと対応タグを同一と考えずパッケージの資料を確認してください。

<color=#FDBA2A>5<size=72>G</size></color>- 色:<color=#FDBA2A>文字</color>
- サイズ:<size=72>文字</size>
- 太字:<b>文字</b>、イタリック:<i>文字</i>
タグがそのまま表示される場合はRich Text設定と、開始/終了タグの対応を確認します。
外部から受け取った文字列をそのまま装飾用タグとして解釈しないよう、入力の扱いも決めます。
2. ShoeBoxのビットマップフォント【旧手順】
ShoeBoxは画像を文字ごとの座標データとテクスチャへ変換するツールです。
開発者の配布ページには3.6.5とAdobe AIR依存が掲載されています。
Unity 6での動作を確認した結果ではないため、既存プロジェクトを保守する資料として扱います。
- 使用許可のあるフォントで、必要な文字をPNGへ描く。数字だけの素材で日本語全体を表示できるとは限らない。
- ShoeBoxのBitmap Fontへ画像を入れ、Txt Charsの文字順と切り分け結果を照合する。
- 出力形式を、Unity側で使うインポーターが読む形式へ合わせる。旧作例のFNT-xml Starlingはその組合せの例で、すべてのUnityインポーター共通の指定ではない。
- XML等の座標データとPNGを保存し、文字ID・PNGのファイル名・参照先を確認する。


開発者のBitmap Font資料では複数のテンプレートと文字範囲の指定を説明しています。
出力形式名はStarlingです。
旧Unityインポーターと表示確認
既存作例はShoeBox Tools for Unityを使い、Assets → ShoeBox Tools → Import Bitmap FontからXMLを読み込み、旧Textへ生成Fontと対応Materialを設定したものです。
Asset Storeの元商品ページを確認すると、ShoeBox Tools for Unityはdeprecatedとなり、新規購入・提供元のサポートが終了しています。
既存の所有者はMy Assetsから参照できるという案内です。
Unity 6互換性は未確認のため、手元の配布物の版と内容を確認し、プロジェクトの控えで試してください。


TMP Font Assetの作成はこのXMLインポート手順とは別です。
装飾数字を画像として並べる方式も含め、文字範囲、拡大率、文字間隔、Materialの描画方式が要件に合うかを比較します。
3. TTCは使用する文字システムと版で判断する
「UnityはTTCを扱えないので、必ずTTFへ分割する」という説明は現行Unity全体には当てはまりません。
Unity 6.3のTextCore FontEngineはTTF・TTC・OTFをサポートし、UI ToolkitのFont Asset資料もTTCを変換元として挙げています。
旧Text、TMP、UI Toolkitの手順を混同せず、対象コンポーネントと実際のフォントで確認します。
FontEngine/Unity 6.3 Font Asset資料
- TTF:TrueTypeのフォントファイル。
- OTF:OpenTypeのフォントファイル。拡張子だけでアウトライン方式や全環境の対応を決めない。
- TTC:複数のフォントを含むコレクション。必要なフェイスの選択と利用版の対応を確認する。
unitettcの分割・結合は旧資料として残す
旧作例はunitettc64.exeで分割し、逆に複数ファイルから結合する資料です。
以下のYuGothBという名前は元作例で、新規の利用・変換・再配布を許可する説明ではありません。
権利上使用できるフォントのコピーだけを対象とし、元ファイルを保持します。
分割すれば必ず容量が減るとは限りません。
配布元の説明では分割出力に001、002等の連番を付けます。
配布ページとコマンドの書式は確認しましたが、実行ファイルの導入・変換結果は未確認です。
次の例はWindowsのコマンドプロンプト用です。
フォルダーは実際の展開先へ置き換え、unitettc64.exeと対象フォントがあることを確認します。
cdの公式説明に従い、/dでドライブも切り替えます。
移動に失敗した場合は、そのまま変換コマンドへ進まず、フォルダーの場所を確認してください。
cd /d "C:\Users\ユーザー名\Desktop\unitettc"
unitettc64.exe YuGothB.ttc
unitettc64.exe Test.ttc YuGothB001.ttf YuGothB002.ttf YuGothB003.ttf
unitettc開発者の説明を確認し、新しい作業でunitettcを導入する前に、分割が必要かを使用版で確かめてください。
変換後のフォントを自動的に公開サンプルへ同梱せず、埋め込み・改変・配布の条件を配布元のライセンスで確認します。
4. Font Awesomeのアイコンを文字として表示する
- 利用するFont Awesomeの版、Free/Pro、Solid/Regular/Brands等のスタイルを決め、同じ版の対応フォントを用意する。
- そのスタイルに目的のアイコンがあるか、配布資料のUnicodeを確認する。
- 旧Textなら対応Fontを割り当てる。TMPなら使用する文字を含むFont Assetを作成して割り当てる。
- 普通の英数字とアイコンを別々に表示し、フォント参照とグリフ収録の問題を切り分ける。
Font Awesome公式の配布構成とGlyphの資料を確認してください。
最新版のデスクトップ書体の機能がそのままUnityの旧Textで動作するとは限りません。
版・スタイル・Free/Proの範囲を混ぜず、同梱LICENSEも保持します。

旧TextにUnicodeを設定するC#例
TextUnicode.csとして保存し、旧Textを残した同じGameObjectへ追加します。
InspectorにはTextとTextUnicodeをそれぞれ設定する構成です。
このコードはTextMeshProUGUI用ではありません。
Unicode欄にはf023のような16進数だけを入力し、0xやU+は付けません。
表示するアイコンがそのFontに含まれることも必要です。
この例はPlayモードでコンポーネントが有効になったときに反映します。
InspectorでUnicodeを変更しただけでは再反映しないため、再生し直すか、Play中にTextUnicodeを一度無効にして再有効化してください。
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Text))]
public class TextUnicode : MonoBehaviour
{
public string unicode = "f023";
private Text textComponent;
void OnEnable() { UpdateText(); }
void UpdateText()
{
if (textComponent == null)
textComponent = GetComponent<Text>();
if (textComponent == null) return;
string character;
textComponent.text = TryConvert(unicode, out character) ? character : "";
}
public static bool TryConvert(string value, out string character)
{
character = "";
int code;
if (!int.TryParse((value ?? "").Trim(),
System.Globalization.NumberStyles.HexNumber,
System.Globalization.CultureInfo.InvariantCulture, out code)
|| code < 0 || code > 0x10FFFF
|| (code >= 0xD800 && code <= 0xDFFF))
return false;
character = char.ConvertFromUtf32(code);
return true;
}
}
空欄、不正な16進数、Unicodeの上限を超える値、サロゲート範囲は文字を空にして停止します。
字形がないことと、入力値が不正なことは別の原因です。
ConvertFromUtf32の入力条件はMicrosoftのAPI資料に基づきます。
入力変換部分のC#試験は過去の記録で、Unity上のコンポーネント実行とは別です。
OnValidateの公式説明ではメインスレッド以外からも呼ばれるとされています。
この例ではOnValidateからTextを書き換えず、実行時のOnEnableで表示を反映します。
次のInspectorは旧画像です。
掲載したMonoBehaviour版と表示構成が異なるため、現在のTextとTextUnicodeの2コンポーネント構成を確認する証拠には使いません。

文字が出ないときの確認順
| 目的・症状 | 設定・確認先 |
|---|---|
| タグが文字として見える | Rich Textと対応タグ、旧Text/TMPの種類を確認 |
| 日本語の一部だけ四角になる | Font Assetの文字範囲、Dynamic/Static、fallback、アトラスを確認 |
| アイコンだけ出ない | 版・スタイル・グリフ・Unicode・Font参照を確認 |
| スクリプトから変更できない | Textを残し、TextUnicodeと同じGameObjectか確認 |
| 旧ビットマップフォントが欠ける | 画像と文字IDの対応、PNG参照、Material、取り込んだフォント版を確認 |
文字のぼやけやCanvasの拡大縮小はuGUIの基本設定で切り分けます。
今回、Font Asset生成、旧ツールのインポート、アイコン描画のUnity実行は未実施です。
関連するUnityの記事

uGUIでのUI制作は、ほかにも書いています。




