当前位置: 首页 > news >正文

Unity DOTS World Entity ArchType Component EntityManager System概述

最近DOTS终于发布了正式的版本, 我们来分享以下DOTS里面地几个关键概念,方便大家上手学习掌握Unity DOTS开发。

Unity DOTS 中所有的Entities 都是被放到World世界中。每个Entity在它所在的World里面有唯一不同的ID号来区分。DOTS项目中可以同时有多个World。每个World有一个EntityManager,负责创建,销毁,修改它所在世界里面的entity。每个World,包含了自己的所有的Systems, 并负责System的迭代计算。World中的Entity是一个容器,管理者它对应的Component。Entity中的所拥有的各种Component,被组合成了一种类型叫ArchType, 具有相同组件组合的Entity属于同一种ArchType类型。DOTS 基于ArchType来给Entity中的组件数据来分配内存。分配的时候,首先会分配16K大小的Trunk, 然后每种ArchType会对应一个size,一个Trunk只会分配同一种类型的ArchType,这样可以更高效的做好内存释放与分配。运行的时候,Unity会创建一个默认的世界出来,并把每个system加入到这个默认的世界,如果你想要添加一个system,在运行的时候就加入到默认的World里面,你只要实现IcustomBootstarp接口。如果你不要创建默认的时间,可以加以下的宏来关闭相关:

#UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP_RUNTIME_WORLD:

关掉启动时候创建默认运行的World对象;

#UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP_EDITOR_WORLD

关掉编辑器模式下默认创建的World对象;

#UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP

关闭掉编辑器模式/运行模式下的默认的World的创建;

综上所述,我们把DOTS 中ECS的几个关键概念与关联做成一个脑图图片,方便大家记忆与理解,如下图所示:

http://www.lryc.cn/news/197634.html

相关文章:

  • 最详细STM32,cubeMX 点亮 led
  • 论文阅读:Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data
  • 前端版本控制工具,常见的Git 和SVN
  • C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)
  • 阿里内推强推的并发编程学习笔记,原理+实战+面试题,面面俱到!
  • 域名注册查询流程
  • 【Linux学习笔记】代码编辑工具vim
  • Android Boring SSL
  • 中国人民大学与加拿大女王大学金融硕士项目:开启你的金融精英之路
  • HashSet编程小案例,控制生日和姓名。重写HashCode
  • 虚幻阴影整理
  • MySQL数据库(一)
  • C++11 新特性
  • 排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案
  • 软考高级系统架构设计师系列之:数学与经济管理
  • 基于Scrapyd与Gerapy部署scrapy爬虫方案【可用于分布式爬虫部署】
  • ST-SSL:基于自监督学习的交通流预测模型
  • 如何处理C++中的字符串编码和国际化?
  • DH48WK 温控器参数设置
  • 【文档智能】多模态预训练模型及相关数据集汇总
  • 超全整理,性能测试——数据库索引问题定位+分析(详细)
  • 44springboot摄影跟拍预定管理系统
  • Flink之窗口触发机制及自定义Trigger的使用
  • 蓝牙资讯|2024年智能家居新趋势,蓝牙助力智能家居发展
  • 机器学习 | Python实现GA-XGBoost遗传算法优化极限梯度提升树特征分类模型调参
  • 手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集
  • 服务日志性能调优,由log引出的巨坑
  • 【VR】【Unity】如何调整Quest2的隐藏系统时间日期
  • C++之设计模式
  • Django ORM查询