完成動画
はじめに
今回は、近接プロンプト(ProximityPrompt)を使って、プレイヤーが運転席に座る方法を紹介します。
使用する機能
- ProximityPrompt(近接プロンプト)
プレイヤーがパーツに近づくと操作可能なUIが表示される仕組み。 - VehicleSeat(運転席)
プレイヤーが操作できる座席。車を動かすのに使われます。 - Disabledプロパティ
機能を一時的に無効化するための設定。
手順動画
エクスプローラー構成
Workspace
└Jeep
└DriveSeat(VehicleSeat)
├ProximityPrompt
└Scriptプロパティの変更箇所
DriveSeat(VehicleSeat)
Disabledをオフからオンに変更
Disabledがオンだと、VehicleSeatの機能が無効になり、座れなくなります。
スクリプトの内容
local seat = script.Parent
local prompt = seat:FindFirstChildOfClass("ProximityPrompt")
-- 最初は座席を無効化(勝手に乗れないように)
seat.Disabled = true
-- ProximityPromptが発火したときの処理
prompt.Triggered:Connect(function(player)
local character = player.Character
if not character then return end
local root = character:FindFirstChild("HumanoidRootPart")
if root then
-- Seatを一時的に有効化
seat.Disabled = false
-- ProximityPromptを非表示にする
prompt.Enabled = false
-- プレイヤーを座席位置にワープ(自動で座る)
root.CFrame = seat.CFrame + Vector3.new(0, 2, 0)
end
end)
-- プレイヤーが降りたとき(Occupantがnilになる)→ Seatを無効化&プロンプトを再表示
seat:GetPropertyChangedSignal("Occupant"):Connect(function()
if seat.Occupant == nil then
-- 降りたら再び座席を無効に
seat.Disabled = true
-- ProximityPromptを再び表示
prompt.Enabled = true
end
end)1. SeatとProximityPromptを取得する
local seat = script.Parent
local prompt = seat:FindFirstChildOfClass("ProximityPrompt")Scriptの親にあるDriveSeatと、その中にあるProximityPromptを取得します。
2. 最初はSeatを無効にしておく
seat.Disabled = trueゲーム開始時にSeatが有効だと、近づくだけで勝手に乗れてしまうため、ここで無効化しておきます。
3. ProximityPromptが押されたときの処理
prompt.Triggered:Connect(function(player)
local character = player.Character
if not character then return end
local root = character:FindFirstChild("HumanoidRootPart")
if root then
seat.Disabled = false
prompt.Enabled = false
root.CFrame = seat.CFrame + Vector3.new(0, 2, 0)
end
end)
- プレイヤーがProximityPromptを押すと発火。
- プレイヤーの位置をSeatの真上にワープさせる。
- Seatを一時的に有効化することで自動で乗れるように。
- プロンプトは一度非表示にします(押しっぱなし対策)。
4. 降りたときの処理
seat:GetPropertyChangedSignal("Occupant"):Connect(function()
if seat.Occupant == nil then
seat.Disabled = true
prompt.Enabled = true
end
end)
- プレイヤーが降りたことを検知します(
Occupantがnilに)。 - Seatを再び無効化。
- ProximityPromptを再び表示して、次のプレイヤーにも使えるようにします。
まとめ
本記事では、ProximityPrompt(近接プロンプト)を使って、プレイヤーが車の運転席に移動する方法を紹介しました。
ポイントは、VehicleSeat の Disabled プロパティを使って、最初は座席に勝手に座れないようにしておくことです。プレイヤーがプロンプトを押したときにだけ Disabled をオフにして乗れるようにし、その後は再び無効化して制御します。




コメント