代码检查:函数签名不能包含托管类型
此检查会报告从 Burst 编译代码调用参数类型或返回类型为托管类型的方法的情况。
Burst 方法调用必须使用与 Burst 兼容的签名。 如果被调用方法接受 object 、接口类型、类或返回托管类型,检查会在调用处发出警告。
示例
在此示例中, LogValue 方法接受一个 object 参数。 在 Burst 编译任务中调用该方法不受支持,并会被标记。
using Unity.Burst;
using Unity.Jobs;
[BurstCompile]
public struct ExampleJob : IJob
{
private void LogValue(object value)
{
}
public void Execute()
{
// Reported: managed parameters are not supported in Burst
LogValue(null);
}
}
using Unity.Burst;
using Unity.Jobs;
[BurstCompile]
public struct ExampleJob : IJob
{
private void LogValue(int value)
{
}
public void Execute()
{
// Correct: Use Burst-compatible value types
LogValue(42);
}
}
快速修复
此检查不提供专用的快速修复。 可通过更改被调用方法的签名或将调用移出 Burst 编译代码来手动修复。
2026年 5月 8日