読者です 読者をやめる 読者になる 読者になる

きかいや。

機械といいつつだいたいプログラミングのはなし

ScriptableObject継承クラスを作ったときにやったミス

ScriptableObjectのAssetを作成して、

UnityEditorを再起動すると中身が破損して読み込めなくなる症状があり、
(Inspectorで見ると The associated script can not be loadedといわれる。)

一年以上放置してたんですが、解決したのでメモ。

(Airfoil.cs)
[CreateAssetMenu]
public class Airfoil:ScriptableObject{
}

[CreateAssetMenu]
public class AirfoilMinimum:ScriptableObject{
}

のようにひとつの.csファイルの中にふたつのScriptableObject継承クラスを入れていたのが間違い。

UnityのScriptableObjectやMonoBeheviourを継承したクラスは、
.csファイルの名前とクラス名を一致させなければいけないのです、ハイ。

(Airfoil.cs)
[CreateAssetMenu]
public class Airfoil:ScriptableObject{
}




(AirfoilMinimum.cs)
public class AirfoilMinimum:ScriptableObject{
}
のようにソースを分割すると治りました。

↓みたいなところちゃんと読もう
docs.unity3d.com