JetBrains Rider 2026.1 Help

代码检查:方法签名不正确

此检查确保 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日