以下の内容はhttps://baba-s.hatenablog.com/entry/2022/10/17/090000より取得しました。


【Unity】ObjectChangeEvents を使えば Unity エディタの様々なイベントを検知できる

概要

using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
public static class Example
{
    static Example()
    {
        ObjectChangeEvents.changesPublished +=
            ( ref ObjectChangeEventStream stream ) =>
        {
            Debug.Log( "changesPublished" );
        };
    }
}

ObjectChangeEvents.changesPublished は以下のようなタイミングで呼び出される

  • ゲームオブジェクトが生成された
  • ゲームオブジェクトの親が変更された
  • ゲームオブジェクトが削除された
  • ゲームオブジェクトのプロパティが変更された
  • ゲームオブジェクトにコンポーネントが追加された
  • ゲームオブジェクトのコンポーネントが削除された
  • コンポーネントのプロパティが変更された
  • アセットのプロパティが変更された
  • 元となるプレハブが変更されてシーンのプレハブインスタンスが更新された
  • EditorSceneManager.MarkSceneDirty が使用された
  • Undo.RegisterFullObjectHierarchyUndo が使用された
  • Undo.RegisterCreatedObjectUndo が使用された
  • Undo.DestroyObjectImmediate が使用された

引数の ObjectChangeEventStream を使用することで
発生したイベントの詳細な情報を取得できる




以上の内容はhttps://baba-s.hatenablog.com/entry/2022/10/17/090000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14