h5商城网站是什么,wordpress搬家502,唐山免费做网站,百度一下官网首页百度【37】将系统转换为任务 Converting System to Job
【Unity6】使用DOTS制作RTS游戏|17小时完整版|CodeMonkey|【37】将系统转换为任务 Converting System to Job_哔哩哔哩_bilibili
a. 将普通的方法#xff0c;转化成job。第一个是写一个partial struct xxx#xff1b;第二…【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方法。