特定のオブジェクトに対して、Rayを飛ばし続けるように、スクリプトを作成してみましょう。
プレーヤーのCubeを操作しても、Sphereに向かってRayを出し続けます。
関連記事:
向いている方向へRaycastを出す
斜めに向けたRaycastで衝突判定
左右にRaycastの接触判定をつくる
Rayの始点をマイナスにする
Rayを当てた状態でキーを押せば削除
特定のオブジェクトに向けてRayを飛ばす
CubeとSphereを作成し、適度に距離をとります。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private float speed; [SerializeField] GameObject sphere; void Start() { speed = 10.0f; } void Update() { Ray ray = new Ray(sphere.transform.position, this.transform.position); Debug.DrawRay(sphere.transform.position, this.transform.position, Color.red); 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; } if (Input.GetKey (KeyCode.W)) { transform.position += transform.forward * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.S)) { transform.position -= transform.forward * speed * Time.deltaTime; } } } |
スフィアのフィールドに、Sphereを入れます。
ゲームプレイしてみましょう。
【上下左右の動き】は十字キー、【前後の動き】はWキーとSキーで操作します。
Sphereに向けて、常にRaycastが出ていることが確認できます。
関連記事:
向いている方向へRaycastを出す
斜めに向けたRaycastで衝突判定
左右にRaycastの接触判定をつくる
Rayの始点をマイナスにする
Rayを当てた状態でキーを押せば削除