テレポート場所が3か所あり、A→B→C→A という具合に移動できるようにしたいと思います。もちろん、さらに多くても構いません。
- Part を3つ設置します。名前は、PartA、PartB、PartC にします。
- それぞれ3つの Part に、ObjectValue を入れ、名前をGoalにします。
- そのプロパティ Value に移動先のパーツを設定します。例)PartAならPartBを
- 各Part にScriptを追加し、以下のプログラムを入力します。各パーツに入れるプログラム内容はすべて同じものになります。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local part = script.Parent
local goal = part.Goal.Value
part.Touched:Connect(function(hit)
-- キャラクターモデルとゴール先のパーツをパラメータにする
ReplicatedStorage.MoveEvent:Fire(hit.Parent,goal)
end)
- ReplicatedStorage に BindableEvent を追加し、名前を MoveEvent にします。
- ServerScriptService に Script を追加し、以下のプログラムを入力します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
ReplicatedStorage.MoveEvent.Event:Connect(function(character,to)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid and to.Script.Enabled == true then
to.Script.Enabled = false
game:GetService("RunService").Stepped:wait()
local hrp = character.PrimaryPart
hrp.CFrame = to.CFrame + Vector3.new(0,3,0)
wait(2) -- 2秒間はタッチイベントを発生させない
to.Script.Enabled = true
end
end)