Чтобы создать задание в Unity, вам необходимо реализовать интерфейс IJob. IJob
позволяет запланировать одно задание, которое выполняется параллельно с любыми другими запущенными заданиями.
Примечание. «Задание» — это собирательный термин в Unity для любой структуры, которая реализует интерфейс IJob
.
Чтобы создать задание, вам необходимо:
- Создайте структуру, реализующую
IJob
. - Добавьте переменные-члены, используемые заданием (либо типы для преобразования, либо NativeContainer).
- Создайте в своей структуре метод с именем Execute с реализацией задания внутри него.
При выполнении задания метод Execute
запускается один раз на одном ядре.
Примечание. При разработке задания помните, что они работают с копиями данных, за исключением случая NativeContainer
. Таким образом, единственный способ получить доступ к данным из задания в основном потоке — это записать в NativeContainer
.
Пример простого определения должности
// Job adding two floating point values together
public struct MyJob : IJob
{
public float a;
public float b;
public NativeArray result;
public void Execute()
{
result[0] = a + b;
}
}