前から飛んでくるオブジェクトを、クリックで壊せるように、スクリプトを作成してみましょう。
1秒おきにSphereがこちらに向かって移動してきます。
カーソルを合わせて左クリックすれば、Sphereが削除されます。
関連記事:
指定した5つのポイントからランダム移動
1秒おきに座標をランダムにして落下
ボールに動きをつける
Sphereを作成します。
SphereMove.csを作成し、Sphereに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { void Update() { transform.position += new Vector3(Time.deltaTime * 0, 0, -0.5f); if(transform.position.z <= -20) { Destroy(gameObject); } } } |
このスクリプトで、手前の方向げボールが動きます。
Sphereをプロジェクトビューにドラッグ&ドロップして、Prefabデータに変換しましょう。
Sphereの元データは削除します。
飛んでくるボールをクリックで消す
次に、ボールが生成されて、クリックで破壊できる仕組みを作りましょう。
空のオブジェクトを作成し、座標を10にします。
ClickDestroy.csを作成し、GameObjectに追加しましょう。
ClickDestroy.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 ClickDestroy : MonoBehaviour { private float time; public GameObject sphere; void Start() { time = 1.0f; } void Update() { time -= Time.deltaTime; if(time <= 0.0f) { Instantiate(sphere,this.transform.position,Quaternion.identity); time = 1.0f; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { Destroy(hit.collider.gameObject); } } } } |
スフィアのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしてみましょう。
前からボールが飛んできて、クリックで撃ち落とすことができます。