Version: 2022.1
NativeContainer
调度作业

创建作业

要在 Unity 中创建作业,必须实现 IJob 接口。借助 IJob,可以调度与正在运行的其他作业并行运行的单个作业。

注意:“作业”是 Unity 中对于任何实现 IJob 接口的结构的统称。

要创建作业,您需要:

  • 创建实现 IJob 的结构。
  • 添加该作业使用的成员变量(为 blittable 类型NativeContainer 类型之一)。
  • 在结构中创建一个名为 Execute 的方法,并在其中实现该作业。

执行作业时,Execute 方法在单个核心上运行一次。

Note: When designing your job, remember that they operate on copies of data, except in the case of NativeContainer. So, the only way to access data from a job in the control thread is by writing to a NativeContainer.

简单作业定义示例

// 将两个浮点值相加的作业
public struct MyJob : IJob
{
    public float a;
    public float b;
    public NativeArray<float> result;

    public void Execute()
    {
        result[0] = a + b;
    }
}

  • 2018–06–15 页面已发布

  • 2018.1 版中公开了 C# 作业系统 NewIn20181

NativeContainer
调度作业