コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】プレハブのインスタンスに変更があるかどうかエディタ拡張で確認する方法

概要

using UnityEditor;
using UnityEngine;

public class Example
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        var prefabInstance = GameObject.Find( "Cube" );

        var hasOverrides = PrefabUtility.HasPrefabInstanceAnyOverrides
        (
            instanceRoot: prefabInstance,
            includeDefaultOverrides: false
        );

        Debug.Log( hasOverrides );
    }
}

PrefabUtility.HasPrefabInstanceAnyOverrides を使用することで

f:id:baba_s:20200213161959p:plain

プレハブのインスタンスに変更があるかどうか確認できる