コガネブログ

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

【Unity】Collider や LineRenderer などの編集が開始した・終了したかどうかを検知するエディタ拡張

概要

using UnityEditor;
using UnityEditorInternal;
using UnityEngine;

[InitializeOnLoad]
public static class Example
{
    static Example()
    {
        EditMode.onEditModeStartDelegate += OnEditModeStartDelegate;
        EditMode.onEditModeEndDelegate += OnEditModeEndDelegate;
    }
    
    // 編集を開始した
    private static void OnEditModeStartDelegate( Editor editor, EditMode.SceneViewEditMode mode )
    {
        Debug.Log( editor.name );
        Debug.Log( mode );
    }

    // 編集を終了した
    private static void OnEditModeEndDelegate( Editor editor )
    {
        Debug.Log( editor.name );
    }
}

EditMode.onEditModeStartDelegate で編集の開始を検知できます
EditMode.onEditModeEndDelegate で編集の終了を検知できます

f:id:baba_s:20190928160710p:plain

Collider の編集や

f:id:baba_s:20190928160735p:plain

LineRenderer の編集を行う時に呼び出されます