パラメータの練習 - ボタン

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

ボタンは、プレイヤーが新しい領域をアンロックし、ポイントを付与し、宝物を明らかにするのに使用できます。プレイヤーがボタンをタッチするたびに、色を変更したり、音を出したりしていることをプレイヤーに知らせるためのフィードバックを与える必要があります。

この例では、ボタンは橋を有効にするために使用されます。ボタンが押されると、緑に変わり、プレイヤーは橋を使用できるようになります。プレイヤーがボタンを押さなかった場合、それを歩こうとしたときに橋を通り抜けます。

橋を作成する

ブリッジを設定して開始します。

  1. ゲーム内でプレイヤーが橋を必要とするエリアを作成します。

  2. ブリッジ用のパーツを作成し、名前を Bridge に変更します。

  3. プロパティウィンドウで、ブリッジを選択します:

    • 透明度を 変更 に .5。透明度のために、0 が表示され、1 は非表示です。
    • チェック アンカー
    • チェックを外す CanCollide
  4. ゲームをテストし、橋は霧のように見え、人々はまだそれを歩くことができないはずです。

ボタンを作成する

ブリッジが設定されたので、ボタンを作成します。

  1. 新しいパーツ名 ボタン を作成します。
  2. ボタンの色を赤に変更。
  3. ボタンをアンカー
  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() 関数が誤発動する可能性があります。 問題: 出力ウィンドウにエラーが表示され、「ブリッジはワークスペースの有効なメンバーではありません」と言っています 以フォロー中をチェックしてください:

  • ブリッジの名前。スクリプトのブリッジは、エクスプローラーと同じように正確に名前付ける必要があります。
  • その part.Touched:Connect(buttonPressed)buttonPressed() 関数の外にあります。

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

このレッスンのスクリプトは、プレイヤーを特定の領域から排除するドアを保持するのにも使用できます。コーディングスキルを練習し、フォロー中のことを行います:

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

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


local button = script.Parent
-- リマインダー: パーツ、ゲートの名前をプロジェクト内のものに置き換える
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)