ぶつかったオブジェクトの名前を配列の中に入れて、テキストで表示してみましょう。
3つのオブジェクトに触れた順番で、オブジェクト名を要素0~2へ格納。
要素0~2の名前を、テキストとして画面に出現させます。
関連記事:
入力テキストを順番に配列に入れる
ランダム表示したPrefabを順に配列に入れる
配列にあるオブジェクトを要素番号で呼び出す
クリックしたオブジェクトを順番に配列に入れる
配列のオブジェクトをキー操作で切り替える
ぶつかったオブジェクトを順に配列に入れる
FindObjectsOfTypeで指定したクラスを全て取得
ゴールした順位をテキスト表示
リストのオブジェクト名を一行でテキスト表示
文字(String)を配列に追加する
1秒おきに文字を書き換える
オブジェクトの用意
Cubeを作成。
リジッドボディを追加し、UseGravityのチェックを外します。
わかりやすくするため、マテリアルカラーをつけました。
Sphere、Cylinder、Cupsuleを作成。
「Target」というタグを新規作成し、設定します。
それぞれコライダーで、「トリガーにする」にチェックを入れます。
3つのオブジェクトのX座標、Z座標を動かし、Cubeから離して配置します。
要素の文字列をテキストで出す
テキストを作成し、名前をText0~2に変更します。
それぞれのテキストのサイズ、色、位置を調整し、横並びに配置しましょう。
ゲームビューではこのように見えています。
配置あ終われば、デフォルトの「New Text」の文字は、すべて消しておきましょう。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class CubeMove : MonoBehaviour { public string[] myArray = new string[3]; private int count; public Text arrayText0; public Text arrayText1; public Text arrayText2; void Start() { count = 0; } void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + dx, 0, transform.position.z + dz ); } void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Target" ) { if(count == 2){ myArray[2]= other.gameObject.name; arrayText2.text = "3: " + myArray[2]; other.gameObject.SetActive(false); count++; } if(count == 1){ myArray[1]= other.gameObject.name; arrayText1.text = "2: " + myArray[1]; other.gameObject.SetActive(false); count++; } if(count == 0){ myArray[0]= other.gameObject.name; arrayText0.text = "1: " + myArray[0]; other.gameObject.SetActive(false); count++; } } } } |
ArrayText0~2のフィールドに、3つのテキストを入れます。
ゲームプレイして、Cubeを操作しましょう。
オブジェクトにぶつかった順番で、配列の中に格納。
配列の要素0~2を、左から順にテキストで表示します。
関連記事:
入力テキストを順番に配列に入れる
ランダム表示したPrefabを順に配列に入れる
配列にあるオブジェクトを要素番号で呼び出す
クリックしたオブジェクトを順番に配列に入れる
配列のオブジェクトをキー操作で切り替える
ぶつかったオブジェクトを順に配列に入れる
FindObjectsOfTypeで指定したクラスを全て取得
ゴールした順位をテキスト表示
リストのオブジェクト名を一行でテキスト表示
文字(String)を配列に追加する
1秒おきに文字を書き換える