オブジェクトに当たったとき、特定の場所にジャンプできるしくみを作ってみましょう。
このように、ターゲットにぶつかれば、別の座標に移動します。
関連記事:
特定の座標で移動を止める
4つの座標で回転して四角形に動く
触れると他の位置へワープする
オブジェクトの用意
CubeオブジェクトをGoal、SphereオブジェクトをPlayerと名前変更しました。
床としてPlaneオブジェクトも作成して、少しサイズを伸ばしておきます。
それぞれのオブジェクトには、わかりやすい色をつけています。
Goalに、Goalという名前でタグをつけましょう。
Playerにはリジッドボディを追加しています。
ぶつかれば移動するスクリプト
Playerに、PlayerMove.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMove : MonoBehaviour { public float speed; void Start() { speed = 5; transform.position = new Vector3(0, 0.5f ,-8); } void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * speed; float dz = Input.GetAxis("Vertical") * Time.deltaTime * speed; transform.position = new Vector3 ( transform.position.x + dx, 0.5f, transform.position.z + dz ); } void OnTriggerEnter(Collider other) { if(other.gameObject.tag == "Goal") { Destroy(other.gameObject); transform.position = new Vector3(0, 0.5f ,8); } } } |
スタート時の座標、Goalに触れたときの座標をそれぞれ設定しています。
プレイしてみましょう。