如何在 Roblox 中打开和关闭 gui?

Posted

技术标签:

【中文标题】如何在 Roblox 中打开和关闭 gui?【英文标题】:How do you open and close a gui in Roblox? 【发布时间】:2019-09-04 16:48:20 【问题描述】:

我在 Roblox 中制作游戏时遇到了一个错误。我正在尝试制作在游戏中打开商店的 gui 按钮。但是打不开。

我试图让按钮不可见而商店可见。一切都很好,但 guis 不会变得可见/不可见。它说更改了 gui 在属性中的可见性,但它没有在游戏中显示。我还尝试更改 gui 的父级,它可以关闭但不能打开。

gui = game.StarterGui.ShopSelection
button = game.StarterGui.Shop.Button
button.MouseButton1Down:Connect(function()
    gui.Visible = true
    button.Parent.Visible = false
end)

这应该在按下 Shop gui 的按钮时打开 ShopSelection gui 并关闭 Shop gui。它不工作。请帮忙!

【问题讨论】:

【参考方案1】:

您的问题是您正在从StarterGui 服务访问对象。一旦播放器加载,StarterGui 会将其内容克隆到播放器的 PlayerGui 文件夹中。因此,您需要从那里访问对象。为此,我们将使用LocalScript 并通过LocalPlayer 对象访问该文件夹。请注意,LocalScripts 只能在玩家的直系后代中运行,例如 StarterPackStarterPlayerScriptsStarterCharacterScriptsStarterGui

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui"):WaitForChild("ShopSelection") --wait for objects
local button = player.PlayerGui:WaitForChild("Shop") --:WaitForChild() yields the thread until the given object is found, so we don't have to wait anymore.

button.MouseButton1Down:Connect(function()
    gui.Visible = true
    button.Visible = false
end)

希望这会有所帮助!

【讨论】:

以上是关于如何在 Roblox 中打开和关闭 gui?的主要内容,如果未能解决你的问题,请参考以下文章

GUI 动画 - Roblox Studio [关闭]

如何在 roblox 中删除所有克隆的 gui

如何从 ROBLOX 的开始菜单 GUI 加载我的工作区?

如何在 Roblox Studio 中解锁鼠标

如何在特定点循环 ROBLOX 音频?

在 ROBLOX 上,我如何制作小游戏脚本? [关闭]