コガネブログ

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

【Unity】Editor.OnInspectorGUI の ReorderableList の変更は EditorGUI.ChangeCheckScope で検知できない

概要

public override void OnGUI( string searchContext )
{
    using var changeCheckScope = new EditorGUI.ChangeCheckScope();

    m_editor.OnInspectorGUI();

    if ( !changeCheckScope.changed ) return;

    // ReorderableList を変更してもここに来ない
}

対策

public override void OnGUI( string searchContext )
{
    using var changeCheckScope = new EditorGUI.ChangeCheckScope();

    var oldArray = ...;

    m_editor.OnInspectorGUI();

    var newArray = ...:

    if ( !changeCheckScope.changed && newArray.SequenceEqual( oldArray ) ) return;

    // 配列やリストの変更を SequenceEqual で確認するとここに来られる
}