いつもお世話になっています。
件名の不具合に遭遇したので、ご報告いたします。
OS: Windows10
Unityバージョン: 2020.3.19f1
Arborバージョン: 3.8.5
再現方法:
1. ArborFSM内にSubStateMachineを追加、SubStateMachine内のパラメータにList型(例えばIntList)を追加
2. ArborFSMのパラメータにList型を作成して、作成したList型を引数にSubStateMachineを呼び出すようにする
3. ParameterTypeMismatchException: It can not be assigned because the parameter type is different.と表示される。
SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
Forum rules
The items necessary for reporting are as follows.
Note:
報告に必要な項目は以下の通りです。
注意点:
The items necessary for reporting are as follows.
- OS(Required)
- Unity version(Required)
- Arbor version(Required)
- How to reproduce(Required)
The reproduction method should be described accurately so that anyone can read the same procedure.
If you do not know the exact reproduction procedure, as long as you can remember it, so please tell us what you were doing immediately before and the last time you edited it. - Build platform
- Reproduction project (Minimum configuration not including Arbor and other assets) or video
Note:
- Please read the "Update Guide" carefully when updating Arbor.
- The bugs that we already know are summarized in "Known Issues", so please check once.
- Please check ReleaseNote and use the latest version if possible before reporting a bug.
- Unity beta and alpha versions are not supported. Please use the official release version.
- In principle, defects caused by the introduction of other assets are not supported. If you find a defect, please report it after isolating which asset is the problem.
報告に必要な項目は以下の通りです。
- OS(必須)
- Unityバージョン(必須)
- Arborバージョン(必須)
- 再現方法(必須)
再現方法については、誰が読んでも同様の手順を行えるよう正確に記述するようにお願いいたします。
もし正確な再現手順が不明な場合、覚えている限りで構いませんので直前に行っていたことや最後に編集した時のことを教えてください。 - ビルドプラットフォーム
- 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画
注意点:
- Arborを更新する際は「アップデートガイド」をよく読み行ってください。
- 既に把握している不具合は「既知の問題」にまとめてありますので一度確認してみてください。
- 不具合報告をする前にReleaseNoteを確認し、なるべく最新バージョンを使用して下さい。
- Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。
- 他アセット導入による不具合は原則サポート対象外です。不具合を見つけた場合はどのアセットの問題であるか切り分けた上でのご報告をお願いいたします。
- caitsithware
- 管理人
- Posts: 495
- Joined: 2015/08/17 12:41
Re: SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
ご報告ありがとうございます。
確認したところ再現できましたので修正いたします。
暫定対象方法
確認したところ再現できましたので修正いたします。
暫定対象方法
- Assets/Plugins/Arbor/BuiltInBehaviours/Scripts/Common/GraphArgumentList.csを開く。
- 283行目を以下のように変更。
Code: Select all
parameter.value = value;
Re: SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
暫定対象方法を実行したところ、エラーは発生しなくなり処理が実行されるようになりました。ありがとうございます。
新たにもう一つ気になる点ができたのですが、
引数として渡したListをSubStateMachine内で操作(要素の削除とか追加)して完了しても、
呼び出し元のListには反映されないのですが、これは仕様でしょうか。
新たにもう一つ気になる点ができたのですが、
引数として渡したListをSubStateMachine内で操作(要素の削除とか追加)して完了しても、
呼び出し元のListには反映されないのですが、これは仕様でしょうか。
- caitsithware
- 管理人
- Posts: 495
- Joined: 2015/08/17 12:41
Re: SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
ご確認ありがとうございます。
アセットへの正式反映はもうしばらくお待ちください。
(現在3.8.6の審査中であるため、その次の3.8.7にて修正する予定です)
パラメーターにList型の値を格納する際にパラメーター内部のList<T>インスタンスに要素を格納しなおす(Clearして各要素をAddする)仕様です。
親グラフ側のパラメーターに反映しなおしたい場合はSubStateMachineからパラメーターを出力してSetParameterしてください。
アセットへの正式反映はもうしばらくお待ちください。
(現在3.8.6の審査中であるため、その次の3.8.7にて修正する予定です)
「呼び出し元のList」とは親グラフ側ということですよね、こちらはパラメーターの仕様となっております。
パラメーターにList型の値を格納する際にパラメーター内部のList<T>インスタンスに要素を格納しなおす(Clearして各要素をAddする)仕様です。
親グラフ側のパラメーターに反映しなおしたい場合はSubStateMachineからパラメーターを出力してSetParameterしてください。
Re: SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
回答ありがとうございます。
確認してみたところ、やりたいことはこれでうまくいきそうです。ありがとうございました。caitsithware wrote: ↑2021/10/01 09:57 親グラフ側のパラメーターに反映しなおしたい場合はSubStateMachineからパラメーターを出力してSetParameterしてください。
- caitsithware
- 管理人
- Posts: 495
- Joined: 2015/08/17 12:41
Re: SubStateMachineの引数にList型を指定して実行すると、 ParameterTypeMismatchException
Arbor 3.8.7にて修正いたしました。
アセットストアから再DLし、リリースノートやreadme記載の更新手順に従って再インポートしてください。
Arbor 3.8.7 リリース | Arbor 3
アセットストアから再DLし、リリースノートやreadme記載の更新手順に従って再インポートしてください。
Arbor 3.8.7 リリース | Arbor 3