はじめに
通常、”Class” is missing the class attribute ‘ExtensionOfNativeClass’というエラーが出る場合は、【Unity】’【クラス名】’ is missing the class attribute ‘ExtensionOfNativeClass’!が発生するで解決できます。
ただ、Easy Save3が入ったプロジェクトであると原因がわからない。
「関連するスクリプトがアタッチされていないのに、なぜか当該エラーが発生する…」と。
原因
シーンにあるES3 ManagerのReferencesの中に、”Class”に関するデータが残る。
Editorから、当該SceneのES3 ManagerをRefreshしてもOptimizeしても何も変化がありません。これも原因といえばそう。私のイメージするRefreshは削除→再作成しないとできません。
対処方法
当該シーンにあるES3 Managerを削除し、再度作成します。
エラーの起こし方(例)
1. ES3 Managerを導入
2. Log(当該クラス)にScriptableObjectを継承して、test.Scene(当該シーン)のGameObjectにアタッチしたスクリプト(XXX.cs)にアタッチする。
Log.cs
public Log : ScriptableObject { ... }
XXX.cs
public Log myLog;
3. ES3 ManagerにXXX.csをアタッチしたGameObjectが(勝手に)保存される
4. 設計変更をして、LogからScriptableObjectを外す。当然、XXX.csからもLogの記載を削除する。
Log.cs
public Log { ... }
test.Scene(当該シーン)で、ES3 Manager内のReferencesにXXX.csのLogクラスの記載が残っているのでエラーが出る
“Log” is missing the class attribute ‘ExtensionOfNativeClass’
感想
Refreshって言ったらRefreshだと思うじゃん!!
意味わからんやろこれ…(´Д⊂ヽ