メインコンテンツまでスキップ

テキスト

YauiText はテキストを描画する要素です。UI Toolkit のテキストエンジンである Unity の Advanced Text Generator (ATG) を使い、次の機能を提供します。

  • シェーピング (アラビア文字やデーヴァナーガリーなどの文字体系のため)
  • フォントにない文字の OS フォントへのフォールバック
  • 言語ごとの改行規則 (CJK の禁則処理を含む)
  • リッチテキストのタグ

グリフは Uber シェーダーによって、動的なフォントアトラスから SDF (符号付き距離場) として、ボックスや画像と同じドローコールで描画されます。

プロパティ​

プロパティ説明
Textテキスト
Fontフォント (UnityEngine.Font)。未設定なら組み込みのフォント。
FontSizeキャンバス単位でのサイズ
Color既定の色。リッチテキストのタグで上書きできます。
AlignLeft、Center、Right、Justified
VerticalAlign要素のボックス内での Top、Middle、Bottom
WordWrapボックスの幅で行を折り返すかどうか
OverflowVisible、またははみ出したところでテキストを切り「…」で終える Ellipsis
RichTextリッチテキストのタグを解釈するかどうか
SpriteAsset<sprite> タグのための TextCore のスプライトアセット
OutlineWidth, OutlineColorグリフの周りのアウトライン
ShadowColor, ShadowOffset, ShadowBlurグリフ (とそのアウトライン) の下の影。オフセットもぼかしもなければ影はありません。

アウトラインの幅と影のぼかしは、フォントアトラスの距離場によって制限されます。動的フォントではフォントサイズの約 10 分の 1 です。

サイズ​

Width または Height が Auto のとき、テキストの要素はレイアウトによって計測されます。WordWrap が有効なら、テキストはレイアウトが与えた幅で折り返されます。

YauiText は子の要素をレイアウトしません。子は無視されます。

Overflow = Ellipsis では、テキストは幅 (折り返しなしの場合) または高さ (折り返しありの場合) からはみ出したところで切られます。

生成​

テキストのプロパティの変更は、変更した時点では安価です。テキストは変更済みとしてマークされるだけです。変更されたテキストは、PreLateUpdate の開始時にワーカースレッド上のジョブとしてまとめて生成され、描画の直前に回収されます。スクリプティングを参照してください。

テキスト生成は YAUI で最もコストの高い処理です。値を設定する前に比較するなどして、変わっていないテキストを変更しないようにしてください。YauiText.Text は、新しい文字列が同じ場合には何もしません。

備考

ATG は内部 API を通して呼び出されます。内部 API はリフレクションで取得し、起動時に検証します。使用中の Unity のバージョンと一致しない場合、テキストは代わりにメインスレッド上で公開 API の TextGenerator によって生成されます。動作はしますが、低速になります。

リッチテキストとスプライト​

RichText を有効にすると、ATG がサポートするタグ (例: <b>、<i>、<color>、<size>、<sprite>) を使えます。

<sprite> を使うには、SpriteAsset に TextCore のスプライトアセット (UnityEngine.TextCore.Text.SpriteAsset) を設定してください。