Entitas CookBook 翻譯 - 105_Collector 收集器

Collector 收集器

請先完成Group的章節(jié)再繼續(xù)以下的閱讀。

Collector是Group的一個觀察者類。下面就是一個MatchOne(entitas的一個示例)中創(chuàng)建Collector的示例。

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

在這個例子中,我們定義了一個Collector來收集所有刪除了有GameBoardElementComponent的Entity。在內(nèi)部,Collector將要求一組包含GameBoardElementComponent的Entity。因為我們對Removed事件感興趣,它會自行對group的事件進行訂閱,并保留從group中移除的entity的引用列表。我們有三個事件可以留意:

  • Added
  • Removed
  • AddedOrRemoved

同樣值得注意的是,但一個Entity由于被從group中移除而收集時,即使我們重新將GameBoardElement component加上去來讓它重新加回到group,它依然會在被removed集合收集。這就是為什么Reactive System中會有個Filter方法了(更多的請查看Reactive System章節(jié))。

Collector也是可以伴隨著group數(shù)組或是event數(shù)組創(chuàng)建,這意味著我們可以同時觀測多個group來保持一個對應變化的entites列表。

Collector可以被激活或是反激活,所以我們可以停止、恢復觀察group。我們也可以將遍歷收集到的entity,并且將他們?nèi)壳謇怼?/p>

Collector就是reactive system能量的源泉。你可能不會單獨使用這個,不過這個仍然是entitas非常重要一個成分。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容