Page 1 of 1

外部スクリプトからのParameterContainerの操作

Posted: 2016/06/03 00:54
by hassy
既存のライブラリと連携させるために、外部からParameterContainerの値を操作することは可能でしょうか。

例えば、MIDI入力を取得する既存のライブラリがあったとして、取得した値をParameterContainerに渡して、FSMがParameterContainerの値を参照しつつステートをかえる、ようなイメージです。外部のスクリプトから、SendMessage / UnityEvent / ExecuteEventsなどでParameterContainerとやり取りするような事例がどこかにあると助かります(やり取りできるなら他の手法でもかまいません)。

Re: 外部スクリプトからのParameterContainerの操作

Posted: 2016/06/03 03:35
by caitsithware
ParameterContainerクラスには直接パラメータの編集が行えるようなメソッドを用意してありますので、スクリプトからそれらを使用して値を渡すことができます。
ParameterContainerクラスリファレンス
SetIntやSetFloatなどでは名前と値を指定することで設定できます。
それ以外の型であれば、GetParam()でParameterを取得し、値を設定後ParameterのOnChanged()を呼び出すことで反映されるようになります。
Parameterクラスリファレンス

SendMessageなどに関しては指定できるメソッドの形式に制限があるため使用できません。
既存ライブラリがそれらイベント機能に対応していたとしても、既存ライブラリとArbor間でデータをやり取りするためのスクリプトは別途必要になります。

また、単に既存ライブラリとArborの橋渡しとしてParameterContainerを使用するとお考えの場合は、ParameterContainerを介さず既存ライブラリ用のStateBehaviourを作成し、
ArborFSM内で直接既存ライブラリから得た値を判定する、という流れもよいかと思います。

Re: 外部スクリプトからのParameterContainerの操作

Posted: 2016/06/03 10:29
by hassy
ありがとうございます、無事コンテナの値の操作ができるようになりました。
アドバイス頂きました専用のStateBehaviourを作成する件も並行して検討します。