複数の位置に向けて移動を繰り返しながら、こちらに向けて発射してくる敵キャラを作ってみましょう。
Cubeが1秒おきに、3つの地点への移動を続けながら、ボールを撃ってきます。
3点間の移動をくり返しながら発射
空のオブジェクトを3つ作ります。
それぞれ、Point0~2と名前を付けかえます。
Point0~2の位置を、それぞれ異なる数値に変更します。
これらの座標が、Cubeの移動先になります。
Sphereを作成し、リジッドボディを追加。
これをプレハブにします。
Sphereの元データは削除します。
Cubeを作成します。
CubeScript.csを作成し、Cubeに追加します。
CubeScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { public Transform[] pointArray = new Transform[3]; int count; float time; [SerializeField] GameObject prefab; void Start() { time = 1.0f; transform.Rotate(new Vector3(0, 180, 0)); } void Update() { time -= Time.deltaTime; if(time <= 0) { BallActive(); GameObject ball = GameObject.Instantiate(prefab, this.transform.position, Quaternion.identity) as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * 1000); time = 1.0f; } } void BallActive() { if(count < 2) count++; else count=0; this.transform.position = pointArray[count].position; } } |
要素0~2の中に、Point0~2を入れます。
プレハブのフィールドの中に、Sphereを入れます。
ゲームプレイしてみましょう。
3点間への移動をくり返しながら、こちらに向けてボールが飛んできます。