代码之家  ›  专栏  ›  技术社区  ›  Lua Tutoring

当你触摸一块砖头时,你如何打开一个GUI?(启用筛选)

  •  0
  • Lua Tutoring  · 技术社区  · 6 年前

    我试着做一个商店围墙当你碰一块砖,它会打开商店的Gui,

    现在的主要问题是,我不知道如何打开GUI,因为使用脚本同时启用过滤功能并不能减少它。

    有人有可靠的解释吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   NetherGranite    6 年前

    首先,为了在触摸砖块时执行任何操作,您需要使用 .Touched 砖块的属性。砖块具有此属性,因为它是名为 Part .

    其次,我不确定您希望如何打开GUI,但最基本的方法是使用 .Active GUI元素的属性。这只会使它出现在屏幕上。GUI元素具有此属性,因为它是 GuiObject ,无论是帧、文本按钮还是其他。

    代码如下所示:

    brick = path.to.part.here
    gui = path.to.gui.here
    
    function activateGui() --shorthand for "activateGui = function()"
        gui.Enabled = true
    end
    
    brick.Touched:connect(activateGui)
    

    请注意 .Enabled 是一个 boolean ( true false ). 另外,请注意 .感动 是一个特殊的物体 :connect(func) 功能。这是因为 .感动 实际上是 Event . 全部 事件 有一个特别的 :连接(func) 接受另一个函数的参数的函数 func 在事件发生时执行。在这种情况下,我们要求砖块 .感动 要执行的事件 activateGui 当它发生的时候。

    也, 。已启用 设置为 真的 默认情况下,为了使此方法工作,请确保将其设置为 在ROBLOX工作室取消选中 。已启用 在GUI元素的属性选项卡中。注意,不必对GUI的每个元素都这样做;如果 。已启用 若要对某个元素执行false操作,其所有子元素也将自动隐藏,因此您只需对父元素执行此操作。

    最后,你 必须在 Local Script . 因为GUI对于每个玩家都是唯一的,所以它实际上是由每个玩家的计算机来处理的,而不是ROBLOX服务器本身。 Local Scripts 脚本是由玩家的计算机而不是服务器专门处理的,所以 关键的 你不想用普通的 Script ,由服务器处理。

    对于您的信息,如果您愿意,可以将上述代码压缩为:

    brick = path.to.part.here
    gui = path.to.gui.here
    
    brick.Touched:connect(function()
        gui.Enabled = true
    end)
    

    这是因为您不必创建一个函数,命名它,然后将该名称赋给 .感动 ;相反,您可以直接创建它。