決まった位置から、プレハブを発射できるスクリプトをつくってみましょう。
今回の例では、Y座標5、Z座標20のところから、手前に向かって1秒おきに発射される仕組みです。
プレハブが生成される座標を、あらかじめスクリプト内で指定します。
関連記事:
キーを長押しでn秒おきに発射
マウス長押しでn秒おきにミサイル連射
n秒おきに回転しながら前方へ発射
前後左右へ順番にボール発射
Updateの中でn秒おきにずっと実行する
Updateを使わずにn秒おきにずっと実行する
n秒おきに発射をくり返す
一度に複数のオブジェクトを発射
静止中のオブジェクトをクリックで飛ばす
3秒おきに出現して撃ってくる
1秒経てば0.5秒おきに実行する
決まった位置からPrefabを飛ばす
Sphereを作成し、リジッドボディを追加します。
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブ化します。
Sphereの元データは削除しておきましょう。
空のオブジェクトを作成します。
BallShot.csを作成し、GameObject(空のオブジェクト)に追加します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallShot : MonoBehaviour { public GameObject prefab; private float time; void Start() { time = 1; } void Update() { time -= Time.deltaTime; if (time < 0) { GameObject ball = GameObject.Instantiate(prefab,new Vector3(0, 5, 20),Quaternion.identity)as GameObject; ball.GetComponent<Rigidbody>().AddForce(transform.forward * -1000); time = 1; } } } |
Prefab生成のタイミングで、Y座標5、Z座標20を指定しています。
プレハブのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしてみましょう。
前方からこちらに向かってボールが飛んできます。
関連記事:
キーを長押しでn秒おきに発射
マウス長押しでn秒おきにミサイル連射
n秒おきに回転しながら前方へ発射
前後左右へ順番にボール発射
Updateの中でn秒おきにずっと実行する
Updateを使わずにn秒おきにずっと実行する
n秒おきに発射をくり返す
一度に複数のオブジェクトを発射
静止中のオブジェクトをクリックで飛ばす
3秒おきに出現して撃ってくる
1秒経てば0.5秒おきに実行する