Unityに関連する記事です

 イベント処理用の子クラスについてまとめます。



GetGenerator クラスのシングルトン化


 御朱印用のイベントを作成にあたり、GetGenerator クラスを修正します。
いずれのゲームオブジェクトからでも御朱印の獲得演出イベントにアクセスできるように、シングルトンクラスの機能を持たせます。

 このようにすることにより、いくつかの変数が削除できますので、外部クラスとの依存関係が解消出来、
外部からクラスから独立(自立)して責務を果たせるようになります。


GetGenerator.cs

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


 スクリプトを修正したらセーブします。
どの部分を改良したのか確認しておくようにし、処理への理解を深めてください。


新しいイベント用の子クラスの作成


 分岐処理内で作成していたイベント処理を、子クラスにしてイベント化します。


1.御朱印用のオブジェクトの獲得イベント用(シーンでオブジェクトから取得するイベント)


 シーン内に設置されている御朱印を獲得した際のイベントです。

 イベントの中で取得する方法ではなく、オブジェクトとして取得するタイプのイベント用のクラスです。


GameEventGoshuinBox.cs

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



2.御朱印の取得イベント用


 オブジェクト以外からの御朱印の取得イベント用です。
会話イベントなどと組み合わて使うことを想定しています。

 ここからはコメントの補記を省略しています。
いままでの子クラス内部の処理を見直し、自分でコメントを補記してみてください。


GameEventGetGoshuin.cs

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



3.自動移動イベント用


 オブジェクトの自動移動イベント用のクラスです。
単独でもよいですし、他のイベントと組わ合わせても利用できます。

 DOTween はコルーチン内部で実行する場合、yield return 付で命令することが出来ます。
その場合、WaitForCompletion() メソッドをチェーンすることで待機処理として実行されます。


GameEventAutoMove.cs

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



4.オブジェクトの自動生成イベント用


 オブジェクトの自動生成イベント用のクラスです。

 今回は NonPlayerCharacter 型で生成していますが、これも抽象化を利用すれば他のゲームオブジェクトも生成対象に出来ます。


GameEventGenerateChara.cs

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



イベントの作成方法


 こちらは前回までと同じです。

 GameEventHandler クラスをイベントを発火させたいゲームオブジェクトにアタッチし、
合わせて、そのゲームオブジェクトに実際に発火するイベントのクラスをアタッチします。

 アタッチする順番は順不同です。アサインの順番だけイベント順に並べてください。


御朱印の場合



Scene ビュー画像



インスペクター画像



会話+御朱印+移動など複数のイベントの組み合わせの場合




Scene ビュー画像



インスペクター画像



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


 作成したイベントをまとめて試す前に、まずは、1つずつのイベントが正常に実行されるか確認してください。
いきなりまとめて試してしまうと、万が一バグが発生した場合、どの部分に問題があるのか分からないためです。

 こういった機能をまとめて試す前に、1つずつイベントが動作することを確認してから
複数のイベントが実行されることを確認していくことが鉄則です。



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

 次以降の手順は非同期処理の追加学習です。
コルーチンではなくて async / await という非同期用の機能と、それを助けるアセットである UniTask を利用して
コルーチンで作成した待機処理を、別の形での非同期処理にして実装を行います。

 次の手順は 処理の抽象化による実装例 です。

コメントをかく


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

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

Menu



技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

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

3D脱出ゲーム(抜粋)

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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