Unity DOTS1.0 入门(1) ECS机制与概述

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,使用了“单指令多数据集”MMS
  • MMx指令集实质是一种SIMD数据处理方式(单指令流,多数据流)。由Intel公司开发,它允许CPU同时对2-4个甚至8个数据进行并行处理。内存拷贝时,可一次拷贝8个字节,内存拷贝性能会变得成倍的提升

相关推荐

  1. Unity DOTS1.0 入门(1) ECS机制概述

    2024-04-14 02:08:03       34 阅读
  2. 1.12 ECS

    2024-04-14 02:08:03       62 阅读
  3. 1、FreeCAD概述架构

    2024-04-14 02:08:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 02:08:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 02:08:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 02:08:03       82 阅读
  4. Python语言-面向对象

    2024-04-14 02:08:03       91 阅读

热门阅读

  1. 网络工程师练习题(13)

    2024-04-14 02:08:03       35 阅读
  2. Redis GEO实现附近的人功能

    2024-04-14 02:08:03       39 阅读
  3. MySQL基础练习题:习题31-End

    2024-04-14 02:08:03       28 阅读
  4. 服务器停用,备份服务文件。

    2024-04-14 02:08:03       25 阅读
  5. Gitea的简单介绍

    2024-04-14 02:08:03       38 阅读
  6. 训练trocr的tokenizer

    2024-04-14 02:08:03       30 阅读
  7. FFMPEG推流到RTMP服务器命令

    2024-04-14 02:08:03       41 阅读
  8. C#简单的矩阵类并实现基本的矩阵运算

    2024-04-14 02:08:03       39 阅读
  9. label 的作用是什么?如何使用?

    2024-04-14 02:08:03       34 阅读
  10. 正则表达式

    2024-04-14 02:08:03       30 阅读
  11. 使用MATLAB进行ARIMA模型预测的基本示例

    2024-04-14 02:08:03       37 阅读
  12. 【数据结构】图简介

    2024-04-14 02:08:03       37 阅读