AnnulusGames / LucidEditor

Powerful Editor Extensions for Unity
MIT License
127 stars 13 forks source link

CustomEditor attribute の isFallbackフラグをtrueにする #4

Closed Nattuhan closed 1 year ago

Nattuhan commented 1 year ago

変更内容

CustomEditor attribute のisFallbackフラグをtrueに変更しました。

発生した問題

ScriptableObjectを継承しているTrackAsset(TimelineのTrack)の、Timeline内でトラックを選択した際のインスペクターの表示が、当ライブラリを追加した前後で変わってしまうものがありました。(確認しやすいのはCinemachineパッケージに含まれる、CinemachineTrackです)

TrackAssetのデフォルトの見た目は以下のスクリプトで定義されていますが、 com.unity.timeline/Editor/inspectors/TrackAssetInspector.cs こちらのCustomEditorでは

    [CustomEditor(typeof(TrackAsset), true, isFallback = true)]
    [CanEditMultipleObjects]
    class TrackAssetInspector : Editor
    {
    ...

と定義されており、 isFallback = true なので LucidEditor.csScriptableObjectEditor が優先されてしまい、結果的に見た目が変わってしまうようです。

このことによる実質的な副作用は、

というものであり、特に後者のトラック名を変更できなくなってしまうことがTimelineを使用するうえで不都合なものになっています。

当PRを取り込んでいただくと、TrackAssetInspector.cs が優先されるようになり( isFallback が同値の時は、子クラスで書かれている方を優先するようです)表示が元に戻ることが確認されます。