[Unity] 数字をスプライトで表示

Unityのスプライトで数字を表示させるためのTipsのご紹介です。

num-sprite

Unityで数字を表示するためにはGUITextやuGUIのTextを用いることで実現できます。
しかし、自分で描いたオリジナルの数字を表示させたい場合は数字の絵を並べて表示させる必要が出てきます。
今回はこれを簡単に行うためのスクリプトを用意しました。

宜しければご自由にお使いください。

NumSprite.cs

かなりやっつけで作ったので、汚い部分があることはご了承願います。
今回は左寄せのみに対応しました。

上記スクリプトをGameObjectにアタッチすると、インスペクタから以下のような編集画面が表示されます。

num-sprite-edit

ShowSpriteにスプライトを表示させるのに用いるGameObjectのプレハブ、0~9に各数字に対応したスプライト、Minusにマイナス符号「-」のスプライトを指定します。
Widthには表示する数字の間隔を指定します。
これで、記事の冒頭で示したような数字のスプライトが表示されるようになります。

表示する値はスクリプトからValueプロパティに指定してください。

今回のスプライト表示の考え方は、各数字をスプライトの付いたGameObjectとして並べて表示することです。
スプライトは表示する数字に合わせて変えてやります。
並べるGameObjectは数字の桁数分だけ必要です。

Valueに値を指定するたびにGameObjectの破棄・作成を行う、左寄せしか出来ない、桁数分だけGameObjectが必要などデメリットがありますが、それほどパフォーマンスを求めない場面では使えるのではないかと思います。
パフォーマンス面では大いに改良の余地ありですが、これはまたの機会に考えたいと思います。