您可以local_set
改为重命名它,这样就不会与驻留在 _G 中的六个左右的其他set
函数(sethook、setmetatable...)混淆。然后删除它local
,这样您就可以从全局范围访问内容。
https://pgl.yoyo.org/luai/i/debug.getlocal 可能性是存在的,但是很不稳定。 https://www.lua.org/pil/23.1.1.html 你必须滚动键直到你找到它。
local stack_level = 1
local stack_index = 1
while true do
local name, value = debug.getlocal( stack_level, stack_index )
print()
if not name then break end
if type( value ) == 'table' then
for k, v in pairs( value ) do
print( k, v, type(v) )
end
else -- could be recursive, if you need to dig deeper
print( name, value, type(value) )
end
stack_index = stack_index +1
end
编辑:
重命名它似乎更容易,因此可以从您的全局变量中安全地访问它。
local_set = {}
local_set .name = 'DebugMenu'
local_set .setName = 'DebugMenu'
local_set .descriptionFilenameOverride = ''
local_set .logicalName = '<DebugMenu>'