0 支持
106 閲覧

ExecuteInEditModeでオブジェクトを消去するスクリプト作ったので

これをプレハブ画面で実行してみましたが一つ問題が

この機能はボタンを押下することによってオブジェクトを削除する仕組みになっています

ボタンが押下されオブジェクトが削除します。これでプレハブデータに変化が生じたのですが

下の画像にあるSAVEボタンがアクティブになりません

当然このまま編集画面脱出するとセーブ確認のダイアログが出てこないので困っています

ExecuteInEditModeスクリプトで編集されたものでは、プレハブデータを変更されたという情報がUNITYに送られないのでしょうか?

これは市販されているアセットツールを使用していても同様の不具合があり少し気になっていました

プレハブ画面で編集されたと通知するスクリプトがあればよいのですが、ないでしょうか?

作成したスクリプトを走らせてもSAVEボタンがアクティブになるよう解決したい

この対処法を探しています よろしくお願いいたします

閉鎖
初心者 (440 ポイント)
編集 | 106 閲覧

回答 1

+1 支持
ベストアンサー
また私だ

https://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html
公式リファレンス見る限り、そもそもExecuteInEditModeは
プレハブモードを考慮していないようです。
とするとSaveを有効にすることはできなそうな感じがします。
 
Saveは有効にできませんが、スクリプトからプレハブを保存する処理を
書くことはできます。
 
if (GUILayout.Button("save", GUILayout.Width(256))) {
string path=PrefabStageUtility.GetCurrentPrefabStage().prefabAssetPath;
PrefabUtility.SaveAsPrefabAsset(obj.gameObject, path); // objはeditorで対象にしているコンポーネント
}

editorコンポーネントにこのような処理を追加することで、
プレハブを保存するボタンを作ることができます。
これで代用になるかはわかりませんがひとまず。
達人回答者 (6.2k ポイント)
選択
0
回答ありがとうございます
返信遅れてすみません コメント通知のメールが届いていなかったのですが
たまたま今日きたら回答いただいてましたね
プレハブ保存という手がありましたか ありがとうございます!

関連する質問

0 支持
1 回答
0 支持
1 回答
0 支持
0 回答
ポテトおもち 初心者 (120 ポイント) 1/12 質問 | 27 閲覧
0 支持
1 回答
2021-02-08 質問・回答をMarkdownで入力できるようにしました。
2020-09-03 新たなスパム対策を導入しました。

114 質問

121 回答

137 コメント

146 ユーザー