1秒おきに、XYZそれぞれの回転軸を変えて、ランダムでボールを発射します。
0~360°の範囲で、全方角にランダム回転するたびに、発射を繰り返します。
関連記事:
弾幕のように全方向へ発射するしくみ
プレーヤーの向いている方向に発射
前後左右へ順番にボール発射
弾が消えなければ次を撃てなくする
Instantiateでオブジェクトの角度を変える
発射元を1秒おきに回転
Cubeを作成します。
CubeRotate.csを作成し、Cubeに追加します。
CubeRotate.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 CubeRotate : MonoBehaviour { private float angle; private float time; public GameObject ball; void Start() { time = 1.0f; } void Update() { time -=Time.deltaTime; if(time <= 0.0f) { time = 1.0f; angle = Random.Range (0, 360); this.transform.Rotate(angle, angle, angle); Instantiate(ball,transform.position,transform.rotation); } } } |
ボールの発射
Sphereを作成し、リジッドボディを追加します。
BallMove.csを作成し、Sphereを追加します。
BallMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallMove : MonoBehaviour { private Rigidbody rb; private float speed; void Start() { rb = GetComponent<Rigidbody>(); speed = 10.0f; } void Update() { rb.velocity = transform.forward * speed; } } |
Sphereをプロジェクトビューにドラッグ&ドロップし、Prefabデータに変換します。
Sphereの元データは削除しておきましょう。
Cubeを選択し、Ballのフィールドに、Sphereのプレハブを入れます。
ゲームプレイしてみましょう。
1秒おきに全方向に向けて、ランダム発射しています。
関連記事:
弾幕のように全方向へ発射するしくみ
プレーヤーの向いている方向に発射
前後左右へ順番にボール発射
弾が消えなければ次を撃てなくする
Instantiateでオブジェクトの角度を変える