パラメータ練習 - ボタン

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ボタンはプレイヤーが新しいエリアをアンロックしたり、ポイントを与えたり、宝物を明らかにしたりするために使用できます。プレイヤーがボタンに触れると、色を変えたり音を出したりして、インタラクションが行われていることを知らせるフィードバックを提供する必要があります。

この例では、ボタンを使用して橋をアクティブにします。ボタンが押されると、緑色に変わり、プレイヤーは橋を使用できるようになります。プレイヤーがボタンを押していない場合、橋の上を歩こうとすると落ちてしまいます。

橋を作る

まず、橋を設定します。

  1. プレイヤーが橋を必要とするエリアを環境に作成します。

  2. 橋のためのパートを作成し、名前を「Bridge」に変更します。

  3. 橋を選択し、プロパティウィンドウで:

    • Transparency を .5 に変更します。Transparency の 0 は可視、1 は不可視です。
    • Anchor にチェックを入れます。
    • CanCollide のチェックを外します。
  4. ゲームをプレイテストすると、橋は霧のように見え、人々はまだ橋の上を歩けないはずです。

ボタンを作成する

橋が設定されたので、ボタンを作成します。

  1. 新しいパートを作成し、名前を「Button」にします。

  2. ボタンの色を赤に変更します。

  3. ボタンをAnchorします。

  4. ボタンを少し浮かせて、何にも触れないように移動させます。これは、Touched イベントが誤って発火しないようにするためです。

ボタンをインタラクティブにする

今回は、Touched イベントを使用してトラップを作成するのではなく、橋を使用可能にするボタンを作成します。橋を衝突可能にするには、プレイヤーがボタンに触れたときに実行されるカスタム関数内で bridge.CanCollide = true のコードを使用します。他の必要なことはすべて知っているので、次のステップを完了してください。

コードソリューションを見る前に、自分で考えてみてください。

  1. ボタンに「ActivateBridge」という名前の新しいスクリプトを挿入します。
  2. Hello World を削除します。
  3. 橋とボタンのための変数を作成します。
  4. ボタンが触れられたときに以下のことを行うローカル関数を作成します:
    • "button touched" を出力します。
    • ボタンが触れられたときに、ボタンの色を赤から緑に変更します。
    • 橋の透明度を 0 に変更して可視にします。
    • bridge.CanCollide = true のコードを使用して橋を使用可能にします。
  5. 関数をボタンの Touched イベントに接続します。
  6. スクリプトをテストし、ボタンが触れられたときに橋が表示されることを確認します。

コードソリューション 以下は、1つの可能なコードソリューションです。

-- このスクリプトをボタンに挿入します
-- 何かがボタンに触れたときにボタンを緑にします。
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

コードのトラブルシューティング

問題: ゲームが開始したときに橋がすでに固体です。 パーツがアンカーされていて、何にも触れていないことを確認してください。パーツが地形や別のパーツに触れていると、buttonPressed() 関数が誤って発火する可能性があります。

問題: 出力ウィンドウに「Bridge is not a valid member of Workspace」というエラーが表示されます。 以下を確認してください:

  • 橋の名前。スクリプト内の橋は、エクスプローラー内の名前と正確に一致している必要があります。
  • part.Touched:Connect(buttonPressed)buttonPressed() 関数の外にあること。

オプションのコードチャレンジ

このレッスンのスクリプトは、特定のエリアからプレイヤーを締め出すドアを保持するためにも使用できます。コーディングスキルを練習し、以下を行ってください:

  • ドアパートを作成します。
  • ドアから離れた場所にボタンを作成します。
  • このレッスンのスクリプトを変更して、ドアの透明度を変更し、プレイヤーが衝突できないようにします。

あなたのバージョンは次のようになるかもしれません:

local button = script.Parent
-- 注意: パートの名前 Gate をプロジェクト内のものに置き換えてください
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- プレイヤーにフィードバックを与えるためにボタンを赤に変更
button.BrickColor = BrickColor.Red() -- ここを変更
-- ゲートを不可視にします
gate.Transparency = 1
-- プレイヤーがゲートを通り抜けられるようにします
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。