如何在 Roblox 中打开和关闭图形用户界面?

How do you open and close a gui in Roblox?

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

我试过让按钮不可见,商店可见。一切正常,但 guis 没有变成 visible/invisible。它说更改了 gui 在属性中的可见性,但在游戏中没有显示。我也试过改变gui的父级,它适用于关闭而不是打开。

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

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

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

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)

希望对您有所帮助!