了解如何在 Roblox 中访问玩家坐标可能是一个复杂而晦涩的过程。但是,如果您找到一种到达坐标并操纵它们的方法,那么您将为利用游戏的其他创造性功能和测试您的编程技能奠定坚实的基础。
在本文中,我们将向您展示如何在 Roblox 中查找玩家坐标。
如何在 Roblox 中获取坐标?
为了找到角色、对象和地点的坐标,您需要学习如何在 Roblox Studio 中编写脚本。该平台使您能够创建自己的世界和区域,并根据您的喜好对其进行自定义。
在编写脚本时,您需要利用基本信息来最大限度地发挥工作室脚本的潜力。这种数据的一个很好的例子是坐标,即玩家位置。
到达玩家的位置(服务器端)将需要您转到玩家的角色属性。 (玩家。角色)。但在此之前,您需要找到玩家的对象。您可以通过在玩家进入服务器时使用工作区中某个位置的常用脚本获取玩家的对象来实现此目的。
如果您的游戏只有一个玩家,您可以将玩家对象放置在您的对象容器中。只要您在服务器端脚本之一中寻找其价值,就可以访问此容器。
为了显示:
game.Players.PlayerAdded:Connect(function(player) workspace.Data.Player.Value = player end)
“Data”表示放置在您的工作区中的文件夹,“Player”表示名为“Player”的 ObjectValue 容器,其目的是保存玩家对象。
但此代码不是您唯一的选择。您可以根据自己的喜好随意命名或修改它,或者随意放置玩家对象。
该脚本在玩家进入游戏后运行。在单人游戏的情况下,服务器只有一个玩家。但是,您可以修改代码以随心所欲地关注其他玩家。
要获取播放器的属性及其位置,您的常规脚本如下所示:
local player = Workspace.Data.Player.Value – 获取玩家对象并将其存储在“玩家”变量中
local var = player.Character.UpperTorso.Position — 获取 vector3 位置
达到个人坐标怎么样?
您可以通过以下方式访问 X、Y、Z 坐标:
local varX = player.Character.UpperTorso.Position.X local varY = player.Character.UpperTorso.Position.Y local varZ = player.Character.UpperTorso.Position.Z
在这里,您可以使用 UpperTorso 来表示 R15 Humanoids。因此,它可能不适用于 R15 以外的 Humanoid 模型。
我可以选择其他身体部位进行追踪吗?
您可以跟随的身体部位不仅限于 UpperTorso。以下是访问其他内容的方法:
- 使用 Developer Studio 打开您的游戏。
- 当游戏打开时,选择 StarterPlayer。
- 转到 HumanoidDefaultBodyParts(使用“资源管理器视图”找到它)。
- 这将显示启用跟踪的身体部位列表。
(来源:Derrick Bouchard – //gamedev.stackexchange.com/users/138624/derrick-bouchard)。
你可以使用坐标传送到某个地方吗?
既然您已经了解了如何在 Roblox 中显示坐标,您就会想知道是否有任何可以利用这些知识进行的富有想象力的活动。例如,如果您检索了光标的位置,则可以促进传送。这是一个简单的方法:
target = game.Players.LocalPlayer:GetMouse() .Hit x = target.X y = target.Y z = target.Z game.Players.LocalPlayer.Character:MoveTo(Vector3.new(x,y,z))
(信用:经常 – //www.roblox.com/users/234079075/profile)。
Roblox 中的传送一般是如何进行的?
到目前为止,传送是 Roblox 中最有用的功能之一。它允许玩家在大地图上快速移动,从而实现更多交互。
但是,正确执行它可能会很棘手,尤其是当您不熟悉脚本时。传送时可能发生的最常见问题之一是模型损坏。例如,如果您使用以下脚本,您会将头部与躯干分开:
game.Workspace.Player.Torso.Position = Vector3.new(0, 50, 0)
相反,您需要使用 CFframe 属性和 CFframe 数据类型。这是如何做到这一点并正确传送玩家:
game.Workspace.Player.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(0, 50, 0))
是否可以传送所有玩家?
您可以传送地图上的所有玩家。但是,您需要注意目标位置,以保持玩家的躯干完好无损。代码如下所示:
1. target = CFrame.new(0, 50, 0) -- 可以靠近砖块或在一个新区域 2. 对于 i, ipairs(game.Players:GetChildren()) 中的玩家做 3. -- 确保角色存在并且其 HumanoidRootPart 存在 4. 如果 player.Character 和 player.Character:FindFirstChild("HumanoidRootPart") 那么 5. --为每个角色添加 5 的偏移量 6. player.Character.HumanoidRootPart.CFrame = target + Vector3 .new(0, i * 5, 0) 7. 结束 8. 结束
很多工作带来很多乐趣
执行获取坐标和传送等操作的所有编码可能会让您认为 Roblox 不值得麻烦。但是,编码使您能够编排您独特的游戏和现实。从长远来看,这不仅非常有益,而且还可以变成您的休闲活动。
您是否尝试过在 Roblox 中进行编码?进展如何?在下面的评论部分让我们知道?