ECS Entitas分析(一)___概括

Entitas概況

Entitas是使用C#語(yǔ)言開發(fā)的一個(gè)快速的輕量級(jí)的ECS框架,作為Unity的一個(gè)插件使用.在這里我們只分析Entitas的結(jié)構(gòu)以及代碼,并不會(huì)講解如何使用它。如果想了解如何使用可以看這里 。
Entitas大致可以分為以下6個(gè)模塊:Context,Entity,Component,System,Matcher,Group和Collector等,后面我們就通過分析這6個(gè)模塊的源代碼來了解Entitas。
首先我們看下面的圖了解以下Entitas的各個(gè)模塊的基本功能

Entitas概況

Entitas優(yōu)點(diǎn):

  1. 天然的低耦合,system和system之間互不干擾
  2. 天然的邏輯與表現(xiàn)分離,Component只包含數(shù)據(jù)
  3. 戰(zhàn)斗錄像與回放,數(shù)據(jù)回滾與預(yù)測(cè)方便,因?yàn)檫壿嫳憩F(xiàn)分離所以只需要操作純數(shù)據(jù)就好了。
  4. 訪問速度快,框架基本無消耗。Entitias內(nèi)部對(duì)Entity,Component以及Group做了大量的緩存。提高CPU的緩存命中
  5. 完善的代碼生成工具,提高開發(fā)效率??梢越oConponent添加各種Attributes,從而生成各種特殊的組件,如單例[Unique],事件[Event],主鍵[EntityIndex]

缺點(diǎn):

  1. Entitas是一個(gè)非常自閉的框架,所有的事情都只能在其內(nèi)部完成。
  2. 并不是游戲中的所有功能模塊都適合這個(gè)框架,如UI,行為樹,動(dòng)畫等
  3. 因?yàn)槭羌冞壿?,不是oop,所以會(huì)增大項(xiàng)目新人的上手難度。
  4. 項(xiàng)目文件數(shù)量會(huì)超級(jí)的多。

<下一篇>ECS Entitas分析(二)__Context

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

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