JetBrains Rider 2026.1 Help

代码检查:需要派生自“组件”或“MonoBehaviour”的类型。

Unity.ExpectedComponent 检查确保在使用基于字符串的 Unity API(如 GameObject.AddComponent(string)GameObject.GetComponent(string) )时的类型安全性。 它会标记已指定类型存在但未从所需基类继承的情况(内置类型用 UnityEngine.Component ,用户自定义类型用 UnityEngine.MonoBehaviour)。

运作方式

该检查使用 Unity 特定的引用提供程序,将字符串文字解析为项目或库中的类型。 类型解析完成后,分析器会检查其是否满足被调用方法的继承要求。

验证规则:

  • 针对内置类型 (来自 Unity 程序集):类型必须从 UnityEngine.Component 派生。

  • 针对用户自定义类型 (在当前项目中):类型必须从 UnityEngine.MonoBehaviour 派生。

这样可以防止运行时错误或静默失败,避免 Unity 因为类型与预期签名不符而无法添加或查找指定组件。

示例

在此示例中, MyPlainClass 没有继承自 MonoBehaviour ,因此无法作为组件添加到 GameObject

public class MyPlainClass { } public class MyScript : MonoBehaviour { void Start() { // Reported: MyPlainClass is not a MonoBehaviour gameObject.AddComponent("MyPlainClass"); } }
public class MyComponent : MonoBehaviour { } public class MyScript : MonoBehaviour { void Start() { // After fix: MyComponent is a MonoBehaviour gameObject.AddComponent("MyComponent"); } }
2026年 5月 8日