如何将同名的所有部分(对象)传送给我的角色?

问题描述 投票:0回答:1

所以我有这个传送“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
lua roblox
1个回答
1
投票

这是一个简单的场景。如果你想传送所有内容,我首先要做的就是将你想要传送的所有对象分成一个单一的目标,可能是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)

现在,对于你的确切情况会有点棘手,因为它不是很好的orgasnized,但我要做的,如果你不想改变任何东西,这是(请注意,我无法访问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)
© www.soinside.com 2019 - 2024. All rights reserved.