和JobSystem配合使用
导入命名空间
using Unity.Burst;
using Unity.Jobs;
using Unity.Collections;
注意里面用到的都是值类型。支持readonly静态数组
[BurstCompile]
struct ST : IJob
{
[ReadOnly]
public float a;
[ReadOnly]
public float b;
[WriteOnly]
public NativeArray<float> Out;
public void Execute()
{
Out[0] = (a-b)/(a + b) ;
}
}
简单的调用
NativeArray<float> result = new NativeArray<float>(1, Allocator.TempJob);
var st = new ST();
st.a = 3.0f;
st.b = 4.0f;
st.Out = result;
JobHandle job = st.Schedule();
job.Complete();
print(result[0]);
result.Dispose();
如果多个Job有数据的引用,自己看文档
https://docs.unity3d.com/Packages/com.unity.burst@1.4/manual/docs/AdvancedUsages.html
本文介绍了如何在Unity中利用Burst库进行高效的值类型Job编程,展示了如何创建一个计算浮点数差分并更新结果的ST结构,以及如何调度和处理这些Job。读者可以学习到如何结合JobSystem进行并发计算和内存管理。

414

被折叠的 条评论
为什么被折叠?



