如何在 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
只能 运行 在玩家的直系后代中,例如 StarterPack
、StarterPlayerScripts
、StarterCharacterScripts
或 [=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)
希望对您有所帮助!
我在 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
只能 运行 在玩家的直系后代中,例如 StarterPack
、StarterPlayerScripts
、StarterCharacterScripts
或 [=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)
希望对您有所帮助!