【Unity DOTS1.0】学习之路---基础课4-6笔记

ECS Componets类型可以划分为以下(按内存类型划分):
非托管Compnent和托管Compnent

非托管类型的Compnent存储blittable Types类型, 例如Bool,char,FixedString,FixedList.
托管Compnent:无法使用Job访问,也无法使用Burst编译,而且不会存储在chunk中,而是存储在大数组中,性能不如上者。

按照功能划分可以如下:
1.一般类型的Compnent:
2.Shared Compnent:消除实体之间的重复值,根据值的不同,将实体划分到不同的Chunk中,Shared components允许你的系统一起处理处理相似的entities。例如,Rendering.RenderMesh,定义在Hybrid.rendering包中的shared component,还包括mesh, material, receiveShadows等。

参考文章:Unity Entity Component System — Shared Component Data

3.Tag Compnent: 标识实体,方便Job查找。
4.Enableable Compnent:运行时方便禁用/启用实体上的单个组件。
5.Cleanup Compnent:错误状态下,防止销毁实体。
6.Singleton Compnent:一个World下唯一存在的SingletonCompnent。

按照访问类型划分

1.按Entity访问
2.按Chunk访问
3.按Element访问

按接口类型划分
在这里插入图片描述

==============================================================================================
System类别
ISystem:提供对非托管内存的访问。
SystemBase:用于访问存储托管数据。
在这里插入图片描述
补充知识:partial 关键字,可以将类或接口的声明分布在多个源文件中…

自定义System顺序调整(同一个Group下):
使用特性
[UpdateBefore]和[UpdateAfter]
如图:

在这里插入图片描述
指定System到特定的ComponentSysytemGroup下
使用特性:
[UpdateInGroup]

补充知识:
在这里插入图片描述

在这里插入图片描述

==============================================================================================

遍历查询Entity数据的5种查询方式
1.SystemAPI.Query+ForEach
2.IJobEntity
3.IJobChunk
4.Entities.ForEach
5.Manually

SystemAPI.Query七种重载类型
1.IAspect

参考链接:【Unity】Entities 1.0 学习(一):Aspect

2.IComponentData
3.IShareComponetData
4.DynamicBuffer
5.RefRO
6.RefRW

如果要对游戏实体添加Tag标签,传统的OOD或者OOP思想应该添加一个枚举类型和变量,通过分支语句去判断,但是这样不符合面向数据的编程思想,在DOTS中应该使用Tag Component组件(不占内存空间),来达到划分Tag的目的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值