BurstDiscard 属性允许您通过 Burst 编译器禁止将某个方法或属性编译到本机代码中。
默认情况下,使用 Burst 编译的作业将编译将所有方法。在某些情况下,您可能会存在无法编译到本机(例如,确认有效性只在托管环境中有效或使用托管对象进行记录等)且不应在运行时执行的托管方法。在这种情况下,您可以通过 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(); } }