バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はunityアセットのPlayMakerのチュートリアル動画をやってみたメモの続きです。
前回の記事はこちら。
使用したunityバージョンは2022.3.6です。




チュートリアル動画を見ながらやってみる
こちらのチュートリアル動画を見ながらやってみます。
クリックしたらテキストを変えるやつ
ゲームオブジェクト ⇒ UI ⇒ キャンバス でキャンバスを追加する。


キャンバスの上で右クリック、UI ⇒ ボタン でボタンを追加。


なんかテキストメッシュプロのインポート画面が出てきたので入れておく。
上のやつ入れたら下のグレーアウトも消えたので下のも入れました。


ボタンにPlay Makerを仕込んで動かすようにしたいのでボタンを選択しながらAdd FSMを選ぶ。


テキストメッシュプロは対応してないっぽい?
テキストメッシュプロだとエラーが出て動かなかった。


多分unityのバージョンによるんだろうけど、 ゲームオブジェクト ⇒ UI ⇒ 古い機能 ⇒ テキスト で追加できるText(Legacy)ってやつならいけた。


これでテキストが書き変わりましたね。
クリックでテキストを変える
stateを作ってset textを追加、グローバルトランジションでUIクリックを追加する。
UI Clickはここね。


これで動いた!
これもう一度クリックしたら戻す…という動作を実装しようとしたけど、変数を制御するActionを使わないとだめっぽい?
グローバルじゃないトランジションで双方向に遷移させたらオンオフの切り替えができた
グローバルトランジションだとどの状態からでも必ず呼び出されるから、切り替えるならこっちのほうが良いかもしれないですね。
トグル(チェックボックス)でテキストを切り替えるやつ
チェックボックスでbool値のtrueとfalseを切り替えられるみたいです。
キャンバスの上で右クリック、UI⇒トグルを選ぶ。


トグルにAdd Stateで状態を追加しておく。


ここが重要なのだけど、チェックボックスをtrueとfalseで切り替えるには、
- boolを判定するstate
- trueのstate
- falseのstate
の三つが必要になるっぽい。
VRChatのUdonノードグラフではBranchを使えば分岐させられたけど、このあたりはモノによって仕様が違いますね。
三つの状態を作っておく。


判定を行うBool Checkの上で右クリック、グローバルトランジション ⇒ UI Events ⇒ UI BOOL VALUE CHANGED を選ぶ。


これbool以外にもintやfloatとかもあるから、変数作ってこれで条件分岐させられる感じかな。
分岐させるBool CheckにはGet Event Bool Dataアクションを追加しておく必要があるっぽい。


ここでもintやfloatのGet命令があるので、整数や浮動小数点の分岐もこれでできると思います。
これで新規変数を作れば制御用のbool変数が作れるっぽい。


Bool TestアクションでTrueとFalseの分岐を作る
Bool CheckにBool Testアクションを追加して、Bool Variablesにさっき作った変数を割り当てる。
Is TrueとIs Falseにイベントを割り当てることで分岐させられるっぽい。


これで分岐させれば良いっぽい。
CheckedとUnCheckedにUI Text Set Textアクションを追加して、それぞれtrueとfalseと表示されるようにしておけばOK。


これで動きました。
trueにならない時の対処法
最初やった時falseにしかならなくなった。
やり直したら直ったんだけど、多分↓ここかな?
true作った時に赤い警告文をクリックするとtrueとfalseの選択肢を出してくれるんだけど、↑でダメだった時は自分でtransitionを作ってやったからダメだったのかもしれない。
↑あとBool Variablesのところにもboolの変数を指定しておくのも忘れすに。
ダメなら最初からやり直したらいけると思います。
つづく
ちょっと長くなりそうだから続く。
これドロップダウンメニューやテキストボックスも作れるっぽいので、ゲーム以外にもunityで動くアプリとか作れそうですね。
まぁそのあたりについては次回の記事で触れます。