こちらに向かって、ランダムの位置から、オブジェクトが飛んでくる仕組みをつくってみましょう。
Sphereオブジェクトが、指定したX座標、Y座標の範囲内にランダム出現し、移動していきます。
関連記事:
飛んできたボールをキャッチする
保持したボールをプレーヤーと同じ向きで発射
音ゲーのノーツみたいなオブジェクト動作
3つのポジションから順番にPrefab生成
敵キャラがランダム移動して発射
ターゲットに向かってオブジェクトをぶつける
3秒おきに出現と消滅をくり返す
1秒おきに向かってくるオブジェクト
Sphereを作成し、BallMove.csを追加します。
BallMove.csを記述します。
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 BallMove : MonoBehaviour { void Update() { transform.position += new Vector3(0, 0, -0.2f); if(transform.position.z <= -20) { Destroy(gameObject); } } } |
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブに変換します。
Sphereの元データは削除しておきます。
空のオブジェクトを作成。
RandomShot.csを作成し、GameObjectに追加します。
RandomShot.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class RandomShot : MonoBehaviour { public GameObject ball; private float time; private int vecX; private int vecY; void Start() { time = 1.0f; } void Update() { time -= Time.deltaTime; if(time <= 0.0f) { vecX = Random.Range(-3,3); vecY = Random.Range(-3,3); Instantiate(ball,new Vector3(vecX,vecY, 10),Quaternion.identity); time = 1.0f; } } } |
Ballのフィールドに、Sphereのプレハブを入れます。
ゲームプレイしてみましょう。
1秒おきに座標をランダムにしながら、ボールが手前に向かって飛んできます。
関連記事:
飛んできたボールをキャッチする
保持したボールをプレーヤーと同じ向きで発射
音ゲーのノーツみたいなオブジェクト動作
3つのポジションから順番にPrefab生成
敵キャラがランダム移動して発射
ターゲットに向かってオブジェクトをぶつける
3秒おきに出現と消滅をくり返す