【Unity NGUI】文字を表示する

第6回目は、「文字」についてです。 日本語にしろ英語にしろゲーム内では文字で表示する場面があると思います。今回はその際に必要な「文字の表示」をNGUIで行いたいと思います。

前回:【Unity NGUI】オブジェクトの描画順について。Z値の調整。 | albatrus.com

NGUI : 文字を表示する

NGUIで文字を表示する場合は[Label]を利用します。

2014-9-1-fdsa.png

[Label]には[UILabel(Script)]があります。 この部分を色々と調整しますが、必要なのはフォントとTextです。

2014-9-1-dasad

フォントの選択

フォントは下記画像の赤枠の部分で選択します。 デフォルトで日本語を表示するには[Unity]->[Arial]を選択して下さい。

2014-9-1-fdsasd

文字の入力

文字は[Text]の部分に入力をして下さい。

2014-9-1-dsasad

新しいフォントを追加する

新しいフォントを利用する場合は、[FontMaker]を利用します。

2014-9-1-diiioo

次にフォントを用意して、Unity内のプロジェクトに追加をして下さい。 これを[FontMaker]を使ってNGUIで利用できるようにします。

FontMaker

まずは、[Type]を[Dynamic]にします。

2014-9-1-oooooo

次に利用するフォントを[Source]から選択します。

2014-9-1-iiii

最後に[Create the Font]を押せば完了です。 後は、[UILavel]で利用するだけです。

文字の変更

途中で文字を変更する場合は、以下の様なスクリプトを書きます。 [c] UILabel _label; int hogeTime;

// Use this for initialization
void Start () {

    //UILavelコンポーネントを選択
    _label = GetComponent<UILabel>();

}

void  FixedUpdate () {

    hogeTime +=1;
    _label.text = hogeTime.ToString();

}

[/c]

コンポーネントを選択して、[Text]を別の文字に置き換えるだけです。 上記のスクリプトを実行すると、数字が段々増えていきます。

一文字づつ文字を表示する

これは、私がcocos2dxで実装したくて未だにできていないことなのですが、NGUIですと簡単に実装ができます。

TypewriterEffect

その方法は[TypewriterEffect]を利用することです。これをコンポーネントに追加すれば、すぐに実装ができます。

2014-9-1-fdsaaa

最後に

今回はNGUIでの「文字の表示」についてブログに書きました。 ただ、実践で利用するにはもう少し工夫や方法を見つけていかないといけないと感じました。

  • 会話のように複数の文字を利用する場合は、どこからそのデータを取ってくるか。全てScrip内に書くのはスマートではない感じがします。
  • 文字の装飾をしても、自然な感じがせず文字に違和感を感じる。素人が作ったように見える
  • 一文字づつ表示する際に、文字が長いと一定の場所に収まりきらなくなる。必要のない行は消したい。

その他色々と不満な点があります。

ゲーム開発者になるための Unity4 徹底ガイド プロが教える効果的なゲーム制作技法
ゲーム開発者になるための Unity4 徹底ガイド プロが教える効果的なゲーム制作技法