我想知道如何使用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.(如果你这样做,你必须非常小心不要让你的名字泄露 - 明智地使用当地人.)