Unity Entity Component System --- Chunk Components

Chunk component data

可以使用chunk components将特定的chunk(内的entities)和data关联起来。

Chunk components包含的数据,将应用到指定chunk中的所有entities上。例如,如果有一些表示3D对象的entities(它们在一个或者及个chunk里),你可以将它们的bounding box,存储到一个chunk component里。

接口:IComponentData

Chunk components是chunk内的entities的archetype原型的一部分。所以当向一个entity添加,或者删除chunk component时,该entity会被移动到其它的chunk,因为它的archetype改变了。当然,该改变不会作用到该chunk的其它entity上。

如果在访问entity时改变了chunk component的值,那么,该改变将应用到该entity chunk上的所有的entities(其实是因为chunk component data是共享的)。如果为一个entity添加了一个chunk component改变了它的archetype,导致该entity被移动到一个已有的chunk中,不会改变新的chunk中的chunk component data的值。如果entity是被移动到了一个新创建的chunk总,则该新chunk中的chunk component data 保留第一个entity的值。

使用ComponentData 和Chunk Component Data之间,主要的区别,是添加,设置,移除时调用的接口不同。Chunk component也由相应的ComponentType函数,用来定义entity archetype和queries。

相关的APIs:

PurposeFunction
DeclarationIComponentData
ArchetypeChunk methods
ReadGetChunkComponentData(ArchetypeChunkComponentType)
CheckHasChunkComponent(ArchetypeChunkComponentType)
WriteSetChunkComponentData(ArchetypeChunkComponentType, T)
EntityManager methods
CreateAddChunkComponentData(Entity)
CreateAddChunkComponentData(EntityQuery, T)
CreateAddComponents(Entity,ComponentTypes)
Get type infoGetArchetypeChunkComponentType(Boolean)
ReadGetChunkComponentData(ArchetypeChunk)
ReadGetChunkComponentData(Entity)
CheckHasChunkComponent(Entity)
DeleteRemoveChunkComponent(Entity)
DeleteRemoveChunkComponentData(EntityQuery)
WriteEntityManager.SetChunkComponentData(ArchetypeChunk, T)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值