UnityDots1.0解析之Archetype
当前使用dots版本号为1.0.14。
Entity是一个8bit的id号。单纯就是一个编号。
Component用来保存数据。托管型、非托管型等等一大堆,后面有机会专门写文章解析。
不同类型不同数量的Component组成不同的Archetype,每种组合构成一个唯一的Archetype。例如组件A,B组成原型A;组件A,C组成原型B。
由Archetype可以计算出具体的内存分配,被称为Chunk的块,每一个Chunk固定16kbit。下图举例示意了Chunk的具体结构:

新增的Entity会加到Chunk末尾。
当一个Chunk被塞满就会开一个新的16k的Chunk。
当删除Chunk中的某一个Entity时,会自动将该Chunk最后一个Entity填充到被删除的位置。
当Chunk中最后一个Entity被删除后,整个Chunk会被删除。
当Entity的Component发生改变时,会将Entity转移到对应的Archetype Chunk中。
以上这些行为会造成性能开销,被称为Structural change。

