Lua - 在循环中扩展表

Lua - Extending Tables in loops

注意:这在 Roblox's version of Lua 中。 我有以下代码片段:

for index, child in pairs(workspace.IMG:GetChildren()) do
    xyz = child.Position
    ImgScript = {}
    table.insert(ImgScript, -1, child.BrickColor.Number, xyz.X, xyz.Y, xyz.Z)
end

所以workspace.IMG是一个模型,里面有一堆砖头。我正在尝试将该模型转换为 script builder 的脚本。所以我可以让它为每块砖做 Instance.new('Part', script) blah blah blah,但这相当于一个大脚本。因此,我正在制作一个 table,其中包含所有必要的信息(BrickColor 和 Position)。这是我希望 table 的样子:

{{BrickColor Number, X, Y, Z}, {123, 14, 52, 65}, {156, 13, 52, 65}, etc.}

但我目前的脚本并没有制作这种table。它什么都不做;事实上,我不希望它按照我的要求去做;我只是不知道如何制作这种 table.

我想你想要这个:

ImgScript = {}
for index, child in pairs(workspace.IMG:GetChildren()) do
    xyz = child.Position
    table.insert(ImgScript,{child.BrickColor.Number, xyz.X, xyz.Y, xyz.Z})
end

放那行

ImgScript = {}

循环之前。实际上,您在每次迭代中创建一个新的 table(并丢弃前一个)。

如果您希望 ImgScript table 以 'header' 条目开头,请将其添加到此处。

当然,table.insert 调用应该是

table.insert(ImgScript, {child.BrickColor.Number, xyz.X, xyz.Y, xyz.Z})

最后,整个脚本将是:

ImgScript = {{'BrickColor Number', 'X', 'Y', 'Z'}}
for index, child in pairs(workspace.IMG:GetChildren()) do
    local xyz = child.Position
    table.insert(ImgScript, {child.BrickColor.Number, xyz.X, xyz.Y, xyz.Z})
end