テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

ScriptableObjectのhideFlagをリセット

ScriptableObjectはGameObjectと違い「ゲーム実行時」の情報を保持する。

しかし、ゲーム実行時はデータを更新してほしくない場合はHideFlagsにDontSaveを指定することで実行時のゲーム状態を保存しないようにも出来るらしい。
(ただし、インスタンスが即破棄される訳ではないので、その点に注意。逆を言えば、インスタンス更新したのに値が更新されていないケースは、dontSaveが指定されているかエディタ拡張で操作した後にEditorUtility.SetDirtyを呼んでいないかの可能性が高いと思う)

HideFlags
http://docs.unity3d.com/Documentation/ScriptReference/HideFlags.DontSave.html

本題だが、このHideFlagsはニュートラルの設定が一覧に無い。DontSaveを一度付けてしまうと戻せない、戻しにくい。

なので、こんな感じでニュートラルに戻してやる。

hideFlags = 0;

要するに、hideFlagsはどうもビット演算で管理しているみたいなので、0(何も設定していない)を投入すればリセットできるという理屈。