JetBrains Rider 2026.1 Help

代码检查:预期使用派生自“ScriptableObject”的类型

此检查确保 Unity 基于字符串的 ScriptableObject 创建 API 的类型安全,专门针对 ScriptableObject.CreateInstance(string) 方法。

运作方式

该检查使用 Unity 特有的引用提供程序,将字符串文字解析为项目或库中的类型声明。 类型解析后,分析器会检查其继承层次结构。

验证规则:解析出的类型必须从 UnityEngine.ScriptableObject 派生。

如果解析出的类型存在但没有从 ScriptableObject 继承,检查会产生警告。 这样可以防止在运行时出现错误,因为 Unity 无法实例化对象,原因是指定的类型不是有效的 ScriptableObject

示例

在此示例中, MyPlainClass 没有从 ScriptableObject 继承,因此无法通过 CreateInstance 实例化。

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