Page 1 of 1

サイドパネルで作成したパラメーターをそのFSM内で参照して使いまわせませんか?

Posted: 2019/02/20 06:33
by rrr
同じgameobjectにアタッチしたコンポーネントが、他のコンポーネント間からGetComponentで参照できるように
FSMエディターのサイドパネルで作成したパラメーターを、各ノードにアタッチされたスクリプトからGetParameterのような形で参照する方法はないでしょうか

各ノードそれぞれが、とある1つのパラメーターを参照したいのですが、ノード毎にパブリックなフィールドを用意して、そこに同じものをひとつひとつアタッチしていくのが面倒なため、スクリプト内で完結する方法があれば知りたいです。

Image

Re: サイドパネルで作成したパラメーターをそのFSM内で参照して使いまわせませんか?

Posted: 2019/02/20 06:50
by rrr
それともうひとつ質問があります。
サイドパネルのパラメーターをノードから受け取る正規の使い方もわかりません。
InputSlotAny型を用意して、ノードからパラメーターの接続はできているのですが、
入力を受け取ったスロットから中のValueを受け取る方法がわかりません。

受け取った後どのようにすればよいのでしょうか

Code: Select all

    [ClassExtends(typeof(SkeletonAnimation))]
    public InputSlotAny spineSkeltonAnimation = new InputSlotAny();
    SkeletonAnimation_spineSkeltonAnimation;

    // Use this for initialization
    void Start()
    {
        // 中身を受け取りたいがわからない
        // _spineSkeltonAnimation = spineSkeltonAnimation....
    }
Image

Re: サイドパネルで作成したパラメーターをそのFSM内で参照して使いまわせませんか?

Posted: 2019/02/20 07:02
by caitsithware
rrr wrote: 2019/02/20 06:33 同じgameobjectにアタッチしたコンポーネントが、他のコンポーネント間からGetComponentで参照できるように
FSMエディターのサイドパネルで作成したパラメーターを、各ノードにアタッチされたスクリプトからGetParameterのような形で参照する方法はないでしょうか

各ノードそれぞれが、とある1つのパラメーターを参照したいのですが、ノード毎にパブリックなフィールドを用意して、そこに同じものをひとつひとつアタッチしていくのが面倒なため、スクリプト内で完結する方法があれば知りたいです。
スクリプトからグラフ内パラメータへの参照方法についてですね。

以下のようなコードで取得できます。

Code: Select all

SkeltonAnimation skeltonAnim = nodeGraph.parameterContainer.GetParam("SpineAnimation").objectReferenceValue as SkeltonAnimation;
(parameterContainerやGetParamは見つからない場合にnullになります。nullチェックなどは必要に応じて書いてください。)

スクリプトリファレンスへの参考リンク

Re: サイドパネルで作成したパラメーターをそのFSM内で参照して使いまわせませんか?

Posted: 2019/02/20 07:05
by caitsithware
rrr wrote: 2019/02/20 06:50 それともうひとつ質問があります。
サイドパネルのパラメーターをノードから受け取る正規な使い方もわかりません。
InputSlotAny型を用意して、ノードからパラメーターの接続はできているのですが、
入力を受け取ったスロットから中のValueを受け取る方法がわかりません。

受け取った後どのようにすればよいのでしょうか
InputSlotAnyに渡された値の取得方法ですね。

以下のようなコードでできます。

Code: Select all

spineSkeltonAnimation.GetValue<SpineAnimation>(ref  _spineSkeltonAnimation);
(InputSlotAny.GetValueは接続されていない場合にfalseを返すので、必要に応じてチェックしてください。
また、型が異なる場合は例外が発生しますのでご注意ください。)

スクリプトリファレンスへの参考リンク

Re: サイドパネルで作成したパラメーターをそのFSM内で参照して使いまわせませんか?

Posted: 2019/03/08 16:05
by rrr
お返事遅れました。
大変参考になりました。ご回答ありがとうございました。