Prefab Mode で利用できる イベントをまとめました
※ Experimental なので今後利用できなくなる可能性があります
Prefab を Scene 上で編集したあとに Override してもこちらのイベントは呼ばれません
using UnityEngine; using UnityEditor; using UnityEditor.Experimental.SceneManagement; public static class PrefabStageHandle { [InitializeOnLoadMethod] public static void Init() { PrefabStage.prefabSaved += PrefabStageOnPrefabSaved; PrefabStage.prefabSaving += PrefabStageOnPrefabSaving; PrefabStage.prefabStageClosing += PrefabStageOnPrefabStageClosing; PrefabStage.prefabStageDirtied += PrefabStageOnPrefabStageDirtied; PrefabStage.prefabStageOpened += PrefabStageOnPrefabStageOpened; } /// <summary> /// Prefab Mode で Prefab を開いたときに呼び出される /// </summary> private static void PrefabStageOnPrefabStageOpened(PrefabStage obj) { } /// <summary> /// Prefab を編集して差分が出た際に呼び出される /// </summary> private static void PrefabStageOnPrefabStageDirtied(PrefabStage obj) { } /// <summary> /// Prefab Mode を閉じたときに呼び出される /// </summary> private static void PrefabStageOnPrefabStageClosing(PrefabStage obj) { } /// <summary> /// Prefab の保存開始時に呼び出される /// </summary> private static void PrefabStageOnPrefabSaving(GameObject obj) { } /// <summary> /// Prefab の 保存時に呼び出される /// </summary> private static void PrefabStageOnPrefabSaved(GameObject obj) { } }