NativeContainer
ジョブのスケジュール

ジョブの作成

Unityでジョブを作成するには、IJob インターフェースを実装する必要があります。IJob を使用すると、実行中の他のジョブと並列処理する 1 つのジョブをスケジュールすることができます。

ノート Unity において、「ジョブ」は、IJob インターフェースを実装する構造体を指す Unity 内での総称です。

ジョブを作成するには、以下を行います。

  • IJob を実装する構造体を作成します。
  • ジョブが使用するメンバー変数を加えます (blittable 型NativeContainer)。 
  • 内部にジョブが実装された Execute と呼ばれるメソッドを作成します。

ジョブを実行するとき、Execute メソッドは 1 つのコアで 1 回実行されます。

注意 ジョブを設計するときは、NativeContainer の場合を除いてデータのコピーを使って動作することに注意してください。そのため、メインスレッドのジョブからデータにアクセスするには、NativeContainer に書き込むことによってのみ可能です。

簡単なジョブ定義の例

// 2 つの浮動小数点の値を加算します
public struct MyJob : IJob
{
    public float a;
    public float b;
    public NativeArray<float> result;

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

  • 2018–06–15 Page published

  • C# Job System は 2018.1 で公開NewIn20181

NativeContainer
ジョブのスケジュール