Unityに関連する記事です

 エネミーのバレットにも、プレイヤーと同じように、BulletData に登録した情報を利用して、ダメージや速度、属性などを設定する制御を実装します。


<実装動画 .痢璽泪襦Ε┘優漾爾離丱譽奪函B粟情報があるので、プレイヤーの選択しているバレットの種類によって属性間の相性が反映される>
動画ファイルへのリンク


<実装動画◆.椒垢離丱譽奪函2菫だけではなく、ダメージも固定値ではなく、BulletData の値を参照している>
動画ファイルへのリンク


 以下の内容で順番に実装を進めていきます。

発展37 −エネミーのバレット処理の修正−
74.BulletDataSO スクリプタブル・オブジェクトを修正し、エネミー用のバレットのデータを追加する
75.EnemyContorlller スクリプトと、 BulletSelectManager スクリプトと、EnemyGenerator スクリプトを修正し、エネミーの発射するバレットにも BulletData の情報を利用できるようにする



 新しい学習内容は、以下の通りです。

 ・BulletData の情報をどのようにすれば利用できるようになるか、ロジックを考える



74.BulletDataSO スクリプタブル・オブジェクトを修正し、エネミー用のバレットのデータを追加する

1.設計


 BulletDataSO スクリプタブル・オブジェクトは、プレイヤーの扱えるバレットのデータだけではなく、
エネミーのバレットのデータも一緒に登録しておくことを前提に作成されています。

 バレットのゲームオブジェクトのプレファブには、プレイヤーもエネミーも Bullet スクリプトを共有していることからも
BulletData も共有して利用することをふまえて設計されていることがうかがえます。



 この手順ではエネミーの発射するバレットを復活させて、そのバレットの情報も、プレイヤーと同じように
バレットの固定値ではなく、エネミーごとに設定されているバレットの情報に紐づいて、それぞれの異なるバレットを発射できるように修正を加えます。

 現在エネミーでバレットを発射する種類は2種類ですので、これらにそれぞれ専用のバレットのデータを用意して、
そのデータを利用できるようにロジックを作り変えます。 


2.BulletDataSO スクリプタブル・オブジェクトにエネミー用のバレットのデータを追加する


 Datas フォルダ内にある BulletDataSO スクリプタブル・オブジェクトを選択し、
インスペクターの BulletDataList 変数の Size を 4 から 6 に変更してください。

 Element4 と Element5 が追加されます。順番はどちらでも構いませんので、
ボス用のバレットと、ノーマルエネミー用のバレットのデータを登録しましょう。
下記のインスペクターを参考していただいても構いません。
エネミー本体の属性情報と異なる属性情報を設定しておくと、プレイヤーはより考える部分が多くなります。
そうすることにより、エネミー本体の属性だけではなく、バレットの属性にも目を向ける必要が生まれるためです。

 なお、エネミーの発射するバレットの情報は、EnemyData 内にある BulletType によって決定します。
そのため、BulletData の BulletType と合わせておく必要があります。


BulletDataSO スクリプタブル・オブジェクト インスペクター画像



EnemyDataSO スクリプタブル・オブジェクト インスペクター画像(各 BulletType を確認する)



バレット画像例 .椒考僉ヾ



バレット画像例◆.┘優漾射僉)子



 以上で設定は完了です。


75.EnemyContorlller スクリプトと、 BulletSelectManager スクリプトと、EnemyGenerator スクリプトを修正し、エネミーの発射するバレットにも BulletData の情報を利用できるようにする

1.設計


 ロジックとして設計したい内容は次の通りです。

・エネミーの発射するバレットの情報を固定値ではなく、BulletData に登録した情報を利用できるようにする
 

 この処理を実行するためにはどのような設計を考えてロジックを組んでいけばよいか、自分で実装するまでの手順を考えてみてください。



2.実装に挑戦する

 ゲームを製作するにあたり、プログラムを書くのは一番最後です。
まずはどのような仕様にするかを設定し、その後、それを実装するための設計を考えて
必要なロジックを組み込んで制御を行っていきます。

 どのスクリプトにどのような情報が必要なのか、今までに学習してきたことを復習しながらロジックを組んでみてください。
目的とする実装のゴール地点、スタート地点を設定してから、途中の処理を作っていきましょう。


<実装例>

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



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

 ロジックの流れを確認して、ゲームを実行し、処理の制御を確認してください。
バレットに属性の情報が反映されていれば、プレイヤーのバレットの種類との相性判定により、弱点となる制御が実装されます。


<実装動画 .痢璽泪襦Ε┘優漾爾離丱譽奪函B粟情報があるので、プレイヤーの選択しているバレットの種類によって属性間の相性が反映される>
動画ファイルへのリンク


<実装動画◆.椒垢離丱譽奪函2菫だけではなく、ダメージも固定値ではなく、BulletData の値を参照している>
動画ファイルへのリンク


 以上でこの手順は終了です。

 次は 発展38 −BGMの準備− です。

コメントをかく


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

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

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3D脱出ゲーム(抜粋)

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

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

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

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

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

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

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

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

private



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

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