Page 1 of 1

Arbor Editor Windowを開いた状態でプレイ⇒停止すると例外が発生します

Posted: 2017/11/08 13:45
by kag
お世話になっております。

発生環境
Unity 2017.2.0p1
Arbor2 2.2.0

Unity 2017.2.0p1に変更してから、
ReorderableListを使用したプロパティを持つArborStateを
Arbor Editor Windowを開いた状態でプレイ⇒停止すると
「NullReferenceException: SerializedObject of SerializedProperty has been Disposed.」
が発生してしまいます。
※Unity 2017.1.2では発生していませんでした。

これはUnity 2017.2.0p1の問題なのか、Arbor2 2.2.0との相性なのかわかりませんが、
解決できるようでしたらお願い致します。

Re: Arbor Editor Windowを開いた状態でプレイ⇒停止すると例外が発生します

Posted: 2017/11/09 04:10
by caitsithware
ご報告ありがとうございます。

検証しましたところ、SerializedPropertyをキャッシュしているような場合に、再生終了→エディタモード開始までの間に初期化されずに一瞬だけ不正アクセスしてしまうことがあるようです。
また、私の環境ではUnity2017.1.1f1でも同様の例外が発生していたため、特定バージョンによらず発生する可能性があります。

修正は次回更新バージョンにて行いますので、それまで少々お待ちください。

暫定対処としましては、以下の方法を行っていただければ解消できます。

暫定対処方法
  • Plugins/Arbor/Internal/Editor/Windows/ArborEditorWindow.csをIDEで開く
  • 102行目(bool _FrameSelected = false;の次の行)に以下コードを追加

    Code: Select all

    bool _IsPlaying=false;
  • 2780行目あたり(if (!_Initialized)の前の行)に以下コードを追加

    Code: Select all

    if (_IsPlaying != EditorApplication.isPlaying)
    {
    	_Initialized = false;
    	_IsPlaying = EditorApplication.isPlaying;
    }
    
ご不便おかけして申し訳ございませんがよろしくお願いいたします。

Re: Arbor Editor Windowを開いた状態でプレイ⇒停止すると例外が発生します

Posted: 2017/11/09 10:27
by kag
対応ありがとうございます。

教えていただいた方法で例外が発生しなくなりました。
また、プレイ⇒終了しただけでシーンが変更された状態になる現象もなくなりました。

ありがとうございました。