弾を発射する 1

記事作成 2019年6月
PlayMaker 1.9.0 / Unity 2018.2.6f1

操作キャラから弾丸を発射してみたい。操作キャラは 十字キーでキャラクターを操作する
のカプセルを使用します。もちろん自身で用意しても構いません。
しかし、絵面がだんだんシュールになってきましたね。

----------------------------------------------
----------------------------------------------
実際、色々なやり方があるでしょうが
ここでは、このように、自分で前方に向かって飛んでいく弾をプレハブ
にしておき、発射ボタンを押したときに、発射位置(銃口)に出現させる。
という方法を取ります。

----------------------------------------------
まず、弾の発射位置を用意します。
位置座標が取れればよいだけなので、空オブジェでもよいのですが、視覚的に
確認しやすくするため Sphere をサイズ調整して操作キャラの子オブジェとして置きます。


コライダは、チェックを外すか、削除してしまってください。
Mesh Render はチェックを外せば、はじめの動画のようにメッシュが非表示になります。

----------------------------------------------
弾の方ですが Sphere をサイズ調整して弾丸としています。
もちろん、モデルが用意できればそれを使用しても構いません。


弾には Rigidbody を付けます。

----------------------------------------------
弾となるオブジェクトへ、このように状態遷移を設定します。
はじめの状態で
[Add Force] を付け、オブジェクトに力を加えます。数値は適当に調整してください。
Space がセルフなら自分基準で、Zが前方、Yが上方になります。
その後 [Wait] で Time 3 存在してから

----------------------------------------------
[Destroy Self] で自分を削除します。
シーン上で再生してみて、2番めの動画のように、ポーンと飛んでいけばよいです。

----------------------------------------------
完成した弾を、Project のフォルダーに入れ、プレハブ化しておきます。

----------------------------------------------
空オブジェをつくり、弾発射を管理するための状態遷移を設定します。
はじめの状態の
[Get Button Down] で、Fire2ボタン(通常マウス右ボタン)が押されたことを感知します。

【この例の操作キャラが、Fire1ボタン(マウス左ボタン)で加速する設定になっているため
Fire2を使用しています。別のキャラならFire1でも良いです。】


ボタン押下を感知して、遷移した先で、弾を生成します。
[Create Object] で、先程作成したプレハブを、操作キャラの弾発射位置に生成します。


次の状態はアクション [Wait] のみで、 Time 0.5 待ちます。

----------------------------------------------
そして再生。ボタンを押す度に、弾が発射されます。これでよい場合もあるでしょう。
しかし、どうせなら、ボタンを押し続けたとき自動で弾が出続けるようにしたい。
とも思います。

----------------------------------------------
----------------------------------------------
@ ボタンを押し続けたとき、弾が発射し続けるようにしてみます。
はじめに、Bool変数 [B Fire2チェック] を作成します。


状態 「Wait」 の次に 「右ボタン押されたままか」を追加。

[Get Button] は、ボタンの状態をチェックします。
Fire2ボタンが押されていれば True 押されていなければ False が値として[B Fire2チェック]
に入ります。

[Bool Test] で値がTrue(押されたまま)なら「弾出現」へ遷移。
Falesなら、「マウス右ボタン押されたか」に遷移し、ボタンが押されるのを待ちます。


作成しているイベントです。

----------------------------------------------
 どうでしょう。ボタン押しっぱなしで連射できてるでしょうか。

カメラの動き の追尾カメラを設定してみました。


0 件のコメント:

コメントを投稿