ParameterCheckでParameterがintしか選べない

ここは、Arbor開発者へ不具合を報告するためのフォーラムです。
報告に必要な項目は以下の通りです。
  • OS(必須)
  • Unityバージョン(必須)
  • Arborバージョン(必須)
  • 再現方法(必須)
  • ビルドプラットフォーム
  • 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画
注意:Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。

Here is a forum for reporting failure to Arbor developer.
The items necessary for reporting are as follows.
  • OS(Required)
  • Unity version(Required)
  • Arbor version(Required)
  • How to reproduce(Required)
  • Build platform
  • Reproduction project (Minimum configuration not including Arbor and other assets) or video
Note: Unity beta and alpha versions are not supported. Please use the official release version.
Forum rules
報告に必要な項目は以下の通りです。
  • OS(必須)
  • Unityバージョン(必須)
  • Arborバージョン(必須)
  • 再現方法(必須)
  • ビルドプラットフォーム
  • 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画
注意:Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。

The items necessary for reporting are as follows.
  • OS(Required)
  • Unity version(Required)
  • Arbor version(Required)
  • How to reproduce(Required)
  • Build platform
  • Reproduction project (Minimum configuration not including Arbor and other assets) or video
Note: Unity beta and alpha versions are not supported. Please use the official release version.
Guest

ParameterCheckでParameterがintしか選べない

Post by Guest » 2019/05/02 12:53

Unity 2018 3.13.f1
Arbor3.5.1
Windows 10 Home
ビルドプラットフォーム PC,Mac&Linux Standalone

ParameterCheckにfloatやbool(ほかの型は試してませんがおそらくint以外)を選ぶと
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) (at <d7ac571ca2d04b2f981d0d88
とエラーがでて選択することができないです。

再現方法
1.Unity 2018 3.13.f1でTestという名前で3DのUnityProjectを作成
2.Asset StoreウィンドウからArborをインポート
3.CubeをCreateしBehavior Treeコンポーネントをアタッチ
4.OpenEditorでエディターを開く
5.CubeにparameterContainerをアタッチ New Floatという名前のFloatパラメーターを追加
6.Rootからノードを伸ばしてAgentEscapeFromPositionアクションを作成
7.ParameterCheckデコレーターを追加しParameterContainerをドラッグアンドドロップしNew Floatを選択しようとするとエラー発生

お忙しいとは思いますが確認をお願いいたします。

User avatar
caitsithware
管理人
Posts: 283
Joined: 2015/08/17 12:41

Re: ParameterCheckでParameterがintしか選べない

Post by caitsithware » 2019/05/02 13:44

ご報告ありがとうございます。

再現確認取れましたので修正いたします。

不具合の影響範囲:

ParameterConditionListを使用している箇所で、参照するパラメータのタイプが変更されたときに発生します(内部的にデフォルトはint型扱い)

【ParameterConditionListを使用している組み込みスクリプト】
  • ArborFSM
    • ParameterTransition
  • BehaviourTree
    • ParameterCheck
    • ParameterConditionalLoop
暫定対処方法:

暫定対処として、以下のようにコードを変更していただければint型以外のパラメータも設定できました。
  • Assets/Plugins/Arbor/BuiltInBehaviours/Editor/Common/ParameterConditionListPropertyDrawer.csをコードエディタで開く。
  • 134行目あたりを以下のコードに変更。

    Code: Select all

    OnChangeParameterType(conditionProperty, oldParameterType, parameterType);
    return; // 追加
    
ご不便おかけして申し訳ございません。
修正までの間、一時的に上記暫定対処方法をお試しください。

Guest

Re: ParameterCheckでParameterがintしか選べない

Post by Guest » 2019/05/02 13:53

素早いご対応ありがとうございます。
仰った対処方法をこちらでも適応したところ不具合がなおりました。

User avatar
caitsithware
管理人
Posts: 283
Joined: 2015/08/17 12:41

Re: ParameterCheckでParameterがintしか選べない

Post by caitsithware » 2019/05/02 13:57

ご確認ありがとうございます。

追記となりますが、関連不具合として、ParameterContainerの参照タイプをDataSlotにし、ParameterTypeを変更した場合も同様の例外が発生しております。

暫定対処方法:

こちらにつきましても、以下暫定対処方法で一時的に回避できます。
  • Assets/Plugins/Arbor/BuiltInBehaviours/Editor/Common/ParameterConditionListPropertyDrawer.csをコードエディタで開く。
  • 150行目あたりを以下のコードに変更。

    Code: Select all

    OnChangeParameterType(conditionProperty, oldParameterType, parameterType);
    
    conditionProperty.referenceType = null;
    
    return; // 追加
    
ご不便おかけして申し訳ございませんが、修正までしばらくお待ちください。

Locked