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

CS016-4-unity ecs

【37】将系统转换为任务 Converting System to Job

【Unity6】使用DOTS制作RTS游戏|17小时完整版|CodeMonkey|【37】将系统转换为任务 Converting System to Job_哔哩哔哩_bilibili

a. 将普通的方法,转化成job。第一个是写一个partial struct xxx;第二个是继承IJobEntity接口;第三个编写Execute方法。第四个,是为在结构体上启用BurstCompile,使得这个job得到更快的执行。如下:

普通系统中的方法如下:它是将遍历所有ShootAttack组件,将其属性isTriggered置为false。

将其转为job如下:partial struct这是第一个注意点。然后继承IJobEntity接口。

然后再编写Execute方法,注意这个方法名是固定的,但是参数是不固定。还有一个注意点就是Job中,不能访问托管的数据,只能是值类型的数据。同时和系统中有所区别的是,Execute方法中的参数是ref或者in类型。

b. 特殊查询的方法改下成job,如下:这个方法对那些启用或者禁用的Selected都要操作。

改成Job之后,应该是这样:加上一个标签:IgnoreComponentEnabledState。表示忽略组件的开启或者禁用状态。

c. 执行job

new xxxJob(),然后调用ScheduleParallel()方法即可。

d. 在Job中不能使用SystemAPI,比如:这里使用SystemAPI的Exist方法和HasComponent方法。但是提示报错。

解决方法:使用ComponentLookUp 来代替SystemAPI.HasComponent。用EntityStorageInfoLookup代替SystemAPI.Exists方法。

相关文章:

  • MySQL高效开发规范
  • 基于SpringBoot的房屋租赁管理系统
  • C语言的9*9乘法表(两种思路,选择适合自己的。)
  • 使用 OpenCV 将图像中标记特定颜色区域
  • 根据台账批量制作个人表
  • idea运行
  • 时源芯微|EMC常用器件原理及选型
  • Mybatis-plus 条件构造器 Wrapper
  • ProfibusDP主站转modbusTCP网关接DP从站网关通讯案例
  • uni-app x正式支持鸿蒙原生应用开发
  • 【HTML5学习笔记1】html标签(上)
  • mac M芯片运行docker-desktop异常问题
  • Protobuf——Protocol Buffer详解(1)
  • 基于 Flink 的实时推荐系统:从协同过滤到多模态语义理解
  • 【Python CGI编程】
  • 网络安全基础第11-13集
  • 香橙派Zero3跨网络音乐服务系统搭建与内网穿透技术应用实践
  • GESP2025年3月认证C++二级( 第三部分编程题(1)等差矩阵)
  • 深入剖析Spring Boot参数校验:实现原理、自定义注解组件与国际化多语言实践
  • allure报告自定义logo和名称
  • 海外考古大家访谈|冈村秀典:礼制的形成与早期中国
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 美国务卿会见叙利亚外长,沙特等国表示将支持叙利亚重建
  • 国家统计局:2024年城镇单位就业人员工资平稳增长
  • 中国物流集团等10家央企11名领导人员职务任免
  • 跨越三十年友情,61岁余隆和60岁齐默尔曼在上海再度合作