Unityに関連する記事です

 2回の手順に分けて、エフェクト機能の実装を進めていきます。
この手順では、BattleEffectManager クラスに登録したエフェクトのプレファブを利用して、任意のクラス内でエフェクトを生成する機能を実装します。


<実装動画 防衛拠点が攻撃されたときのエフェクト>
動画ファイルへのリンク


<実装動画 エネミーが破壊されたときのエフェクト>
動画ファイルへのリンク


<実装動画 エネミーに配置した味方キャラの攻撃がヒットしたときのエフェクト>
動画ファイルへのリンク


<実装動画 味方キャラが破壊されたときのエフェクト>
動画ファイルへのリンク


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

発展11 ーエフェクト機能の実装ー
16.BattleEffectManager スクリプトを利用してエフェクト機能を実装する



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

 ・シングルトンクラスを利用したエフェクトの集約方法
 ・ロジックを考えてエフェクト機能を実装する



16.BattleEffectManager スクリプトを利用してエフェクト機能を実装する

1.設計


 前回の手順で BattleEffectManager ゲームオブジェクトを作成し、そちらにエフェクト用のプレファブの情報をアサインして登録してあります。
これでゲーム内にエフェクトを生成するための準備が整いましたので、この手順では実際に、運用するための処理を実装していきます。

 教材としては、防衛拠点に対してエネミーが侵入した際のエフェクトの生成方法について記述していますが、残るエフェクトは自分で考えて挑戦していただくようにしています。

 まずは次の手順にて、シングルトンである BattleEffectManager クラスを利用した場合のエフェクト生成の処理を学習し、それを見ながら自分で処理を考えてみましょう。

 BattleEffectManager クラス内の GetEffect メソッドを実行することで、エフェクトのプレファブ情報が取得できます。
このメソッドを実行するには EffectType 型の情報が必要ですので、各クラス内で利用したいエフェクトの EffectType を指定することが大切です。

 もう一度、前回の手順に戻り、BattleEffectManager クラスの GetEffect メソッドを読み返しながら進めていくといいでしょう。
 

2.DefenseBase スクリプトを修正する


 それでは、BattleEffectManager クラスを利用した、エフェクトの生成処理について学習します。
実装例を提示しますので、どのように利用されているか、処理を読み解いてください。


DefenseBase.cs

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


 スクリプトを修正したらセーブを行います。


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


 防衛拠点にエネミーが侵入した際のエフェクトを実装しました。
1つのエフェクトを実装したら、それが正常に機能するかを確認するようにします。


<実装動画 防衛拠点が攻撃されたときのエフェクト>
動画ファイルへのリンク


 防衛拠点の位置でエフェクトが生成されるかをしっかりとチェックしておいてください。


4.ロジックを考えてエフェクト機能を実装する


 DefenseBase スクリプトでのエフェクトの生成命令を参考にして、味方キャラとエネミーのキャラにもエフェクトを実装してみてください

 配置する味方キャラとエネミーのキャラ用のエフェクトを BattleEffectManager ゲームオブジェクトにアサインしてあります。
エネミーについては、味方キャラから攻撃を受けた場合の処理と、破壊された場合のエフェクトとがあります。

 適宜なタイミングでこのエフェクトが再生されるように、前回の手順の EffectType の列挙子へのコメントも見ながら、ロジックを考えて実装に挑戦してみてください。

 なお、下記に実装例を提示しますが、こちらは実装に挑戦してから見るようにしてください
ご自分で実装ができたのであれば、この通りに修正する必要はありません。あくまでも実装例であることを念頭に置きましょう。


<実装例>



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


 複数のエフェクトを追加しているので、順番に1つずつ確認をしておいてください。
指定したタイミングでエフェクトが生成されるか、指定している場所にエフェクトが生成されるかをチェックしましょう。


<実装動画 エネミーが破壊されたときのエフェクト>
動画ファイルへのリンク


<実装動画 エネミーに配置した味方キャラの攻撃がヒットしたときのエフェクト>
動画ファイルへのリンク


<実装動画 味方キャラが破壊されたときのエフェクト>
動画ファイルへのリンク


 以上でエフェクトの実装は完成です。


6.<応用>BattleEffectManager スクリプトを修正して、任意のエフェクトを追加する


 この部分は任意の手順です。

 現在までに実装されている以外にもエフェクトを追加したい場合、BattleEffectManager スクリプトを修正し、
その後、エフェクトを実装したいスクリプトも修正して、任意のエフェクトを追加してみてください。

 設計方法としましては、どのような内容のエフェクトを、どの部分で実装したいかを考えて、それがどのスクリプトに実装されていれば機能するかを考えてみます。
その後、BattleEffectManager スクリプトにエフェクトのプレファブをアサインするための変数を追加して、それから、自分のイメージした部分に
エフェクトの機能を実装するいう手順が作りやすい手順です。

 プログラムのスタート地点とゴール地点を考えて、どのスクリプトから命令が始まって、どの部分までつながれば処理がつながるのかを考えてみましょう。



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

 次は 発展12 ーワールドマップの作成とポストプロセッシングの実装− です。

コメントをかく


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

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

Menu



技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

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

3D脱出ゲーム(抜粋)

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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