代码检查:方法签名不正确
此检查确保 Unity 事件函数(如 启动、 更新 等)以及带有特定 Unity 特性的标记方法(如 [InitializeOnLoadMethod] 或 [RuntimeInitializeOnLoadMethod] )严格符合 Unity API 所需签名。
运作方式
Unity 依赖特定的方法签名(修饰符、返回值类型和参数)来正确调用事件函数和回调方法。 如果方法签名与 Unity 的预期不符,方法可能不会被调用,或会导致运行时错误。
分析器会根据预期签名检查方法声明。 根据不匹配情况,会标记如下问题:
无效的
static修饰符。返回值类型不正确(例如,方法应返回
void)。参数不匹配(数量或类型)。
无效的类型参数。
对于带有特性的方法,签名会从 Unity 的 RequiredSignature 元数据或已知特性的内置列表中获取。
示例
在此示例中, 启动 方法声明为 static 且返回 int ,并多了一个参数。 快速修复会自动调整签名以符合 Unity 的要求。
public class MyScript : MonoBehaviour
{
// Reported: Start should be non-static void with no parameters
public static int Start(int value)
{
return 42;
}
}
public class MyScript : MonoBehaviour
{
// After fix: Signature corrected to match Unity's expectation
public void Start()
{
return 42;
}
}
多个有效签名
在某些情况下,Unity 允许同一事件函数使用多种不同的有效签名(例如, OnCollisionStay 可以带有或不带有 Collision 参数)。 如果当前签名未匹配任何有效选项,检查会提示选择可用的正确签名之一。
2026年 5月 8日