1.定义一个Job结构体
首先,需要定义一个struct继承接口IJob。
注意:Job数据只接受引用类型的数据,无法使用类(calss)的数据。
public struct MyJob : IJob
{
public float a;
public float b;
public NativeArray<float> result;
public void Execute()
{
result[0] = a + b;
}
}
在这个结构体MyJob中进行需要进行的计算并将结果存储于NativeContainer中,Unity附带一个NativeContainer名为NativeArray的程序。
您还可以使用NativeSlice操作一个NativeArray来获取NativeArray从指定位置到指定长度的子集。
注意:实体组件系统(ECS)包扩展了Unity.Collections命名空间以包括其他类型的NativeContainer:
- NativeList- 可调整大小的NativeArray。
- NativeHashMap - 键值对。
- NativeMultiHashMap - 每个键有多个值。
- NativeQueue- 先进先出(FIFO)队列。
2.实例化Job并填充数据
// Create a native array of a single float to store the result. This example waits for the
// job