現在UnityとC#を使ってRPGゲームを制作中です。が、RPGゲームにおけるイベントの処理のフローがいまいち理解できていません。
https://www.slideshare.net/KojiMorikawa/rpg-55680080
現在こちらのスライドを参考にイベントの処理を勉強しています。
31ページ以降の「イベント駆動の流れ」に関して、NPCに話しかけた場合の会話をする処理の実装はわかったのですがこれだと紐づいている「話しかけた村人」「主人公」くらいしか引数としてはフィールドシステムおよびイベントシステムには渡せませんよね?
「他の人もこちらを向かせる」や「宝箱が開く」などのアクションもこの会話の一連の中で仕込みたい場合はどうすればよいのでしょうか?
自分としては以下のパターンが考えられました。
・イベントシステムにあらかじめすべてのイベントの際に扱われるシーン上のオブジェクトの参照を格納しておく。
・話しかける村人の中にそのイベントで使うオブジェクトの情報を格納しておき、話しかける際それらをまとめて渡す。
前者だとどのタイミングでイベントシステムにすべてのオブジェクトの参照を渡すかがわかりません。ただこの場合はイベントシステムはシングルトンで実装しておいた方が良いような気はします。
後者のパターンだと「すべてのオブジェクトの情報を渡す」クラスまたは構造体をどこで定義するのかが気になります。イベントシステム全体で共通で使用するならばおそらくイベントシステム内ですが、中身(変数の種類や数)はイベントによって大きく変わるのでどう定義するかがイメージできません。
分からないことだらけですが、どなたか教えていただけると幸いです。
あなたの回答
tips
プレビュー