いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU

Unity : プレハブの値をエディタスクリプトから変更・保存する

{スポンサーリンク}
{スポンサーリンク}

エディタ拡張書いたときに、プレハブの値を読むのは以下の記事の方法でできる。

indie-du.com

読んだ上で 書き換える には一工夫必要になる。

やりかたは簡単で、対象プレハブを引数にして EditorUtility.SetDirty を読んだ後、AssetDatabase.SaveAssets を呼べばいい。

    Rigidbody rd = prefab.GetComponent<Rigidbofy>();

    ///// Rigidbodyの値を書き換える

    EditorUtility.SetDirty(prefab);
    AssetDatabase.SaveAssets();

AssetDatabase.SaveAssetsは呼ばなくても、メニューから Save Project するか、そのままUnityを終了させたときにプロジェクトに保存される。

SetDirtyのマニュアルには Undo.RecordObject つかえと書いてあるのだが、手元では成功しなかった。

Unity - スクリプトリファレンス: EditorUtility.SetDirty

Unity - スクリプトリファレンス: Undo.RecordObject

Amazon.co.jpアソシエイト