我对ROBLOX的开发还很陌生,还真的不知道如何使对象说话。
我有16个单元格,每个单元格都有单独的打开和关闭按钮。这些工作。我想创建一个可以立即打开所有门的按钮。
function onClicked()
script.Parent.Parent.Door.Transparency = 1
script.Parent.Parent.Door.CanCollide= false
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)
以上功能在每个单元格上均有效。我想遍历每个按钮,并在单击其他按钮时将其触发。我一直在研究使用相同名称的每个对象,但无法对其进行迭代。
下面的代码是我试图使它启动的方式!
local part = workspace.OpenButton
local clickDetector = Instance.new("ClickDetector")
local function onMouseClick(player)
for _, child in pairs(workspace.PrisonCell:GetChildren()) do
print(child)
child:connect(child.Door.onClicked)
end
end
clickDetector.Parent = part
part.Parent = workspace
clickDetector.MouseClick:connect(onMouseClick)
任何帮助,将不胜感激!
答案 0 :(得分:0)
您可以执行类似的操作立即打开所有监狱的门:
local part = workspace.OpenButton
local clickDetector = Instance.new("ClickDetector")
local function onMouseClick(player)
for _, child in pairs(workspace.PrisonCell:GetChildren()) do
child.Door.Transparency = 1
child.Door.CanCollide = false
end
end
clickDetector.Parent = part
part.Parent = workspace
clickDetector.MouseClick:connect(onMouseClick)
使用上述解决方案的不利之处在于,如果要更改开门脚本,则必须在单个单元格按钮以及此主按钮脚本中都进行更改。如果您认为将来可能会遇到问题,我会考虑在ServerScriptService中的某个地方编写一个主脚本,该脚本使用BindableEvents与按钮单击脚本进行通信,以便将开门功能保持在一个位置。 >