Lua - 如何使用其他脚本中的函数

Per*_*son 13 lua

我想知道如何使用Lua中另一个脚本的函数.例如,say GameObjectUtilities保存许多GameObject脚本将使用的函数.本Slime(一GameObject)脚本想要使用的功能GameObjectUtilities.

我无法解决这个问题.我看过这里,但我还是没有完全理解.我是否需要创建一个模块或表来保存函数以GameObjectUtilities使其中的函数用于其他脚本?如果是这样,最好的方法是什么?

这很奇怪.当我以正常方式执行时,它确实有效.问题是,当我运行我的应用程序并尝试使用该脚本时,它不起作用.我不明白.

Lea*_*orm 12

不,您不必创建模块.如果您只是这样创建foo.lua:

function double(n)
  return n * 2
end
Run Code Online (Sandbox Code Playgroud)

然后在您的脚本中require 'foo',您将能够double像在同一脚本中定义的那样访问该函数.这些功能无法在您的本地获取,但它们是在同一环境中创建的 - 所有module 'name'功能都是创建一个新表并将当前环境重置为该表.

所以,你可以这样做:

function slimefunc(...) stuff() end
Run Code Online (Sandbox Code Playgroud)

GameObjectUtils.lua,如果你require 'GameObjectUtils',那么Slime可以使用slimefunc.或者,如果您希望它被命名空间:

utils = {}

function utils.slimefunc(...) stuff() end
Run Code Online (Sandbox Code Playgroud)

它将作为utils.slimefunc.(如果你这样做,你必须非常小心不要让你的名字泄露 - 明智地使用当地人.)