Roblox はじめて体験・基礎編

第10回「キャラクターにScriptを設定しよう」

RB10-04

キャラクターに
Scriptを設定しよう

受講を終了する
4. 2段ジャンプを作ろう(4 / 8)
STAR AI・情報塾

2段ジャンプを作ろう

StarterPlayerScripts に LocalScript を挿入し、名前を「 二段ジャンプ 」にして、以下のコードを貼り付けましょう。

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local canDoubleJump = false
local UserInputService = game:GetService("UserInputService")

-- キャラクターの状態が変わった時に呼ばれる
humanoid.StateChanged:Connect(function(old, new)
    if new == Enum.HumanoidStateType.Freefall then
        canDoubleJump = true       -- 空中に出たら2段目のジャンプを許可
    elseif new == Enum.HumanoidStateType.Landed then
        canDoubleJump = false      -- 着地したらリセット
    end
end)

-- ジャンプボタンが押された時に呼ばれる
UserInputService.JumpRequest:Connect(function()
    if canDoubleJump then
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        canDoubleJump = false
    end
end)
動作確認クリップ挿入予定(10-clip01.mp4) 空中でもう一度ジャンプする2段ジャンプの様子(15秒程度)
今は詳しく理解しなくてOK UserInputService(入力を感知する仕組み)やEnum.HumanoidStateType(キャラクターの状態の種類)は少し難しい内容です。今日は「 空中に出たらもう一度ジャンプできるようにする 」という流れをつかめれば十分です。

2段ジャンプできた!!ずっと憧れてた機能が自分で作れるなんて!

Well done!

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