Есть ли способ в lua сделать этот Parent.Parent. {{VAR}}. Child - PullRequest
0 голосов
/ 03 августа 2020

Я сейчас работаю над игрой Roblox для школьного задания, поэтому я делаю базовую c игру про магнатов с функцией, которая работает следующим образом:

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 сегодня, но взял его очень быстро, но я думаю, что есть много чего я пропустил. Заранее спасибо.

1 Ответ

1 голос
/ 03 августа 2020

Этот

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

вполне подойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...