Unityでテキストを変更、加算する方法/textプロパティの使い方

write IT

これとIf文だけできればとりあえずアドベンチャーゲームっぽいものが作れる、「何かを押したらテキストが変化する」処理の作り方です。
要するにコンポーネントを取得して、イベントに合わせてそれに別の値を代入しています。画像の変更などでもやってることは実質同じです。

スポンサーリンク

成果物

ct2
クリックすると文字列が変化する、数値が加算される命令を作ります。

テキストを変更する

count1
前に作ったクリックするとジャンプするプログラムの隣に、テキストを設置しておきます。スクリプトはキツネにセットしてあります。
count2
ここの「マウスでクリックしたときの処理」に、テキストを変更するコードを書き加えたいと思います。
count3
テキストはUIオブジェクトというくくりの一種で、これをコードで扱うには、最初の名前空間の宣言でusing UnityEngine.UI;という宣言をする必要があります。要はコピペすればいいです。
count4
宣言をした上で、クラス名の中でpublic Text text;のように記述すると、「text」という名前を付けた「Textコンポーネント」を使うという意味になり、
count5
キツネのインスペクターに、Textコンポーネントをセットできるようになります。
count6
ヒエラルキーから内容を変更したいTextオブジェクトをドラッグし、
count7
セットします。これで、TextオブジェクトのTextコンポーネントがtextという変数名でセットされました。
Textコンポーネントにはtextというプロパティがあり、textプロパティを変更すると文章の内容が変わります。いやがらせみたいなコードですが、慣れるしかないです。
count8
てなわけで、クリックした時にtext.text =”1″;を実行します。前のtextが変数名で、実質「TextオブジェクトのTextコンポーネント」です。それのtextプロパティを1に変更する、という命令です。
ct1
実行すると、キツネの数値が1に変更されます。

数字を表示/加算

count10
textプロパティに対して、””で囲まない(文字列でない)直接数字を代入しようとするとエラーになります。
count11
解決策としては、変数で数値(int)を作り、これに数値を代入して、
count12
最後にToString()を付けて文字列に変換した数値を表示する、という方法があります。ToStringは変数を文字列に変換する命令です。
ct1
この状態で、さっきと同じく数字の1を表示する命令になっていますが、
count13
さらに後ろに変数の値を+1する命令を加えれば、
ct2
クリックするたびに数値が加算される命令となります。
//Unity C#
public class jump : MonoBehaviour
{
    public Text text;
    public int addText= 1;

    void OnMouseDown()
    {
        this.GetComponent().velocity = new Vector2(0, 10);
        //変数addTextを文字列に変換し、text.textに代入=表示する文章を変更
        text.text = addText.ToString();
        //変数addTextを1加算
        addText = addText + 1;
    }
}
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント