【Unity】Arbor3のparameter containerを使うときに知ってると便利なことメモ
Unity、コーディングの経験が浅いわたしはもっぱら『Arbor3』を使ってる。
もはやわたしのUnityエディタの骨幹になっているんですけども、特に使い倒しているのが『parameter container』!
厄介な変数の格納をちょちょいっとやってくれる良い子なんですけど、変数格納したからには参照とか色々したいですよね?
これが、スクリプトでできるようになるまで割と調べ倒したので今回はメモとして書いておこうかな、っと思います。
プログラマーの人ならスクリプトリファレンス読めばすぐにわかるんだろうけども、ほら、わたし英語ダメだし…リファレンスの読み方とかよくわかんないから……
〜そんな奴でも扱える!parameter container講座〜
◆はじめに
using Arbor;
まず、parameter containerをスクリプトでなんとかしたい場合、必ずusingにこれを入れましょう。
●『parameter container』をスクリプトで参照する
//パラメーターコンテナの参照
public IntParameterReference intParameter;
publicで書くことで、parameter containerのうち一つの要素を参照させることができます。
すると、こんな感じのが出てくるので、FSM上でペイっと放り込めば参照できます。
//ParameterContainerの設置
public ParameterContainer ParameterContainer;
要素一つだけじゃなくってparameter container全部を参照したい場合はこれ。
●『parameter container』の値をスクリプトで引用する
ItemID = intParameter.parameter.intValue;
前提として、先ほどのようにpublicで参照していた場合、変数名を使えば良いんですけど、こんな感じで「.parameter.(変数の型)Value;」というのをつける必要があります。
例はint型ですが、stringなら「stringValue;」って具合に対応します。
●『parameter container』に値をスクリプトで格納する
intParameter.parameter.intValue = 5;
格納したい場合は逆にすればええんや!!
●『parameter container』をGameObjectから検索し要素を取得、または格納する
//変数testから現在の数値を取得した後,1加算した数を格納し直す
int test;
gameObject.GetComponent<ParameterContainer>().TryGetInt("test", out test);
int rum = test + 1;
gameObject.GetComponent<ParameterContainer>().SetInt("test", rum);
それで、1番の要はこれだと思うんですけど。
場合によってはpublicで参照できない場合もあるじゃないですか。
例えば『タップしたGameObjectの要素を抜き出したい』とかいう場合ね。何をタップするのかわからないし。
そういう場合は、このようにGameObjectからparameter containerを検索できます!
この例文では、GameObjectにアタッチされてるparameter containerから「test」という要素を検索して、値を取得した後、1を加算して格納しています。
このような検索にも対応しているので、自由自在に変数を取り扱うことができますよ!
なお、これらのことは組み込みビヘイビアで出来たりもするので、用途によって使い分けてね。
最近追加された新機能では、さらに便利なパラメーター管理も増えたみたいでオラ、ワクワクすっぞ!!
この記事が気に入ったらサポートをしてみませんか?