Unityで弾丸を生成

移動、旋回ができるようになったところで今度は弾を発射したい。
弾を発射させるためには、弾丸のオブジェクトをゲーム中に生成しなくてはならない。
オブジェクトの生成はチュートリアルになかった内容なのでちょっと調べる。

こちらの記事を参考にしました

PrefabとInstantiateの基本(2)効率的にBlockを並べる:「はじめてのUnity」のブロック崩しを改造しながら学ぶ

とにかく生成したいオブジェクトをPrefabとして登録しておき、
Instance関数の引数にPrefabを設定してやることで生成できるそうな。
Purefabの登録はチュートリアルでやったな。

というわけでテキトーにBulletオブジェクトをPrefabに登録し、
Bulletオブジェクトを生成するWeaponスクリプトを作成。

ただ出現させるだけでは銃口の位置や向きが考慮されず生成されるため、
それらを考慮する処理をてから生成。
弾を90度回転させているのは、弾のモデルの向きが縦向きなので、横向きに直しているため。

このままでは弾は生成されるも飛んでいかない為、弾に生成された瞬間に飛んでく力が加わるようにBulletスクリプトを作成。

そんなこんなでこうなりました

ええかんじ
イカしたウィンナー発射装置ってかんじ。

今は最初に力を加え、後はRigidbodyの演算に任せているが。
いずれは有効射程距離までは等速直線運動を行い、
その後失速、重力による落下をするようにしていきたい。

まぁ、多分有効射程距離まで重力なし、抵抗なしにして、
越えたら重力あり、抵抗ありにすればいいよね。

また、ミサイルを実装するならロックオンした敵の位置情報のポインターを弾に渡したいところ。生成したオブジェクトに関数を介して値を渡す方法を調べなくちゃね。

コメント

タイトルとURLをコピーしました