欢迎光临散文网 会员登陆 & 注册

UnityDots1.0解析之Archetype

2023-08-24 17:12 作者:vicozan  | 我要投稿

当前使用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。


UnityDots1.0解析之Archetype的评论 (共 条)

分享到微博请遵守国家法律