サポート

よくあるご質問

ビルドサイズ、フォント、グリフアトラス、ランタイムパフォーマンスに関する率直な回答 — 実際の開発者からの質問をもとにまとめました。

ビルドサイズ & 配布

UniText はビルドサイズを肥大化させますか? 実際にビルドに含まれるものは何ですか?

ビルドサイズはプラットフォーム、アーキテクチャ、ストリッピング、圧縮に依存します。グリフアトラスは実行時に生成されます。 フォントアセットがデータを保持し、元の.ttfと.otfはエディター専用の参照です。ネイティブプレイヤーはディスクキャッシュを読み、WebGLはデータを同梱します。

.ttf ファイルを保持して出荷する必要はありますか?

フォントアセットがデータを保持し、元の.ttfと.otfはエディター専用の参照です。ネイティブプレイヤーはディスクキャッシュを読み、WebGLはデータを同梱します。

そもそも .ttf をプロジェクトにインポートする必要はありますか?

いいえ。UniText のツールウィンドウから、ディスク上のどこにある .ttf でも UniTextFont を作成できます(ファイルダイアログがバイトデータを直接読み取ります)。フォントをプロジェクトにインポートするかどうかは任意です。

UniText は空のビルドに実際どれくらいのサイズを追加しますか?

ビルドサイズはプラットフォーム、アーキテクチャ、ストリッピング、圧縮に依存します。グリフアトラスは実行時に生成されます。

CJK や大きなフォントの場合、UniText は TextMesh Pro とどう違いますか?

システムフォントを自動選択。デスクトップとモバイルでは独自フォントは任意。WebGLは指定フォントを使用。 新しいグリフにはラスタライズとアップロードが必要です。キャッシュ済みグリフは無効化または削除まで再利用されます。

サーバーや CDN からフォントを動的に読み込めますか?

はい — それは開発者側の領分であり、UniText が邪魔をすることはありません。独自のコード(UnityWebRequest)でフォントのバイトデータをダウンロードし、ランタイムに CreateFontAsset(byte[]) で UniTextFont を作成してください。フォントを必要な文字だけに削減する(サブセット化)には、UniText のビルド時ツールを使います。パッケージには組み込みの CDN 自動ローダーはありません — これは意図的に、エンジンではなくプロジェクトの責務としているためです。

フォント & システムフォント

UniText は OS のシステムフォントを使えますか? メモリと起動時間のコストはどれくらいですか?

システムフォントを自動選択。デスクトップとモバイルでは独自フォントは任意。WebGLは指定フォントを使用。

WebGL はシステムフォントに対応していますか?

システムフォントを自動選択。デスクトップとモバイルでは独自フォントは任意。WebGLは指定フォントを使用。

Font Memory Mapping

大きなフォントファイルを必要に応じてディスクから読み込み。管理メモリに全体のコピーを保持せず、未使用のフォントは圧縮状態を維持。 WebGLとエディター内の埋め込みフォントはメモリ上のデータを使用します。ファイルベースのフォントはメモリマッピングを使用します。

本格的なピクセルフォント

鮮明なピクセル、自動グリッド検出、グリッドに揃うエフェクトとアニメーション。ベクター型とビットマップ型で共通のスタイルシステム。 Pixel Gridの整数倍のサイズでピクセルが正確に一致します。Snap To Pixel Gridはエフェクトとアニメーションも揃え、無効にするとサブピクセル移動が可能です。

グリフアトラス — SDF Detail & Tile Size

「SDF Detail」と「Tile Size Offset」は実際には何をするものですか?

グリフは3つのサイズ — 64、128、256 — のタイルに収められ、サイズは輪郭の複雑さから選ばれます(セグメントが多い → 128/256、単純な輪郭 → 64)。 • SDF Detail は複雑さの推定値に対する乗数です。値を上げると、すでに単純ではないグリフがより大きなタイルへ移動しやすくなります。(本当に単純な形状は 64 のままです — 乗数はしきい値を超えるグリフにのみ影響します。) • Tile Size Offset はサイズの段階に沿った強制的なステップです(選ばれた 64 + オフセット 1 → 128、範囲は −2..+2)。

パフォーマンスのためには、この2つのどちらを優先すべきですか?

どちらも単独では優先すべきではありません — どちらも最終的なタイルサイズを決めるだけで、コストはそのサイズだけで決まります。同じタイルサイズに帰着する2つの組み合わせのコストは、まったく同じです。許容できる品質が得られる範囲で、できるだけ小さいタイルサイズを目指してください。

ランタイムパフォーマンス

UniText はいつグリフをラスタライズしますか? 毎フレーム、メモリをコピーするのですか?

新しいグリフにはラスタライズとアップロードが必要です。キャッシュ済みグリフは無効化または削除まで再利用されます。

大量の新しいテキストが一度に表示されると、なぜ一瞬のひっかかりが生じるのですか?

新しいグリフにはラスタライズとアップロードが必要です。キャッシュ済みグリフは無効化または削除まで再利用されます。

Profiler に UniText のジョブが見当たりません — マルチスレッドは本当に機能しているのですか?

Coreが描画前のテキスト処理を調整します。ワーカースレッドとBurstが大きな処理を担当し、局所変更は関連する処理段階のみを無効化します。

MonoBehaviour.Update() はパフォーマンスを損なうのですか? 単一の UniTextManager が必要ですか?

Coreが描画前のテキスト処理を調整します。ワーカースレッドとBurstが大きな処理を担当し、局所変更は関連する処理段階のみを無効化します。

サポートとディスカッション

質問、サポート、ディスカッションの主な窓口はDiscordです。不具合報告と機能リクエストは、公開のイシュートラッカーで受け付けています。

サポートとディスカッション: [email protected]