碰到砖块时如何打开GUI? (启用过滤)

时间:2018-08-05 06:36:47

标签: user-interface lua roblox

当我碰到一块砖块时,我试图制造一个商店围栏,它将打开商店Gui,

现在的主要问题是我不知道如何打开GUI,因为在启用过滤的情况下使用脚本不会削减它。

有人有扎实的解释吗?

1 个答案:

答案 0 :(得分:1)

首先,为了在触摸积木时执行任何操作,您将需要使用积木的.Touched属性。您的积木具有此属性,因为它是一种称为Part的数据类型。

第二,我不确定您要如何打开GUI,但是最基本的方法是使用GUI元素的.Active属性来启用它。这只会使其出现在屏幕上。您的GUI元素具有此属性,因为它是GuiObject,无论是Frame,TextButton还是其他元素。

代码将如下所示:

brick = path.to.part.here
gui = path.to.gui.here

function activateGui() --shorthand for "activateGui = function()"
    gui.Enabled = true
end

brick.Touched:connect(activateGui)

请注意,.Enabledbooleantruefalse)。另外,请注意.Touched是带有:connect(func)函数的特殊对象。这是因为.Touched实际上是Event。所有Event都有一个特殊的:connect(func)函数,该函数接受另一个函数func的自变量,该事件将在事件发生时执行。在这种情况下,我们要求砖的.Touched事件在发生时执行activateGui

此外,.Enabled默认情况下设置为true,因此,为了使此方法起作用,请确保在ROBLOX Studio中通过取消选中{{1}来将其设置为false }在GUI元素的“属性”选项卡中。请注意,您不必对GUI的每个元素都执行此操作。如果您在某个元素上将.Enabled设置为false,则其所有子元素也会自动被隐藏,因此您只需要在父元素上执行此操作即可。

最后,您必须在.Enabled 中执行此操作。由于GUI对于每个播放器都是唯一的,因此实际上是由每个播放器的计算机而不是ROBLOX服务器本身来处理的。 Local Scripts是专门由玩家计算机而非服务器处理的脚本,因此关键是您不要尝试使用常规Script来执行的脚本,由服务器处理。

供您参考,如果您愿意,可以将上面的代码浓缩为这样:

Local Script

这是因为您不必创建函数,将其命名,然后将其命名为brick = path.to.part.here gui = path.to.gui.here brick.Touched:connect(function() gui.Enabled = true end) ;相反,您可以就地创建它。