Описание
Атрибут BurstDiscard позволяет удалить метод или свойство из компиляции в машинный код пакетным компилятором.
По умолчанию задание, скомпилированное с помощью Burst, скомпилирует все методы. В некоторых случаях у вас могут быть управляемые методы, которые не могут быть скомпилированы в собственные (например, проверка правильности допустима только в управляемой среде или ведение журнала с использованием управляемых объектов... и т. д.) и не должны выполняться во время выполнения. В этом случае вы можете использовать этот атрибут, чтобы пометить метод или свойство как не компилируемые пакетным компилятором.
using Unity.Burst;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
public struct MyJob : IJob
{
// ...
[BurstDiscard]
public void NotExecutedInNative()
{
Debug.Log("This is a log from a managed job");
}
public void Execute()
{
// The following method call will not be compiled
NotExecutedInNative();
}
}