2つの地点(座標)を指定し、触れた相手のオブジェクトが、目的地点へ行くようにスクリプトを作成しましょう。
A地点にあるオブジェクトに触れると、B地点へ行きます。
逆に、B地点にあるオブジェクトに触れると、A地点に向かって動きます。
関連記事:
指定した座標(目的地点)へ行く
2つの座標(目的地)へ行く
Updateを使わずに特定の座標まで移動
行き帰りできるムービングウォーク
エレベーターをつくる
触れると他の位置へワープする
空間の中でクリックした位置へ行く
斜め上に向けて自動移動
ぶつかると一方の地点へ行く
SphereとCubeを作成します。
Sphereを-3まで移動させて、リジッドボディを追加し、IsKinematicのチェックを外します。
Cubeも位置を変えて、トリガーにするにチェックをいれます。
まずは十字キーでCubeを操作できるようにスクリプトを作りましょう。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private float speed = 10.0f; void Update() { if (Input.GetKey (KeyCode.UpArrow)) { transform.position += transform.up * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.DownArrow)) { transform.position -= transform.up * speed * Time.deltaTime; } if (Input.GetKey(KeyCode.RightArrow)) { transform.position += transform.right * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.LeftArrow)) { transform.position -= transform.right * speed * Time.deltaTime; } } } |
続いて、相手オブジェクト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 22 23 24 25 26 27 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { private float speed = 5.0f; private bool flag; void Update() { if(flag) transform.position = Vector3.MoveTowards(transform.position, new Vector3(3,0,0), speed * Time.deltaTime); else if(!flag) transform.position = Vector3.MoveTowards(transform.position, new Vector3(-3,0,0), speed * Time.deltaTime); } void OnTriggerEnter (Collider other) { if(other.gameObject.name == "Cube" && !flag) flag = true; else if(other.gameObject.name == "Cube" && flag) flag = false; } } |
ゲームプレイしてみましょう。
Sphereオブジェクトに触ると、スタート地点から目的地へ行きます。
目的地にいるSphereに触れば、またスタート地点へ戻ります。
関連記事:
指定した座標(目的地点)へ行く
2つの座標(目的地)へ行く
Updateを使わずに特定の座標まで移動
行き帰りできるムービングウォーク
エレベーターをつくる
触れると他の位置へワープする
空間の中でクリックした位置へ行く
斜め上に向けて自動移動