Open Mt3Zz opened 2 days ago
_value += amount;
としている処理を以下のどちらかに変更すれば直ると考えられる(未確認)。
var serializedObject = new SerializedObject(scriptableObject);
serializedObject .Update();
serializedObject .FindProperty("_value").intValue += amount;
serializedObject .ApplyModifiedProperties();
Undo.RegisterCompleteObjectUndo(scriptableObject, "test"); // Undoに対応する
_value += amount;
EditorUtility.SetDirty(scriptableObject); // Dirtyフラグを立てる
AssetDatabase.SaveAssets(); // 保存する
ゲームを終了したときにUnityエディターの更新がされていないと思われる。 変更後のassetファイルをテキストエディターで開くと変更前の値が残っているし、Unityを再起動すると変更前の値に戻る。
同様の動作はFloatObject.Addにも存在する。他のオブジェクトの値操作メソッドにも同様の動作が存在すると考えられるため、すべてのVariableObjectの値操作メソッドを修正する必要がある。