CyanTriggerでVRC脱出ゲームを作りたい④ーパスワードギミック・正解の判定編 後半ー
前回の記事では、各ボックスと"controller"との紐づけを行いました。今回はいよいよ、"controller"で各ボックスの値がパスワードと一致しているかどうかを判定していきます。
※画像については後ほど追加致します。
画像(予定)
パスワードギミック作成手順
④パスワードが一致しているか判定する
"controler"の"Inspector"を開いてください。まずは"Add Event"から"Custom"を追加しましょう。"Name"は"try_unlock"としました。
ここにパスワードが合っているか判定するための条件を入れていきます。パスワードは「1234」として、説明を続けます。
今回は、まず一番左のAの値を見て、それが正しければBの値、Cの値というふうに順にパスワードをチェックしていく条件を作っていきます。
④-1 ボックスAの値の判定
先ほど作った"Custom Event"の"Actions"のすぐ下の辺りで右クリックしてください。そこででてきた"Add Action"→"Special"→"If"を選択します。
そうすると"Condition"や"ConditionBody"が出てくると思うので、"Condition"の上で右クリックしてください。そして、"Add Action"→"int"→"int.Equals"を選択します。
"int"の右の"Input"となっている所を押して、"Variable"を選択してください。そして、その右側で"box_A"を選択します。
パスワードの一番最初の数字は"1"なので、"obj"の"Input"は"1"にしましょう。
"out bool"の右"+New"を押すと、"condition bool"が出てくるので、それを選択しましょう。
画像9(予定)
④-2 ボックスBの値の判定
今回はAの値が正しかったらBの値の判定に移る、というふうにしたいので、AとBを入れ子にする形で条件を追加していきます。
④-1の"ConditionBody"の上で右クリックしてください。そして、"Add Action→Special→If"を選択します。
次に、④-1と同様に"Condition"の上で右クリックしてください。そして、"Add Action→int→int.Equals"を選択します。ここでは、ボックスBの値の条件を追加したいので、"int"の横の"Input"となっている所を押して、"Variable"を選択したら、その右で"box_B"を選択します。
パスワードの2番目の数字は"2"なので、"obj"の"Input"は"2"にしましょう。
④-1同様に"out bool"の右"+New"を押すと、"condition bool"が出てくるので、それを選択しましょう。
画像10(予定)
④-3 ボックスC、Dの値の判定
④-1、④-2で行ったのと同様に、C、Dの条件を追加してください。
画像11(予定)
⑤"UdonBehavior"の追加
"controler"の、②で作った"set_box_A"の"int.Set"の下にアクションを追加していきます。
"+"をクリックしたら"UdonBehavior"→"SendCustomEvent"を選択します。"Variable"は"This UdonBehavior"になっていると思うので、そのままで大丈夫です。その下の"event Name"は"Input"を"try_unlock"にしてください。
ボックスC~Dにも同様の操作を行ってください。
⑥ パスワード正解時のアクションの指定
今回は、パスワードが合っていたら音を鳴らす、というものにします。
"controler"の"If"を使ってパスワードの指定をした所に戻ってください。
ボックスDの条件を指定した部分の下、"ConditionBody"で右クリックして、"Add Action"→"AudioSource"→"AudioSource.Play"を選択します。
前回、前々回の記事と同じ手順で"Audio Source"を追加しましょう。
お疲れ様です!
本当によくがんばったな。お前の苦労を……
参考にしたサイト等
https://github.com/CyanLaser/CyanTrigger/wiki
Special Thanks
りーふでさん