

エディタ拡張で、カスタムWindowを使って表示したボタンから、  
Gameobjectを生成したり、オブジェクトの設定値を変更するスクリプトを書いています。

GameObjectを生成した後、シーンを保存しても、生成したオブジェクトや  
スクリプトから変更した値が保存されません。

生成後、シーンビューからなんらかのGameobjectを移動するなど、データを一部でも変更すれば、すべての変更が保存されます。  
予想するに、エディタスクリプトからGameObjectを生成したり変更したりしても、  
UnityEditorには変更マークがつかず、save sceneをしても保存処理がされないのでは、  
と感じました、

save sceneを押して保存されるように、変更済みマークをスクリプトから実施する方法はないでしょうか？  
一通り探してみたのですが、既出でしたら申し訳ありません。


CC BY-SA 3.0
2016-01-10T16:12:51.980
20810
2016-10-31T04:41:28.417
13966
question
unity3d
エディタ拡張で生成したオブジェクトの保存


先日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 を活用して拡張 - 強火で進め")

日本語の情報としてこちらも挙げます。


CC BY-SA 3.0
2016-01-14T13:26:16.077
20925
2016-01-14T13:26:16.077
3783
20810
answer