首页 > 解决方案 > 如何从 LUA 中的其他脚本调用函数?

问题描述

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

/root/script01/client_script01/main.lua

在这个脚本中,我有这个:

local function OpenWindow()
    stuff
end

/root/script02/client_script02/main.lua

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

标签: functionlua

解决方案


如果您不使用定义中的OpenWindow关键字,您可以调用它是正确的。client_script02/main.lualocal

然而,这不是最佳实践。我不确定您的环境或意图的细节,但在大多数情况下,最好创建一个 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 - 包路径


推荐阅读