Page 1 of 1

バージョンアップしたらコンパイルエラーが発生

Posted: 2020/09/17 09:26
by himawari
・OS(必須)
 Windows10 Pro
・Unityバージョン(必須)
 Unity 2020.1.6f1
・Arborバージョン(必須)
 Arbor3 3.7.2
・再現方法(必須)
 以前までUnity2019.3.14f1、Arbor3 3.6.9で開発を行っていました。
 Unityのバージョンを2020.1.6f1にあげたら、ArborEditorのStateをドラッグできないUIの不具合が発生したので、Arbor3を3.7.2にアップデートしました。(アップデートガイドにあった手順で行いました)
 すると下記のエラーが出て、コンパイルできませんでした。
 (Welcomeウィンドウが開いているとアクティブになるたび発生)

ArgumentException: An item with the same key has already been added. Key: Extensions
System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <fb001e01371b4adca20013e0ac763896>:0)
System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <fb001e01371b4adca20013e0ac763896>:0)
ArborEditor.Icons..cctor () (at Assets/Plugins/Arbor/Internal/Editor/Icons.cs:152)
Rethrow as TypeInitializationException: The type initializer for 'ArborEditor.Icons' threw an exception.
ArborEditor.ArborEditorWindow.get_defaultTitleContent () (at Assets/Plugins/Arbor/Internal/Editor/Windows/ArborEditorWindow.cs:90)
ArborEditor.ArborEditorWindow.OnEnable () (at Assets/Plugins/Arbor/Internal/Editor/Windows/ArborEditorWindow.cs:585)

 Icons.cs:152にある、「s_TypeIcons」のDictionaryに同名Keyが登録されるようです。

 すでにs_TypeIconsにKeyが登録されていたらAddしないようにソースを書き換えたら動作しました。

Re: バージョンアップしたらコンパイルエラーが発生

Posted: 2020/09/17 11:32
by caitsithware
ご報告ありがとうございます。

コンパイルエラーとのことですが、エラー内容を見たところ例外が発生していますね。
原因としてはおっしゃる通りs_TypeIconsにすでに同じ型で登録済みのため発生しているようです。

こちらの環境での再現確認が取れていないため、具体的な発生条件なども詳しく調査して修正いたします。

Re: バージョンアップしたらコンパイルエラーが発生

Posted: 2020/09/17 12:15
by caitsithware
再現確認してみたところ、以下の条件で発生するようです。
  • クラスをpartialで分割している。
  • その上で同一クラスを定義しているソースファイルにクラスと同名(フォルダ分けてクラスと同名のファイル名)のもの複数がある。
  • Unityのバージョンは特に関係なさそう。
報告していただいたエラー内容からすると、Extensionsというクラスがその条件に合致するかと思いますが如何でしょうか。

また、StateBehaviourで上記条件に合致するクラスがある場合、挙動選択ウィンドウに多重表示されるなどの不具合も確認いたしましたのでそちらもあわせて修正いたします。
ご不便おかけして申し訳ございませんが、修正までしばらくお待ちください。

Re: バージョンアップしたらコンパイルエラーが発生

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