コードインスペクション:『ScriptableObject』から派生した型が必要です
このインスペクションは、Unity の文字列ベースの ScriptableObject 作成 API の型安全性を保証し、特に ScriptableObject.CreateInstance(string) メソッドを対象としています。
仕組み
インスペクションは、Unity 固有の参照プロバイダを使用して、文字列リテラルをプロジェクトまたはライブラリ内の型宣言に解決します。 型が解決されると、アナライザーはその継承階層をチェックします。
検証ルール: 解決された型は UnityEngine.ScriptableObject から派生している必要があります。
解決された型が存在するが、 ScriptableObject を継承していない場合、インスペクションは警告を生成します。 これにより、指定された型が有効な ScriptableObject ではないために Unity がオブジェクトのインスタンス化に失敗する実行時エラーを防ぎます。
サンプル
この例では、 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 年 6 月 12 日