他のオブジェクトの座標情報を取得してみましょう。
今回の例では、1秒おきにランダムで移動するSphereの座標を、Cube側から取得します。
取得した位置情報をコンソールに表示します。
関連記事:
他のスクリプトの関数を実行する方法
他のスクリプトの変数を取得する
他のオブジェクトの配列を取得する
他のスクリプトのBoolを取得する
Resources.Loadを使ったファイル指定
相手オブジェクトをランダム移動
まずはランダムで移動するオブジェクトを作成しましょう。
Sphereを作成します。
SphereMove.csを作成し、Sphereに追加します。
SphereMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { private float time; void Update() { time -= Time.deltaTime; if(time <= 0.0f) { float posX = Random.Range(-3.0f,3.0f); float posY = Random.Range(-3.0f,3.0f); float posZ = Random.Range(-3.0f,3.0f); transform.position = new Vector3(posX, posY, posZ); time = 1.0f; } } } |
相手オブジェクトの座標を取得
続いて、ランダム移動するSphereの位置を、Cubeの側から取得していきます。
Cubeを作成します。
CubeScript.csを作成し、Cubeに追加します。
CubeScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { [SerializeField] GameObject target; void Start() { target = GameObject.Find("Sphere"); } void Update() { Debug.Log(target.transform.position); } } |
ゲームプレイしてみましょう。
Sphereの位置が変わるたびに、コンソールに表示されます。
まずは対象オブジェクトを取得し、その座標(transform.position)を出力しています。
関連記事:
他のスクリプトの関数を実行する方法
他のスクリプトの変数を取得する
他のオブジェクトの配列を取得する
他のスクリプトのBoolを取得する
Resources.Loadを使ったファイル指定