我们有一个框架模型,里面有很多组件。几乎每个框架Update()
几乎每个组件的功能都由框架模型控制器调用(比如Unity3d,所有这些都发生在一个线程中)。我们有"Targets"
的组件可以更改某些属性(例如位置),并希望高举其他组件 - "Consumers"
(例如导弹)来解决这个问题。
如果我们使用普通的C#事件模型并从"Targets"
“提升”事件,我们将获得非常长的Update
电话。一个可以冻结我们所有基于框架的应用程序。所以我们不能像我们希望的那样真正使用C#事件。
我们做了什么:对于每个"Consumer"
组件,我们订阅了"Targets"
个事件,其中包含将所有新数据推送到列表中的操作,以及"Component"
更新调用,我们通过新列表迭代数据并进行更新。
所以我的问题是:有没有办法实现这种方法(比如我们不仅希望目标影响我们的导弹,而且"winds"
还有自己的输入数据(例如方向和温度))让代码看起来不错?
在帧模型中发送事件是否更正确?