【发布时间】:2012-08-16 23:00:51
【问题描述】:
我们有一个框架模型和其中的许多组件。在几乎每个框架上,几乎每个组件的 Update() 函数都由框架模型控制器调用(比如 Unity3d 和所有发生的事情,都发生在一个线程中)。我们有 "Targets" 的组件,它们改变了其中的一些属性(例如位置)并希望提高其他组件 - "Consumers"(例如导弹)关于这个事实。
如果我们使用普通的 C# 事件模型和来自 "Targets" 的“引发”事件,我们将得到非常长的 Update 调用。一个可以冻结我们所有基于框架的应用程序。所以我们不能像我们想要的那样真正使用 C# 事件。
我们做了什么:对于每个"Consumer" 组件,我们订阅"Targets" 事件,其操作将所有新数据推送到列表中,在"Component" 更新调用上,我们遍历新数据列表并进行更新。
所以我的问题是:有没有一种方法可以概括这种方法(例如,如果我们不仅希望目标影响我们的导弹,而且还希望 "winds" 有自己的传入数据(例如方向和温度))来编写代码好看吗?
在框架模型中发送事件有更正确的方法吗?
【问题讨论】: