如何在LUA中从其他脚本调用函数?

我有一个名为“root”的根文件夹。 在这个文件夹中,我有2个包含脚本的文件夹,每个文件夹中有一个脚本:

/root/script01/client_script01/main.lua

在这个脚本中我有这个:

local function OpenWindow()
    stuff
end

/root/script02/client_script02/main.lua

我想在第二个脚本中使用OpenWindow()函数!

点赞
用户7396148
用户7396148

你是正确的,如果在定义中不使用local关键字,可以从client_script02/main.lua中调用 OpenWindow函数。

然而,这不是最佳实践。我不确定你的环境或意图的具体情况,但在大多数情况下,最好创建一个lua模块,使用require函数加载它。

这是更好的方式,因为它显示了文件之间的关系,显示了client_script02/main.lua需要client_script01/main.lua才能正常运行。

你的模块应该是这样的:

local client_script01 = {}

client_script01.OpenWindow = function()
    --stuff
end

return client_script01

另一个脚本应该是这样的:

local cs01 = require('client_script01')

do
    cs01.OpenWindow()
    --stuff
end

你还需要调整文件结构,以更好地适应此约定的方式,根据require函数搜索的方式进行:lua-users - 包路径

2019-01-07 17:18:38