前回はボタンを押すと床が消えるギミック(落とし穴)を作成したのですが、それでは一回きりになるため、押すごとに消えたり現れたりできるようにします。
ボタン側の設定
ボタンとなるオブジェクトに「Global Logic」コンポーネントを追加します。これは特定のメッセージを受け取った時に、計算結果を別のメッセージに通知するものです。
Targetには「Global」、Keyには「objectToggle」としておき、さらに「+」ボタンを押し、項目を追加します。固定値である「Global」の横に「objectActive」、「Bool」とします。2行目は「=Not」、3行目は「RoomState」、「Bool」、「objectActive」と指定します。
また前回設定した「Interact Item Trigger」コンポーネントの再設定を行います。アイテムとして使われた、つまり触ったことを通知するトリガとなります。
前回とは異なり、「Global Logic」コンポーネントに計算をさせたいので、Keyを「objectToggle」に、Valueを「Signal」に変更します。
動作確認
実際にアップロードして動かしてみます。ボタンをクリックすると消え、もう一度クリックすると現れるようになりました。
最初のクリックでも消えるようにする
交互に消えたり、現れたりするようになったのですが、実は最初のクリックの時に消えません。それを修正するため、初期値の設定が必要です。「On Create Item Trigger」コンポーネントを追加して、「+」ボタンで項目を追加し、Targetには「Global」、Keyには「objectActive」、Valueは「Bool」としておきます。右のチェックボックスはチェックを入れておきましょう。
ボタン側の設定
ボタン側のオブジェクトに”Interact Item Trigger”というコンポーネントを追加します。このコンポーネントは、”使う”(クリックされる)機能を追加し、使われたことを通知するトリガーです。
つまり、触られたことをTagetに対して通知するものです。”+”ボタンを押して項目を追加し、Targetには「Global」、その横にはKeyとして「objectActive」、さらにValueは「Bool」とし、その右のチェックボックスはチェックを外しておきます。
再度、動作テスト
ワールドアップロードして動作確認です。最初のクリックで消えるようになりました。
消えました!ただ、床を再度、戻す方法がありません。
マルの方も作成
同様にマルの方もコピーして作成します。作り方はバツと一緒ですが、バツとマルではちがうKeyを使わないと同じ動きとなってしまうので、「objectActive」は「objectActive2」に、「objectToggle」は「objectToggle2」に変更しておきます。
またもや動作確認
マルバツで動作確認です。どちらもクリックで消え、再度クリックで現れるようになりました。基本的な動きはこれで問題ないかと。
次回は外観を整えてお城っぽくしてみたいです。