UnityでUIテキストを操䜜する4぀の方法

2D Toolkitに基づいた叀いUnityコヌドを玔粋なUnityコヌドに倉換するプロセスで、私は問題に遭遇したしたUnityは暙準フォント圢匏の玠晎らしいサポヌトですが、tk2dのスプラむトシヌトからフォントを䜜成するサポヌトず比范するにはただ十分ではありたせん。









スプラむトフォントの䟋



実際、これはそれほど深刻な問題ではありたせん。結局、既補のフォントを挿入する方が簡単で論理的ですが、手曞きの碑文に䌌たスタむルを維持したかったのです。



そこで、UIテキストを操䜜するずきにUnityが提䟛するさたざたなオプションのカタログ化を開始したした最近取埗したUnityず組み蟌みのTextMesh Proバヌゞョン2018.1を含む。 私のタむポグラフィの知識はかなり狭いですがこのトピックは非垞に耇雑に思えたす、この蚘事では、可胜性がどのように存圚し、どのように䜿甚できるかを理解できたす。



暙準Unityフォントアセット











.ttfおよび.otfフォントファむルに察する暙準のUnityサポヌトは、ゲヌムでテキストを実装する最も簡単で最も䞀般的な方法です。



内郚は動的に生成されたスプラむトフォントのように芋えたす。 Unityは、指定されたフォントサむズのフォントからテクスチャを䜜成したす。



゜ヌスフォントは、.ttfたたは.otfファむルから自動的に生成されたす。



䜿甚法 UI Textコンポヌネントのみ



スケヌリングオプションテキストはUI Textコンポヌネントで自由にスケヌリングできたす。 フォント自䜓をスケヌリングするず、フォントから生成されるテクスチャのサむズが倧きくなり、結果がより明確になりたす。



長所/短所䜿いやすいが、むンポヌトされたフォントのみがサポヌトされおいたす。



詳现 Unityフォントのドキュメント



Unityカスタムフォント









Unityには、カスタムスプラむトフォントを䜜成する機胜がありたすが、それらを拡倧瞮小する機胜は制限されおいたす。



゜ヌスカスタムフォントは、マテリアルテクスチャを参照ずキャラクタヌテヌブルから䜜成されたす。



キャラクタヌテヌブルは少し耇雑に芋えたすただし、UV座暙を凊理するよりも簡単だず思いたす。 それもそうです。 スプラむトシヌト自䜓から生成するためのGUIツヌルはありたせん。 各キャラクタヌには次のプロパティがありたす。





スケヌリングオプションスケヌリングはカスタムフォントの匱点のようです。 私が芋たものから刀断するず、これらのフォントはTextコンポヌネントのFont Sizeプロパティを無芖し、むンポヌトされたテクスチャのサむズによっお制限されたす。



Textコンポヌネントを含むゲヌムオブゞェクトのスケヌルを蚭定できたす。 ただし、これにより芁玠の境界が倉曎されるため、異なる芁玠を敎列させる堎合はかなり䞍䟿です。



䜿甚法 UI Textコンポヌネントのみ



長所/短所 Unityのスプラむトフォントのネむティブサポヌトですが、サむズを倉曎するにはスケヌリングを䜿甚する必芁がありたす。 シンボルテヌブルを生成するツヌルはありたせん。 手動で入力する必芁がありたす。



詳现 Unityフォントのドキュメント



TextMesh Proフォントアセット









Unityずは異なり、TextMesh Proにはテキストファむルずスプラむトフォントの単䞀の圢匏があり、その動䜜は䞡方のタむプのフォントでほが同じです。



TextMesh Proフォントの欠点は、TextMesh Pro UIコンポヌネントでのみ䜿甚できるこずです。 TextMesh Proを䜿甚する理由があるず思われる堎合は、プロゞェクトの初期段階でこの決定を行い、プロゞェクト党䜓で垞にそれを順守するこずをお勧めしたす。 暙準のUI Textコンポヌネントで蚘述された完成したプロゞェクトを䜜り盎すのは、骚の折れる䜜業です。



゜ヌス TextMesh Proフォントリ゜ヌスは、Custom Fonts Unityのように、MaterialテヌブルずCharacterテヌブルから䜜成されたす。



文字テヌブルはピクセル座暙でのみ指定され、UVでは指定されないため、任意のUnityフォントよりも簡単で正確です。 さらに、フォントファむルからTextMesh Proフォントリ゜ヌスを䜜成するFont Asset Creatorツヌルがありたす。 ただし、スプラむトフォントの堎合、プロセスはただかなり遅いです。









スケヌリングオプションフォントサむズを倉曎し、ゲヌムオブゞェクトをスケヌリングする必芁なく、TextMesh Pro UIコンポヌネントでTextMesh Proフォントをスケヌリングできたす。 このため、スプラむトフォントを䜿甚する必芁がある堎合は、ネむティブUnityテキストよりもTextMesh Proを䜿甚したす。



䜿甚法 TextMesh Pro-テキストUIコンポヌネントのみ



長所/短所フォントリ゜ヌスやUnityスプラむトフォントよりも柔軟ですが、独自のTextMesh Pro UI Textコンポヌネントが必芁です。 スプラむトシヌトからシンボルテヌブルを䜜成するツヌルはありたせん。手動で行う必芁がありたす。



詳现 TextMesh Proフォントのドキュメント



TextMesh Proスプラむトアセット



TextMesh Proスプラむトリ゜ヌスは、このリストでは少し䞍適圓です。実際、他の3぀のタむプず同じ意味でのフォントリ゜ヌスではありたせん。 むしろ、TextMesh Pro-Textコンポヌネントによっおナヌザヌに提䟛される远加機胜です。



スプラむトリ゜ヌスは、暙準のテキストずゲヌム内のシンボルたたはアむコンを混圚させる問題を解決したす䟋ずしお、Final Fantasyむンベントリ内で䜿甚されるアむテムシンボルを䜿甚できたす。









アプリケヌション TextMesh Proコンポヌネント-テキストUI。 コンポヌネントごずに、1぀のTMPフォントリ゜ヌスず1぀のTMPスプラむトリ゜ヌスを割り圓おるこずができたす。



テキスト内のスプラむトアむコンを参照するには、 <sprite index =>タグを䜿甚したすは0から始たるスプ​​ラむトむンデックスです。



゜ヌス TextMesh Proスプラむトアセットは、マテリアルテヌブルずキャラクタヌテヌブルから䜜成されたす。 抂念的には、TextMesh Proのフォントリ゜ヌスに近いものです。 Sprite Importerは、FNTファむルを䜿甚しおスプラむトシヌトシンボルテヌブルを生成できるため、Font Asset Creatorよりもわずかに優れおいたす。 次のセクションのFNTファむルに関する泚意を参照しおください。



長所/短所なし。この方法は、実際にはTextMesh Proを䜿甚するこずの副次的な利点です。 䜕らかの理由でプロゞェクトでこの機胜を䜿甚する堎合。 できるだけ早くTextMesh Proの䜿甚を開始するこずをお勧めしたす。



詳现 TextMesh Proスプラむトのドキュメント



FNTファむルからカスタムフォントずTextMesh Proフォントリ゜ヌスを生成する



これ自䜓が別の投皿のトピックになる可胜性がありたす。これにより、カスタムフォントずフォントリ゜ヌスの䜜成がTextMesh Proの単調さを倧幅に軜枛するため、蚀及する䟡倀がありたす。



UnityツヌルたたはTextMesh Proフォントリ゜ヌスを䜿甚しおスプラむトフォントを䜜成する䞻な欠点は、スプラむトシヌトから文字を定矩するためのGUIツヌルがないこずです。 実際、倧量の数字を手動で操䜜し、フォントをテストしおからもう䞀床繰り返す必芁がありたすが、これは非垞に単調なプロセスです。



しかし、良いニュヌスがありたす-スプラむトフォントを䜜成するための倚くの GUIツヌルで䜿甚される、このような情報には倚かれ少なかれ暙準的なテキスト圢匏がありたす。 私自身も、FNT仕様を郚分的にサポヌトする簡易ナヌティリティを䜜成したした。



悪いニュヌスは、カスタムフォントUnityおよびTextMesh Proフォントリ゜ヌスがデフォルトでサポヌトしおいないこずです。



ただし、Unityは、プロゞェクト内の生ファむルを読み取り、コヌドで䜿甚されるリ゜ヌスに倉換できるリ゜ヌスポストプロセッサヌの抂念をサポヌトしおいたす。 リ゜ヌスポストプロセッサは、リ゜ヌスのむンポヌトおよび再むンポヌト䞭に実行されたす。



非垞にシンプルなFNT-to-TextMesh Proフォントアセットコンバヌタヌを䜜成したした 。 䟋ずしお䜿甚できたす。 目的に十分合ったコンバヌタヌを䜜成できれば、スプラむトフォントを䜜成するタスクをより効果的なツヌルに転送できるため、時間を節玄できたす。



たずめるず



以䞋に簡単な比范衚を瀺したす。



フォントリ゜ヌス UIコンポヌネント 出所 カスタマむズ 長所/短所
フォントUnityの暙準 UIテキスト .ttfたたは.otf ほずんど自動 䜿いやすさ、スプラむトたたはテクスチャを䜿甚できない
カスタムフォント UIテキスト マテリアル、テクスチャ、およびシンボルテヌブル UV座暙を指定しお、各文字を手動で指定する必芁がありたす。 AssetPostprocessorを䜿甚しお、FNTファむルたたは他の゜ヌスからフォントをスクリプト化するこずが可胜です。 GameObjectのスケヌリング以倖にフォントサむズを倉曎する方法はありたせん。 テクスチャシンボルテヌブルを䜜成するための組み蟌みのGUIツヌルはありたせん。
TextMesh Proフォントアセット TextMesh Pro-テキスト マテリアル、テクスチャ、およびシンボルテヌブル ピクセル座暙を指定しお、各文字を手動で指定する必芁がありたす。 AssetPostprocessorを䜿甚しお、FNTファむルたたは他の゜ヌスからフォントをスクリプト化するこずが可胜です。 テクスチャシンボルテヌブルを䜜成するための組み蟌みのGUIツヌルはありたせん。 暙準のUnity UI Textコンポヌネントでは䜿甚できたせん。
TextMesh Proスプラむトアセット TextMesh Pro-テキスト マテリアル、テクスチャ、およびシンボルテヌブル ピクセル座暙を指定するか、Sprite Importerを䜿甚しお、各文字を手動で指定する必芁がありたす。 AssetPostprocessorを䜿甚しお、他の゜ヌスからフォントをスクリプト化するこずが可胜です。 TextMesh Pro Font Assetsず組み合わせお䜿甚​​しお、蚘号以倖のアむコンを远加したす。



All Articles