Unityに関連する記事です

 2Dトップビューゲーム(ファミコン版ゼルダの伝説、聖剣伝説、ヴァンパイアサバイバーなど)での実装例です。

 一定時間ごとに弾を生成し、プレイヤーの進行方向に向けて弾を発射する機能を作成します。

 今回の実装では弾側ではなく、相手側で当たり判定を作成する前提で設計しています。
例えば、敵や障害物用のクラスに当たり判定用のメソッド(OnTriggerEnter2D や OnCollisionEnter2D)を用意する設計です。



PlayerController


 事前の準備としてプレイヤーの制御クラスを作成しておきます。
こちらはサンプルですので、自分のプロジェクトに応じて利用してください。

 プレイヤーの進行方向の情報が取得できるようになっていれば問題ありません。


PlayerController.cs

<= クリックすると開きます




Bullet

 弾のプレハブにアタッチする制御クラスです。
プレイヤーの進行方向の情報をメソッドの引数で受け取り、その情報を利用することで弾の進行方向をプレイヤーの進行方向と同期させます。


Bullet.cs

<= クリックすると開きます


 弾のプレハブは事前に制作しておきましょう。
Rigidbody2D コンポーネントと 2D 用のコライダー(形状は画像に応じて変える)をアタッチしておいてください。

 下記はサンプルです。




BulletGenerator


 一定時間おきに弾を生成するジェネレータークラスを作成します。


BulletGenerator.cs

<= クリックすると開きます


 ヒエラルキーに Create Empty で新しいゲームオブジェクトを作成し、アタッチして利用してください。


インスペクター画像



ゲームを実行して動作確認する


 ゲームを実行し、一定時間おきに弾が生成されることを確認してください。
また、弾が発射させる方向がプレイヤーの進行方向と同期していることも確認してください。


<弾の弾先をプレイヤーの進行方向に合わせるケース>


 弾が丸状でなく、例えば弾先があるもの、矢じりがあるものなどの場合には、弾の進行方向だけではなく、
弾の弾先もプレイヤーの進行方向に合わせる必要があります。


サンプルアセット
Warped Shooting Fx





 そういったケースに対応した Bullet クラスのソースコードを提示します。


Bullet.cs

<= クリックすると開きます



インスペクター画像

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます