はじめに
「Editor Extensions for Unity Editor」を Unity プロジェクトに導入することで
エディタ拡張でゲームオブジェクトの
作成、移動、削除、複製時のコールバックを実装できるようになります
使用例
using UnityEngine; using UnityEditor; using UnityEngine.SceneManagement; using EditorExtensions; [InitializeOnLoad] public static class Example { static Example() { ObjectPostprocessor.assetAdded += OnAssetAdded ; // アセットが追加された ObjectPostprocessor.assetMoved += OnAssetMoved ; // アセットが移動された ObjectPostprocessor.assetDeleted += OnAssetDeleted ; // アセットが削除された ObjectPostprocessor.assetDuplicated += OnAssetDuplicated ; // アセットが複製された ObjectPostprocessor.prefabConnected += OnPrefabConnected ; // プレハブが作成された ObjectPostprocessor.gameObjectAdded += OnGameObjectAdded ; // ゲームオブジェクトが追加された ObjectPostprocessor.gameObjectSceneMoved += OnGameObjectSceneMoved ; // ゲームオブジェクトがシーンをまたいで移動された ObjectPostprocessor.gameObjectDeleted += OnGameObjectDeleted ; // ゲームオブジェクトが削除された ObjectPostprocessor.gameObjectDuplicated += OnGameObjectDuplicated ; // ゲームオブジェクトが複製された ObjectPostprocessor.prefabInstantiated += OnPrefabInstantiated ; // プレハブのインスタンスが作成された } // アセットが追加された private static void OnAssetAdded( string assetPath ) { } // アセットが移動された private static void OnAssetMoved( string assetPathFrom, string assetPathTo ) { } // アセットが削除された private static void OnAssetDeleted( string assetPath ) { } // アセットが複製された private static void OnAssetDuplicated( string assetPathFrom, string assetPathTo ) { } // プレハブが作成された private static void OnPrefabConnected( GameObject gameObjectFrom, string assetPathTo ) { } // ゲームオブジェクトが追加された private static void OnGameObjectAdded( GameObject gameObject ) { } // ゲームオブジェクトがシーンをまたいで移動された private static void OnGameObjectSceneMoved( Scene sceneFrom, GameObject gameObject ) { } // ゲームオブジェクトが削除された private static void OnGameObjectDeleted( Scene scene ) { } // ゲームオブジェクトが複製された private static void OnGameObjectDuplicated( GameObject gameObjectFrom, GameObject gameObjectTo ) { } // プレハブのインスタンスが作成された private static void OnPrefabInstantiated( string assetPathFrom, GameObject gameObjectTo ) { } }