最初、弾のプレハブを読み出すときの Instantiate で、Quaternion が角度を指定するものだと知らなかったので、↓みたいなプログラムを組んだ。
自機狙い弾
- 発射元と(GameObject.Find で取得した)自機の位置から角度を出す
- 角度から自機に向けて飛ばす弾の translate値 x、y を出す
- 弾のプレハブを読み出す
- 弾のスクリプトで発射元で出したtranslate値を読み込む
- 弾のtranslate に値を入れる
これでも自機に向かって弾は飛んだけど、弾が発射元のスクリプトにアクセスするのであまり汎用性がなかった。
ほかのスクリプトにコピペすると弾の発射元を変える必要があり、そのため変える毎に新しいプレハブを作らないといけなくなった。
なので、調べてみたら Quaternion.Euler が角度を指定するものだとわかったので、作り変えることができた。
自機狙い弾改良版
- 発射元と自機の位置から角度を出す
- 弾のプレハブを角度を変えて読み出す
- 弾のスクリプトで自分の角度から translate値 x、y を出す
- 弾の translate に値を入れる
これで弾のプレハブ単体で飛ばせることができた。
PR