Entitas CookBook 翻译 - 105_Collector 收集器

Collector 收集器

请先完成Group的章节再继续以下的阅读。

Collector是Group的一个观察者类。下面就是一个MatchOne(entitas的一个示例)中创建Collector的示例。

context.CreateCollector(GameMatcher.GameBoardElement.Removed());

在这个例子中,我们定义了一个Collector来收集所有删除了有GameBoardElementComponent的Entity。在内部,Collector将要求一组包含GameBoardElementComponent的Entity。因为我们对Removed事件感兴趣,它会自行对group的事件进行订阅,并保留从group中移除的entity的引用列表。我们有三个事件可以留意:

  • Added
  • Removed
  • AddedOrRemoved

同样值得注意的是,但一个Entity由于被从group中移除而收集时,即使我们重新将GameBoardElement component加上去来让它重新加回到group,它依然会在被removed集合收集。这就是为什么Reactive System中会有个Filter方法了(更多的请查看Reactive System章节)。

Collector也是可以伴随着group数组或是event数组创建,这意味着我们可以同时观测多个group来保持一个对应变化的entites列表。

Collector可以被激活或是反激活,所以我们可以停止、恢复观察group。我们也可以将遍历收集到的entity,并且将他们全部清理。

Collector就是reactive system能量的源泉。你可能不会单独使用这个,不过这个仍然是entitas非常重要一个成分。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容