うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Prefab Mode のイベントまとめ

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)
    {
    }
}