在群组内使用函数运行脚本

我想知道在 roblox 中是否有人遇到过需要从其他脚本运行脚本的情况。我的情况是我正在为一个游戏创建一个控制点系统。我需要能够知道其他点是否被占领,以便占领下一个,因此我正在尝试在其上编写控制器,但我不确定如何访问控制点脚本内的函数。

点赞
用户8076767
用户8076767

是的!ROBLOX提供了一个非常有用的功能,称为ModuleScripts,其目的是从其他脚本调用脚本。[ModuleScripts的图标与常规脚本的图标相同,只是右下角有一个小砖块。](https://i.stack.imgur.com/FcN7N.png)

它的工作方式是,常规脚本可以使用特殊的require()函数在游戏中调用ModuleScripts。最简单的解释方法是以示例形式呈现。

首先,让我们想象一下我们有一个脚本和一个ModuleScript。脚本将位于game.Workspace.normalScript,而ModuleScript将位于一个名为part的砖块内,在game.Workspace.part.moduleScript中。

moduleScript将包含以下代码:

script.Parent.Transparency = .5 -“Parent”是部分,因为此ModuleScript位于部分内部

现在,normalScript将包含以下代码:

require(game.Workspace.part.moduleScript)

当您运行游戏时,normalScript将执行moduleScript,将part的透明度更改为0.5。当在ModuleScript上调用require()时,它将像调用普通函数一样运行。 moduleScript就像是一个函数一样,而ModuleScripts通常在大部分情况下都像函数一样运作。

这也意味着ModuleScripts可以像函数一样返回值。例如,如果我们在moduleScript中有以下代码:

return 3 + 3

现在,我们的脚本将包含以下代码:

local number = require(game.Workspace.moduleScript)
print(number) - #>6

由于moduleScript返回了6,此代码将在控制台中打印“6”。您可能会猜到,这意味着ModuleScripts有许多用途,而不仅仅是远程执行代码。

以下是ModuleScripts使用的两个更多示例:

1)返回函数:

moduleScript

返回函数()
    print(“嗨”)
结局

normalScript

local func = require(game.Workspace.moduleScript)
func() - #>嘿

2)返回模块,例如下面的apple

moduleScript

local apple = {}
apple.flavor = “甜美”
返回苹果

normalScript

local fruit = require(game.Workspace.moduleScript)
print(fruit.flavor) - #>甜味

这些是ModuleScript用途的相当愚蠢的示例,但是ModuleScripts实际上可以是非常强大的工具。有关一些酷例子,请访问[ROBLOX Wiki页面上的ModuleScripts](http://wiki.roblox.com/index.php?title=API:Class/ModuleScript),并向下滚动约一半。

2017-05-31 09:31:50