■弾丸の発射
「敵の遠隔攻撃①」で作成した弾丸をInstantiateすれば、あとは前回作成したスクリプトに従い自動的に直進してくれる。今回は腕を振り抜くタイミングに合わせて発射したいので、アニメーションイベントを使った。アニメーションイベントで呼び出す関数はpublicにしておく必要があるので注意。なお、モデルの指先に子オブジェクトを作り、弾丸はこのTransform.possitionから発射するようにした。この子オブジェクトは接近攻撃にも利用する。余談だが、このようにすることでモデルに剣などを持たせることが容易にできる。(参考)
今回使用したモーションはWarrior Pack Bundle 1 FREE。AssteStoreでDLしたアニメーションはReadOnlyになっていることがあり、この状態だとアニメーションイベントが保存できない。FBXに含まれているアニメーションはwindowsならcontrol+D, Macならcommand+DでReadOnlyが解除されたものを複製することができる。付属のFBXは不要なので、アニメーションだけ複製して他は削除してしまって良い。(>> 参考記事)
■スクリプト(敵の親オブジェクトにアタッチ)
- Vector3.Distanceでプレイヤーとの距離を取得し、一定距離以内なら遠隔攻撃のアニメーションを再生させるトリガーをONにする(これによりアニメーションが再生され、アニメーションイベントにより発射の関数が呼び出される)
- プレイヤーにレイを飛ばし、射線が確保できているときのみ攻撃
- 接近攻撃もして欲しいので、遠隔攻撃にはインターバルを設けた
0 件のコメント:
コメントを投稿