フレームモデルとその中にたくさんのコンポーネントがあります。ほぼ各フレームUpdate()
で、ほぼ各コンポーネントの関数がフレーム モデル コントローラーによって呼び出されます (たとえば、Unity3d など、発生するすべての処理は 1 つのスレッドで行われます)。一部のプロパティ (位置など) を変更するコンポーネントがあり、その事実について他のコンポーネント (ミサイルなど)"Targets"
を高くしたいと考えています。"Consumers"
通常の C# イベント モデルを使用してイベントを「発生させる」"Targets"
と、非常に長いUpdate
呼び出しが発生します。すべてのフレーム ベースのアプリをフリーズできるもの。そのため、C# イベントを思うように使用することはできません。
何をしたか: コンポーネントごとに、すべての新しいデータを List にプッシュするアクションでイベント"Consumer"
をサブスクライブし、 Update 呼び出しで新しいデータのリストを反復処理して更新します。"Targets"
"Component"
したがって、私の質問は次のとおりです。そのようなアプローチを一般化する方法はありますか (たとえば、ターゲットがミサイルに影響を与えるだけでなく、"winds"
独自の着信データ (方向や温度など) も使用する場合など)、コードを見栄えよくする方法はありますか?
フレームモデルでイベントを送信するより正しい方法はありますか?