代码检查:函数签名不能包含托管类型
此检查会报告 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日