第6回目は、「文字」についてです。 日本語にしろ英語にしろゲーム内では文字で表示する場面があると思います。今回はその際に必要な「文字の表示」をNGUIで行いたいと思います。
前回:【Unity NGUI】オブジェクトの描画順について。Z値の調整。 | albatrus.com
NGUI : 文字を表示する
NGUIで文字を表示する場合は[Label]を利用します。
[Label]には[UILabel(Script)]があります。 この部分を色々と調整しますが、必要なのはフォントとTextです。
フォントの選択
フォントは下記画像の赤枠の部分で選択します。 デフォルトで日本語を表示するには[Unity]->[Arial]を選択して下さい。
文字の入力
文字は[Text]の部分に入力をして下さい。
新しいフォントを追加する
新しいフォントを利用する場合は、[FontMaker]を利用します。
次にフォントを用意して、Unity内のプロジェクトに追加をして下さい。 これを[FontMaker]を使ってNGUIで利用できるようにします。
FontMaker
まずは、[Type]を[Dynamic]にします。
次に利用するフォントを[Source]から選択します。
最後に[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]を利用することです。これをコンポーネントに追加すれば、すぐに実装ができます。
最後に
今回はNGUIでの「文字の表示」についてブログに書きました。 ただ、実践で利用するにはもう少し工夫や方法を見つけていかないといけないと感じました。
- 会話のように複数の文字を利用する場合は、どこからそのデータを取ってくるか。全てScrip内に書くのはスマートではない感じがします。
- 文字の装飾をしても、自然な感じがせず文字に違和感を感じる。素人が作ったように見える
- 一文字づつ表示する際に、文字が長いと一定の場所に収まりきらなくなる。必要のない行は消したい。
その他色々と不満な点があります。