泰州做网站公司,如何学编程入门教程,网站开发工程师是干什么的,盐城市建设工程网站ECS机制与概述
Entity:实体
由一个一个的Component组合在一起#xff0c;是连续的内存布局。通过EnitityManager来负责高效的分配和释放相关entity.
World:世界
一个entity的集合,在当前世界里面#xff0c;每个Entity都有唯一不同的entityld;运行时Unity会自动创建一个D…ECS机制与概述
Entity:实体
由一个一个的Component组合在一起是连续的内存布局。通过EnitityManager来负责高效的分配和释放相关entity.
World:世界
一个entity的集合,在当前世界里面每个Entity都有唯一不同的entityld;运行时Unity会自动创建一个Default World然后把所有需要迭代的system全部假如到这个World中
ArchType
几个Component组成的数据为一个ArchType这个决定了这些Component的内存排布由多少种Component的组合就有多少个ArchType
Chunk
16Kb 大小用来存放拥有同样的ArchType的Entities产生连续的内存布局
Component:组件数据简介下一节详解
一般用Struct可以定义为Class不包含任何逻辑或行为只是纯数据由EntityManager来添加或者删除
System:代码算法
可通过多线程处理数据通过components获得需要处理的数据World Update 会迭代System伪代码遍历wordl里面所有的System控制entityA移动; System.OnUpdate(ref TransformComponent, ref SpeedComponent, ref comp3){ 更新Transfrom 数据这样物体就移动了; }
Job System 多线程开发支持
使用线程池迭代System数据是使用组件数据。
EntityQurey
用来查询组件数据到ArchType管理的所有组件组合的内存块里面把某些类型的组件数据,拿回来放到一个连续的内存块里面然后给System使用。
Burst工具链
传统il2cpp 将.net转为cpp代码然后再编译运行Burst工具链 将.net代码LLVM 转为natvie code使用了“单指令多数据集”MMSMMx指令集实质是一种SIMD数据处理方式(单指令流多数据流)。由Intel公司开发它允许CPU同时对2-4个甚至8个数据进行并行处理。内存拷贝时可一次拷贝8个字节内存拷贝性能会变得成倍的提升