トラップを使ったif/thenの練習

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

プレイヤーの健康を減少させるトラップは、条件文を使用してコーディングできる楽しいゲームプレイ要素です。触れたときにプレイヤーの健康をゼロに設定するパートを作成することで条件文を練習しましょう。

トラップのセットアップ

トラップは、オビーのような動きに基づくチャレンジのある体験で特に効果的です。これから必要な変数と関数をセットアップしていきます。まずはコードボックスを見ずにできるところまで進めましょう。

  1. トラップパートを作成し、名前を付けます。そのパートにスクリプトを挿入します。

  2. スクリプト内に説明的なコメントを追加し、その後で変数を使ってスクリプトの親を参照します。


    -- プレイヤーがこの部分に触れた場合、彼らの健康を0に設定
    local trapPart = script.Parent
  3. onTouch()という名前の関数を作成し、otherPartというパラメータを設定します。


    -- プレイヤーがこの部分に触れた場合、彼らの健康を0に設定
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. 関数をトラップパートのTouchedイベントに接続し、何かがそのパートに触れるたびに実行されるようにします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

プレイヤーの接触を確認

otherPartというパラメータは、トラップパートに何かが触れたことを記録します。それはプレイヤーの一部か、単にベースプレートである可能性があります。

トラップがプレイヤーのみを破壊し、ランダムな装飾アイテムを破壊しないように、if/then文を使用してotherPart にヒューマノイドオブジェクトが含まれているかを確認します。

特定のオブジェクトを探す

FindFirstChildWhichIsA()関数を使用して特定のオブジェクトタイプを探すことができます。これは、ヒューマノイドタイプのオブジェクトを探しているので便利です。プレイヤーはおそらくアバターの一部だけでトラップに触れるので、接触したパートの親を見つけ、ヒューマノイドを探すための変数を設定する必要があります。

  1. onTouch()内で、local character = otherPart.Parentを入力します。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- otherPartの親オブジェクトを探します
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. characterHumanoidがあるかどうかを確認します。また、以下のように入力します。

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

if文で確認

ヒューマノイドが見つかった場合、ヒューマノイドの健康をゼロに設定します。

  1. if文を使用して、ヒューマノイドがlocal humanoidに正常に割り当てられたかを確認します。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価します
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. print文を追加し、ここまでのコードを確認します。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価します
    if humanoid then
    print("ヒューマノイドを見つけました")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. 実行ボタンを押し、プレイヤーがそのパートに触れるたびに出力が見えることを確認します。

プレイヤーの健康を変更

もし条件が真であれば、同じヒューマノイド変数を使ってプレイヤーの健康を0に設定できます。

  1. thenendの間にhumanoid.Health = 0と入力します。

    完成したスクリプト

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価します
    if humanoid then
    print("ヒューマノイドを見つけました")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. トラップをテストします。

まとめ

このトラップパートは、条件文を使用してヒューマノイドのパーツを検出し、ヒューマノイドの健康をゼロに設定しました。このスクリプトは、触れたオブジェクトにかかわらずすべてを破壊してしまう前のトラップスクリプトの改善版です。

しかし、いくつかの欠点も残っています。ヒューマノイドはプレイヤーのみに存在するわけではありません。ヒューマノイドはNPCにも存在します。このスクリプトは、プレイヤーの健康をゼロに設定するのにのみ有効です。少しずつ健康を減らす実験を行うこともできますが、望ましいよりも早く健康を減らしてしまう可能性があります。後のレッスンでは、プレイヤーからどれくらいの健康を減らすかをより細かく制御するためのさらなる改善が提供されます。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。