これとIf文だけできればとりあえずアドベンチャーゲームっぽいものが作れる、「何かを押したらテキストが変化する」処理の作り方です。
要するにコンポーネントを取得して、イベントに合わせてそれに別の値を代入しています。画像の変更などでもやってることは実質同じです。
成果物
![ct2](https://sunagitsune.com/wp-content/uploads/2021/07/ct2.gif)
クリックすると文字列が変化する、数値が加算される命令を作ります。
テキストを変更する
![count1](https://sunagitsune.com/wp-content/uploads/2021/07/count1.png)
前に作ったクリックするとジャンプするプログラムの隣に、テキストを設置しておきます。スクリプトはキツネにセットしてあります。
![count2](https://sunagitsune.com/wp-content/uploads/2021/07/count2.png)
ここの「マウスでクリックしたときの処理」に、テキストを変更するコードを書き加えたいと思います。
![count3](https://sunagitsune.com/wp-content/uploads/2021/07/count3.png)
テキストはUIオブジェクトというくくりの一種で、これをコードで扱うには、最初の名前空間の宣言でusing UnityEngine.UI;という宣言をする必要があります。要はコピペすればいいです。
![count4](https://sunagitsune.com/wp-content/uploads/2021/07/count4.png)
宣言をした上で、クラス名の中でpublic Text text;のように記述すると、「text」という名前を付けた「Textコンポーネント」を使うという意味になり、
![count5](https://sunagitsune.com/wp-content/uploads/2021/07/count5.png)
キツネのインスペクターに、Textコンポーネントをセットできるようになります。
![count6](https://sunagitsune.com/wp-content/uploads/2021/07/count6.png)
ヒエラルキーから内容を変更したいTextオブジェクトをドラッグし、
![count7](https://sunagitsune.com/wp-content/uploads/2021/07/count7.png)
セットします。これで、TextオブジェクトのTextコンポーネントがtextという変数名でセットされました。
Textコンポーネントにはtextというプロパティがあり、textプロパティを変更すると文章の内容が変わります。いやがらせみたいなコードですが、慣れるしかないです。
Textコンポーネントにはtextというプロパティがあり、textプロパティを変更すると文章の内容が変わります。いやがらせみたいなコードですが、慣れるしかないです。
![count8](https://sunagitsune.com/wp-content/uploads/2021/07/count8.png)
てなわけで、クリックした時にtext.text =”1″;を実行します。前のtextが変数名で、実質「TextオブジェクトのTextコンポーネント」です。それのtextプロパティを1に変更する、という命令です。
![ct1](https://sunagitsune.com/wp-content/uploads/2021/07/ct1.gif)
実行すると、キツネの数値が1に変更されます。
数字を表示/加算
![count10](https://sunagitsune.com/wp-content/uploads/2021/07/count10.png)
textプロパティに対して、””で囲まない(文字列でない)直接数字を代入しようとするとエラーになります。
![count11](https://sunagitsune.com/wp-content/uploads/2021/07/count11.png)
解決策としては、変数で数値(int)を作り、これに数値を代入して、
![count12](https://sunagitsune.com/wp-content/uploads/2021/07/count12.png)
最後にToString()を付けて文字列に変換した数値を表示する、という方法があります。ToStringは変数を文字列に変換する命令です。
![ct1](https://sunagitsune.com/wp-content/uploads/2021/07/ct1.gif)
この状態で、さっきと同じく数字の1を表示する命令になっていますが、
![count13](https://sunagitsune.com/wp-content/uploads/2021/07/count13.png)
さらに後ろに変数の値を+1する命令を加えれば、
![ct2](https://sunagitsune.com/wp-content/uploads/2021/07/ct2.gif)
クリックするたびに数値が加算される命令となります。
//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;
}
}
![](https://sunagitsune.com/wp-content/uploads/2021/07/computer-1343393_1280-160x90.jpg)
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント