【问题标题】:Roblox Destroying Parts when activating Tool not quite working激活工具时 Roblox 破坏零件无法正常工作
【发布时间】:2022-01-09 03:43:13
【问题描述】:

我希望每次左键单击/激活工具时,都会破坏一个零件。所以我把一些零件放在一个文件夹中,并把它做成一个表格(“PartTable”)。然后我继续执行一个函数,该函数运行成对循环以从文件夹中删除一个部分并中断。那是因为我不想一键删除所有内容,这没有乐趣。每当我删除一个零件时,我也会打印系统。出乎我的意料,它只工作了一次。当我点击时,只有一个部分被删除,而系统继续打印。
Look at me being disappointed

1 local PartTable = game.Workspace.Folder:GetChildren()
2 local Tool = script.Parent
3
4 Tool.Activated:Connect(function()
5   for i, v in pairs(PartTable) do
6       v:Destroy()
7       print("Part deleted")
8       break
9   end
10  end)

我也是一个完全的脚本初学者。对不起

【问题讨论】:

    标签: lua roblox


    【解决方案1】:

    问题是您在销毁第一个元素后永远不会更新表格。在第一次运行时,你破坏了数组中第一个位置的块,然后逃跑。不过,列表中的第一个元素仍然指的是被破坏的块。在第二次运行时,它再次“销毁”同一个块,然后再次退出循环。

    修复非常简单,您只需将表分配移动到工具的已激活连接中。这将在每次激活该工具时获取更新的子级列表。

    local Tool = script.Parent
    
    tool.Activated:Connect(function()
        -- fetch the parts in the folder
        local PartTable = game.Workspace.Folder:GetChildren()
    
        -- delete one
        if #PartTable > 0 then
            PartTable[1]:Destroy()
        end
    end)
    

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 2018-02-28
      • 2015-11-03
      • 2016-03-03
      • 2012-07-18
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多