Entities - Components 类型

1、按内存类型划分

  • 非托管Component

用来存储常见的数据类型,比如:

  • Blittable types
  • bool
  • char
  • BlobAssetReference<T>(a reference to a Blob data structure)
  • Collections.FixedString(a fixed-sized character buffer)
  • Collections.FixedList
  • Fixed array (only allowed in an unsafe context)
  • Other structs that conform to these same restrictions
  • 托管 Component

可以存储任何数据类型,但无法使用 Jobs 进行访问,也无法使用 Burst 进行编译,并且声明的 ComponentData 对象必须是无参数的构造函数,当使用其他托管类型数据类型时(比如在 ComponentData 中包含另一个类),还需要添加 IDisposable, ICloneable 的属性功能,同时还要进行 gc 的垃圾回收

需要注意的是,托管类型的组件不会在 chunk 中进行存储,而是存储在其所属 world 中的一个大数组中,只存储这个托管组件的索引,所以当查找 entity 的托管类型组件时,需要额外处理索引查找的工作,所以与非托管组件类型相比,非托管类型组件的查找并不高效

2、按功能类型划分

  • 一般的 Component
  • Shadred Component:用于消除实体间相同值
  • Tag Component:用于标注 Entity 方便查找
  • Enableable Component:用于方便禁用 / 启用实体上的组件
  • Cleanup Co
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值