質問: エディタ拡張で、カスタムWindowを使って表示したボタンから、 Gameobjectを生成したり、オブジェクトの設定値を変更するスクリプトを書いています。 GameObjectを生成した後、シーンを保存しても、生成したオブジェクトや スクリプトから変更した値が保存されません。 生成後、シーンビューからなんらかのGameobjectを移動するなど、データを一部でも変更すれば、すべての変更が保存されます。 予想するに、エディタスクリプトからGameObjectを生成したり変更したりしても、 UnityEditorには変更マークがつかず、save sceneをしても保存処理がされないのでは、 と感じました、 save sceneを押して保存されるように、変更済みマークをスクリプトから実施する方法はないでしょうか? 一通り探してみたのですが、既出でしたら申し訳ありません。
回答: 先日Unityのフォーラムでも同様の投稿があり、Unityの中の人が解決方法を示していました。 [Custom Editor problem in Unity 5.3 | Unity Community](http://forum.unity3d.com/threads/custom-editor-problem-in-unity-5-3.372970/ "Custom Editor problem in Unity 5.3 | Unity Community") 一つはUndo.RecordObject()を呼び出す方法、もう一つはSerializedObjectやSerializedPropertyを使う方法です。 上記リンク先のコメントからしますと、Unityの中の人的にはSerializedObjectやSerializedPropertyを使う方法を勧めているように読めました。 以下実装例です: [Unity-Technologies / UI / ソース / UnityEditor.UI / UI / ButtonEditor.cs — Bitbucket](https://bitbucket.org/Unity-Technologies/ui/src/b411f84ded13340515b6a48f1bfd2ea59d5348b8/UnityEditor.UI/UI/ButtonEditor.cs?at=5.3&fileviewer=file-view-default "Unity-Technologies / UI / ソース / UnityEditor.UI / UI / ButtonEditor.cs — Bitbucket") UnityのUI.Buttonのエディタ拡張の実装です。短いながらも簡潔に書かれていてわかりやすいです。 [Inspector を SerializedProperty を活用して拡張 - 強火で進め](http://d.hatena.ne.jp/nakamura001/20120609/1339249045 "Inspector を SerializedProperty を活用して拡張 - 強火で進め") 日本語の情報としてこちらも挙げます。