いんでぃーづ

ゲームいろいろ、いろいろ自由

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


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。