ReSharper 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日