以下文档均来源于ECS官网:
https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html
SystemStateComponents
设计SystemStateComponentData 这个数据组件的目的,是允许您跟踪系统内部的资源,并有机会根据需要适当地创建和销毁这些资源,而不依赖于某个额外的调用。
SystemStateComponentData 和SystemStateSharedComponentData 之间的区别,与ComponentData 和SharedComponentData之间的区别完全相同,除了一个重要方面:
当实体被销毁时,SystemStateComponentData不会被立刻销毁。
销毁实体的意思是:
- 查找引用此实体ID的所有组件
- 删除这些组件
- 回收实体ID以供重新使用。
然而,与实体ID关联的组件中,如果存在SystemStateComponentData,则不会立刻将此实体删除。这将使得系统(System)有机会来删除与实体ID相关联的资源或状态。只有在删除所有SystemStateComponentData后,此实体ID才会得到重用。
动机
- 系统可能需要持有一个基于ComponentData的内部状态。例如,需要在此组件中分配资源。

本文档介绍了Unity ECS框架中的SystemStateComponents,包括SystemStateComponent和SystemStateSharedComponent,用于跟踪系统内部资源并在组件添加、删除或实体销毁时管理资源生命周期。SystemStateComponent用于检测组件状态变化,确保在实体被销毁前系统有机会清理内部状态。SystemStateSharedComponent则提供一种共享组件状态的方法,对于其他系统通常是只读的。
最低0.47元/天 解锁文章
1985

被折叠的 条评论
为什么被折叠?



