クリックしたプレイヤーの移動を制限するには?
koyoshi.icon
「TextButton01」をクリックすると、クリックしたプレイヤーの移動を制限するには?
Copilot.icon(クイック応答)
「TextButton01」をクリックしたプレイヤーだけの移動を制限したい場合は、LocalScript を使ってそのプレイヤーの Humanoid の WalkSpeed や JumpPower を変更するのがベストです。以下にその方法を紹介します。 🎮 ローカルプレイヤーの移動を制限するスクリプト例
このスクリプトは StarterGui に配置された TextButton01 に対応する LocalScript です:
code:lua
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent:WaitForChild("TextButton01")
button.MouseButton1Click:Connect(function()
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- 移動とジャンプを制限
humanoid.WalkSpeed = 0 -- 標準の移動速度は 16
humanoid.JumpPower = 0 -- 標準のジャンプ力は 50
print("移動が制限されました!")
end)
✅ 補足ポイント
LocalPlayer はそのスクリプトを実行しているプレイヤーを指します。他のプレイヤーには影響しません。
CharacterAdded:Wait() を使うことで、キャラクターがまだ生成されていない場合にも対応できます。
この処理はクライアント側で行われるため、セキュリティが必要な場合はサーバー側でも制御を加えることをおすすめします(例:RemoteEventを使ってサーバーに通知し、サーバーが移動制限をかける)。 もし「一定時間だけ止めたい」「クリック後にアニメーションを再生したい」など、さらに演出を加えたい場合もできますよ。どんなゲームに使う予定か、ちょっと教えてくれたらもっと面白くできそうです!