你如何在 Roblox 中传送角色而不留下残留物?

Posted

技术标签:

【中文标题】你如何在 Roblox 中传送角色而不留下残留物?【英文标题】:How do you teleport characters in Roblox without leaving residue? 【发布时间】:2022-01-05 18:53:29 【问题描述】:

如何在 Roblox 中传送角色而不导致 HumanoidRootPart 与角色不同步?我发现仅移动 HumanoidRootPart 会导致角色的其余部分快速回到您希望它们所在的位置,但对于服务器来说,它仍然在传送之前就位。有没有更好的方法?

【问题讨论】:

您能提供更多上下文吗?在某些情况下,传送不起作用。例如,从您自己的客户端移动另一个玩家的角色。 @kojocrash 我给的只是一个传送角色的例子,移动角色应该在服务器中完成。 @kojocrash 堆栈溢出的一个特性,用来传播知识。我使用它的原因是我发现model:MoveTo()在服务器上看起来更好,并且可以与所有模型一起使用。 啊好吧。关于model:MoveTo(pos) 需要注意的一件事是,如果目标位置有物体阻挡,模型将传送到物体上方的位置。但是,model:SetPrimaryPartCFrame(cf) 不会反映这种行为。这完全取决于您要达到的目标。 【参考方案1】:

是的,您可以使用model:MoveTo() 移动模型(字符即模型)。

例如,一个简单的传送器:

local debounce = false

-- the teleporter is just a part with the script it's child
script.Parent.Touched:Connect(function (hit)

    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    
    if player and not debounce then
        debounce = true
        
        local char = player.Character
        local rootPart = char:WaitForChild("HumanoidRootPart")
        
        char:MoveTo(rootPart.Position + Vector3.new(0, 10, 0))
        
        wait(.5)
        debounce = false
    end
end)

【讨论】:

以上是关于你如何在 Roblox 中传送角色而不留下残留物?的主要内容,如果未能解决你的问题,请参考以下文章

与 npc 交谈后如何在 ROBLOX 中传送某人

如何基于相机旋转角色? (Roblox)

你如何让roblox中的动画不重叠

如果玩家在 Roblox 中有游戏通行证,我如何传送玩家

当他们加入时,你如何加载玩家角色?

win7系统如何清理注册表残留