3. 落ちる足場を作ろう(3 / 9)
STAR AI・情報塾

乗ったら落ちる足場を作ろう

ブロックを1つ作り、名前を「 落ちる足場 」にして Script を入れましょう。プレイヤーが乗ってからしばらくして消える、Obbyの定番ギミックです。

local part = script.Parent
local isFalling = false  -- すでに落ちている最中かどうかのフラグ

part.Touched:Connect(function(hit)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)

    if player and not isFalling then
        isFalling = true        -- 落下中にする
        wait(1)                 -- 1秒後に落ちる
        part.Transparency = 1
        part.CanCollide = false

        wait(2)                 -- 2秒後に元に戻す
        part.Transparency = 0
        part.CanCollide = true
        isFalling = false       -- 落下中フラグを戻す
    end
end)
動作確認クリップ挿入予定(08-clip01.mp4) 乗ってから1秒後に落ちる足場の動作(15秒程度)
解説

isFalling は「 今すでに落下中かどうか 」を覚えておくフラグ(0か1かのスイッチのようなもの)です。これがないと、乗っている間ずっと Touched が発生し続けてプログラムが暴走してしまいます。

アレンジ wait の秒数を変えると、落ちるまでの時間や、復活するまでの時間を調整できます。

フラグの考え方、前回のScriptでも似たようなのがあった気がする!だんだん見覚えのある形が増えてきた!

Well done!

次のステップに進みましょう!