Page 1 of 1

『ARBOR_DISABLE_DEFAULT_EDITOR』について

Posted: 2021/08/10 13:27
by user
各種バージョン
Arbor:3.8.3
Unity:2020.3.12f

使用エディタ拡張:
Odin:3.0.7

お世話になっております。
今回、不具合と思われる症状を発見したため、報告させていただきます。

・不具合と思わしき症状
1.Define Symbols定義時にエラーが発生
2.エディタ拡張の変更が行われていない

・対処および報告
マニュアルによるとScriptable Define Symbolsに『ARBOR_DISABLE_DEFAULT_EDITOR』を追加することで、エディタ拡張の変更を行えるようですが、実際に追加してみるとエラーが発生し利用することが出来ません。

エラー内容:
Assets\Plugins\Arbor\Internal\Editor\BehaviourEditorGUI.cs(171,64): error CS0246: The type or namespace name 'NodeBehaviourDefaultEditor' could not be found (are you missing a using directive or an assembly reference?)

恐らく、エラーの原因はクラスそのものを#ifで囲っていたことによって、条件を満たさない場合にクラス自体が存在しない状態になってしまったせいかと思われます。
そこで、勝手ながら個人的にエラー部分の対処(クラスの内部だけをif定義)をしてみたところ、エラーを解消することができました。
しかし、エラー自体はなくなったものの、エディタ拡張の変更は正常に行われていないように思えます。
もしかすると、仕様を勘違いしているだけかもしれません。
お手数ですが、ご確認いただけると幸いです。

Re: 『ARBOR_DISABLE_DEFAULT_EDITOR』について

Posted: 2021/08/10 22:38
by caitsithware
ご報告ありがとうございます。

エラーについては再現できましたので修正いたします。

暫定対処方法:
  • Assets/Plugins/Arbor/Internal/Editor/BehaviourEditorGUI.csを開く
  • 171行目を以下のように変更する。

    Code: Select all

    if (editorScriptType != null
    #if !ARBOR_DISABLE_DEFAULT_EDITOR
    	&& editorScriptType != typeof(NodeBehaviourDefaultEditor)
    #endif
    	)
ARBOR_DISABLE_DEFAULT_EDITORついては、

Code: Select all

[CustomEditor(typeof(MonoBehaviour), true)]
上記のようなエディタ拡張を作成していれば、そのエディタ拡張を利用するための設定となっています。
このようなエディタ拡張を作成していない&個別スクリプトのエディタ拡張も作成していないのであれば、Unity標準のエディタ拡張が利用されますがArborデフォルトのエディタ拡張と基本的には違いはありません。

特に「Odin - Inspector and Serializer」を使用する場合は、Odinは上記コードのように設定しているエディタ拡張があるため、それを有効にしたい場合にArbor側のデフォルトエディタ拡張を無効にする、といった感じで利用する想定です。
(つまりOdinはArbor上のエディタ拡張にまで影響を与えてくるため、サポートの観点からユーザーに故意に有効/無効を切り替えさせるための設定)
Arbor側はデフォルトエディタの有効/無効を切り替えているだけですので、Odin等の利用に不明点があればそのアセット側のサポートへお問い合わせください。
たとえ他社製アセットの仕様変更等がありArbor側のエディタに反映されなくなったとしてもこちらとしてはサポートできませんので、その点はご理解ください。

また自作した各挙動スクリプトのエディタ拡張をする場合は基本的にはARBOR_DISABLE_DEFAULT_EDITORを設定する必要はなく、普通にエディタ拡張していただければ反映されます。
エディタ拡張の方法についてはUnity公式マニュアルなどを参照してください。
このように個別に自作したエディタ拡張があれば、原則としてそのエディタ拡張が利用されますので、Odin等の機能は反映されなくなるかと思います。
Arborの組み込みスクリプトはエディタ拡張も自作しているものがほとんどですので、ARBOR_DISABLE_DEFAULT_EDITORを設定してOdin等を利用してもほとんどのエディタは変化しません。

もしArbor側が原因で自作したエディタ拡張が反映されていないようであれば詳細もご報告いただけると助かります。

Re: 『ARBOR_DISABLE_DEFAULT_EDITOR』について

Posted: 2021/08/10 23:18
by caitsithware
user wrote: 2021/08/10 13:27クラスの内部だけをif定義
ここを見落としておりました。
NodeBehaviourDefaultEditorのOnInspectorGUI()メソッドだけ#ifで囲って無効化ということですね。

前述の通り、CustomEditorが指定されているとそのエディタ拡張が利用されるため、OnInspectorGUI()メソッドだけ無効にしても正常に切り替わりません。
NodeBehaviourDefaultEditorへの個人的対処は元に戻していただき、暫定対処方法にあるようにコンパイルエラー発生個所のif文を修正していただくことでOdin等のエディタ拡張が反映されるようになるかと思います。
(実際に反映されるかどうかは利用アセット側の問題であるためこちらからは保証は致しません)

Re: 『ARBOR_DISABLE_DEFAULT_EDITOR』について

Posted: 2021/08/11 05:53
by user
ご返信ありがとうございます。

迅速に対応していただき、ありがとうございます。
ご連絡の通り修正してみたところ、正常に動作していることが確認できました。
※ARBOR_DISABLE_DEFAULT_EDITORを設定することで、Odinによるエディタ拡張が実行される。

細かな検証は行っていないため、その他のエディタ拡張による影響は確認できていませんが、少なくとも現在の自身の利用範囲においてはエディタ拡張の挙動は問題ありませんでした。
恐らく、Arbor側による問題は解消されたように思われます。
あくまで簡易的な確認ではありますが、暫定的な対処法および修正アップデートなどの際の参考にしていただけると幸いです。

この度は不具合の対応をしていただき、ありがとうございました。

Re: 『ARBOR_DISABLE_DEFAULT_EDITOR』について

Posted: 2021/08/13 23:22
by caitsithware
Arbor 3.8.4にて修正いたしました。
アセットストアから再DLし、リリースノートやreadme記載の更新手順に従って再インポートしてください。
Arbor 3.8.4 リリース | Arbor 3

これにてこのトピックはクローズといたします。