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

Unity DOTS System与SystemGroup概述

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

对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!

System是迭代计算与处理World中的Entity实体的Component Data数据的逻辑代码。System对应的代码是运行在main thread上的。World里面所有的System通过SystemGroup来进行管理, 通过SystemGroup, 来决定了每个System的迭代顺序。

System分为托管对象与非托管对象两种模式, 定义托管对象System的时候,定义一个class, 继承自SystemBase, 定义非托管对象的时候,定义struct 继承自ISystem。

System有三个常用的接口,可以供用户重写,接口包含如下:

每个System只能迭代它所在的World中的Entity, 每个System在创建的时候会有一个数据成员World指向它所在的World,我们可以通过system实例.World来获取。

Unity运行的时候,默认会创建一个World, 并创建默认的SystemGroup,它们分别是:

同时会扫描当前所有的System类,为每个System类创建一个实例放到SystemGroup中,运行后该System就会被迭代计算到。默认创建的System,如果你没有指定分组,默认会创建到SimulationSystemGroup分组中,如果System需要创建到特定的分组,可以通过属性装饰器[UpdateInGroup]。

如果不想要系统默认创建,可以定义宏关闭掉:

UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP

System有以下的一些类型,可以供开发者使用,类型如下:

SystemBase: 基于托管类的System;

ISystem: 基于非托管类的System;

EntityComponentBufferSystem: 为其它的System提供entity 命令缓冲区;

ComponentSystemGroup: 嵌套System的层级关系与Update的顺序;

每个SystemGroup可以包含System与子SystemGroup,可以通过重写SystemGroup的update来决定System的迭代顺序。可以通过System Window来查看当前系统的所有System与层级关系,如下图所示:

今天分分享到这里,关注我们,学习更多的最新Unity DOTS 进阶与实战相关的知识.

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

相关文章:

  • IDEA使用内置database数据库连接mysql报错:javax.net.ssl.SSLHandshakeException
  • 从Flink的Kafka消费者看算子联合列表状态的使用
  • CSS3 按钮
  • STM32 BootLoader设置
  • django REST framework-使用与不使用的区别?
  • 获取URL中的参数
  • 一起学数据结构(9)——二叉树的链式存储及相关功能实现
  • vue 后端返回二进制流-前端通过blob对象下载文件-图片
  • vue el-dialog封装成子组件(组件化)
  • 爬虫教程 一 requests包的使用
  • Aria2NG连接aria2-pro提示认证失败的处理办法
  • MYSQL 连接
  • SeaTunnel 换maven源,解决插件下载慢
  • 安卓14通过“冻结”缓存应用程序腾出CPU,提高性能和内存效率
  • jupyter崩溃OOM,out of memory,jupyter代码写不进去,保存不了。
  • 一文带你快速掌握爬虫开发中的一些高级调试技巧
  • 6.(vue3.x+vite)路由传参query与params区别
  • C++string的使用
  • 闲着也是闲着,自己写歌东西玩一玩,碰碰脑子,简单快乐一点,双人出数的小游戏,后续还带补充
  • 牛客网 -- WY28 跳石板
  • [正式学习java③]——字符串在内存中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。
  • 行情分析——加密货币市场大盘走势(10.18)
  • 高并发场景下常见的限流算法及方案介绍
  • 虹科分享 | 选择SAS还是NVMe?虹科网络基础带您一探究竟!
  • 在ERP管理系统中,库存管理的基本流程是什么?
  • Ruby 之 csv 文件读写
  • Android AMS——进程LRU列表更新(十七)
  • 【数据可视化】—大屏数据可视化展示
  • 计算机算法分析与设计(12)---贪心算法(最优装载问题和哈夫曼编码问题)
  • 打造属于自己的vue图标库