ボタンは、プレイヤーが新しいエリアのロックを解除したり、ポイントを与えたり、宝物を発見したりする場面で使われます。プレイヤーがボタンに触れるたびに、色を変えたり音を鳴らしたりするなど、ボタンが操作されたことが分かるようにする必要があります。
ここの例では、橋を渡れるようにするためにボタンが使用されます。ボタンが押されると緑に変わり、プレイヤーは橋を渡れるようになります。ボタンを押さなければ、プレイヤーは橋の上から落ちてしまいます。
パーツを設定する
- 谷や川などに橋を設置します。
 - 橋のパーツを作成し、名前を Bridge に変更します。
 - Properties(プロパティ)ウィンドウで Bridge を選択します。
- Transparency(透明度)を 0.5 に設定します。透明度0が見える状態で、1が見えない状態です。
 - Anchored(固定)をONにします。
 - CanCollide(衝突)のOFFをします。(OFFが通り抜ける)
 
 - テストプレイします。橋は半透明になっていて、渡れないはずです。
 
ボタンを作成する
橋の設定が終わったので、次はボタンを作成します。
- Button という名前の新しいパーツを作成します。
 - ボタンの色を赤に変えます。
 - ボタンを固定します。
 - ボタンを少し浮かし、どこにも触れていない状態にします。
 
ボタンをインタラクティブにする
今回は、Touchedイベントを使ってトラップを作るのではなく、橋を使えるようにするボタンを作るために使います。
スクリプトを作成する
橋を渡れるようにするには、プレイヤーがボタンに触れたときに実行されるカスタム関数の中で、「bridge.CanCollide = true」というコードを使用します。もう、以下の手順を読まなくて分かると思います。
正解のコードを見る前に自分でコーディングしてみましょう。
- ActivateBridge という名前のボタンにスクリプトを挿入します。
 - 新しいスクリプトで Hello World を削除します。
 - 橋とボタンの変数を作成します。
 - ボタンに触れると以下の動作を行うカスタム関数を作成します。
- “button touched”とOutputウィンドウに表示する
 - ボタンの色を緑に変える
 - 橋の透明度を0にして見えるようにする
 - コード bridge.CanCollide = true を使用して橋を渡れるようにする
 
 - 関数をボタンの Touchedイベントに紐づけます。
 
local button = script.Parent
local bridge = game.Workspace.Bridge
 
local function buttonPressed()
    print("button touched")
    button.BrickColor = BrickColor.new(0,0.7,0)
    bridge.Transparency = 0
    bridge.CanCollide = true
end
 
button.Touched:Connect(buttonPressed)
スクリプトをテストする
- テストプレイで、プレイヤーがボタンを押すと橋を渡れるようになるか確認します。
 
コードのトラブルシューティング
問題:ゲーム開始時にすでに橋が渡れる状態になっている。
・パーツが固定され、他のものに触れていないことを確認します。パーツが地形などの他のパーツに触れていると、意図せず buttonPressed() 関数が実行されてしまうことがあります。
トラブルシューティングのヒント
・Outputウィンドウに“Bridge is not a valid member of Workspace”というエラーが表示された場合、橋の名前を確認してください。スクリプトの Bridge は Exploere のものと同じ名前を使用する必要があります。・part.Touched:Connect(buttonPressed) が buttonPressed() 関数の外にあることを確認します。
[ 【5】if/then文を使用する ]
