Unityで弾幕ゲームを制作しています。
自機を狙いながら1秒おきにミサイルを発射するという処理を作ったのですが、実際に動かしてみると画像1のようにミサイルプレハブの子オブジェクトだけが発射されていません。ちなみにプレハブは画像2のようになっています。
スクリプトはこのようなものです
C#
1public class CannonShot : MonoBehaviour 2{ 3 public GameObject player; 4 public GameObject ball; 5 public float ballSpeed = 10.0f; 6 7 void Start() 8 { 9 transform.LookAt(player.transform); 10 player = GameObject.Find("Player"); 11 StartCoroutine("BallShot"); 12 13 } 14 15 void Update() 16 { 17 transform.LookAt(player.transform); 18 19 } 20 21 IEnumerator BallShot() 22 { 23 while (true) 24 { 25 var shot = Instantiate(ball, transform.position, transform.rotation); 26 shot.GetComponent<Rigidbody>().velocity = transform.forward.normalized * ballSpeed; 27 yield return new WaitForSeconds(1.0f); 28 } 29 } 30}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/20 00:53