首页 > 解决方案 > lua中有没有办法做到这一点 Parent.Parent.{{VAR}}.child

问题描述

我目前正在为学校作业开发 Roblox 游戏,所以我正在制作一个基本的大亨游戏,其功能如下:

game.Workspace.Gate.Touched:Connect(function()
    game.Workspace.Path.Transparency = 0
    game.Workspace.Path.CanCollide = true
    game.Workspace.Fence.Transparency = 0
    game.Workspace.Fence.CanCollide = true
end

但我想知道是否有办法让这个功能在长期内更实用,使其类似于:

game.Workspace.Gate.Touched:Connect(function({{myVar}})
    game.Workspace.{{myVar}}.Transparency = 0
    game.Workspace.{{myVar}}.CanCollide = true
end

老实说,我今天才开始使用 Lua,但很快就学会了,但我想我错过了很多东西。提前致谢。

标签: luagame-developmentroblox

解决方案


这个

game.Workspace.Path.Transparency = 0

和这个

game["Workspace"]["Path"]["Transparency"] = 0

完全一样。您也可以将两者混合使用:

game.Workspace["Path"].Transparency = 0

区别仅在于语法。第一个只允许您访问作为有效标识符的密钥,并且看起来有点“干净”。第二个允许您使用任何变量或常量。

所以这段代码:

game.Workspace.Gate.Touched:Connect(function(myVar)
        game.Workspace[myVar].Transparency = 0
        game.Workspace[myVar].CanCollide = true
end

完全没问题。


推荐阅读