如何将同名的所有部件(物体)传送到我角色身边?

我有这个脚本可以传送“ Object1.Object1 ”、“ Object1.Object2 ”和“ Object3.Object3 ”到你的角色,但是在它的父级“ Spawns”中,有几十个完全相同名称的“ Object1.Object1 ”。

我该怎么修改我的脚本,使它可以传送每个Object1.Object1 ”、“ Object2.Object2 ”和“ Object3.Object3 ”到我的角色身边,而不仅仅是第一个,这就是目前的情况。

while true do
function teleport ()
game.Workspace.Spawns.Object1.Object1.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
game.Workspace.Spawns.Object2.Object2.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
game.Workspace.Spawns.Object3.Object3.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
    end
pcall( teleport )
wait()
end
点赞
用户11097986
用户11097986

这是一个简单的场景。如果你想要传送一切,我会首先将你想传送的所有对象分离到一个单独的目录中,可能是 game.ServerStorage 或其他什么地方。然后,我会执行以下操作:

game:GetService("RunService").RenderStepped:connect(function()
    local objects = game.ServerStorage.Objects:GetChildren()
    for i = 1,#objects do
        if objects[i]:IsA("BasePart") then
            objects[i].Parent = workspace
            objects[i].CFrame = CFrame.new(player.Character.HumanoidRootPart.Position)
        end
    end
end)

现在,对于你的具体情况会有一些棘手,因为它并不是非常规整,但如果您不想改变任何东西,我建议是这样做(请注意,我目前无法访问 Roblox Studio,因此可能不起作用,但当我用时我会测试它并给你更好的回应):

 game:GetService("RunService").RenderStepped:connect(function()
    local objects = game.Workspace.Spawns:GetChildren()
    for i = 1,#objects do
        if objects[i]:IsA("BasePart") then
            if string.sub(objects[i].Name,1,6) == "Object" then
                local child = objects[i]:GetChildren()
                for b = 1,#child do
                    if child[b] then
                        child[b].CFrame = CFrame.new(game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.p)
                    end
                end
            end
        end
    end
end)
2019-02-22 15:26:46