[Unity]并行操作Transform
- 确定需要操作什么数据,这里就让所有物体全部向上移动
- 编写一个结构体,实现
UnityEngine.Jobs.IJobParallelForTransform
接口 Burst强无敌
1 |
|
- 创建一个
UnityEngine.Jobs.TransformAccessArray
类型的变量,用于保存所有需要修改Transform的游戏物体。这是个结构体,而且必须在不使用时调用其成员方法Dispose()来销毁,否则会造成内存泄漏。在构造时可以直接传入Transform数组,也可以调用Add成员方法添加Transform。辣鸡Unity,追踪这个结构体的实现,发现全是extern方法,还不支持C#8,吃枣药丸 - 每帧调用。实例化一个结构体,调用Schedule方法,传入TransformAccessArray
1 |
|
- 运行!
- 6k个对象(非同屏)跑出了250帧的好成绩(编辑器内),比之前直接Update里写不知道高到哪里去了
[Unity]并行操作Transform
https://ksgfk.github.io/2020/06/22/Unity-并行操作Transform/