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

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。

Here is the forum to do the questions about how to use to Arbor developer.
rrr

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

Post by rrr » 2019/02/20 06:33

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

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

Image

rrr
Posts: 5
Joined: 2019/02/20 06:36

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

Post by rrr » 2019/02/20 06:50

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

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

Code: Select all

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

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

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

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

Post by caitsithware » 2019/02/20 07:02

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チェックなどは必要に応じて書いてください。)

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

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

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

Post by caitsithware » 2019/02/20 07:05

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

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

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

Code: Select all

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

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

rrr
Posts: 5
Joined: 2019/02/20 06:36

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

Post by rrr » 2019/03/08 16:05

お返事遅れました。
大変参考になりました。ご回答ありがとうございました。

Post Reply