如何从 ROBLOX 的开始菜单 GUI 加载我的工作区?
Posted
技术标签:
【中文标题】如何从 ROBLOX 的开始菜单 GUI 加载我的工作区?【英文标题】:How can I load my workspace from my start menu GUI in ROBLOX? 【发布时间】:2020-11-04 05:05:21 【问题描述】:我正在制作 ROBLOX 游戏,但我遇到了 GUI 问题:
我有一个“开始游戏”按钮,但我有一个 elif 语句,当您单击它时,它只是从“开始游戏”到“游戏加载...”来回切换。如何更改它而不是说“游戏加载中...”,当您单击它时,它会转换到实际游戏(我的工作区)?我什至不希望“游戏加载中...”出现,我只是在学习按钮的来龙去脉时才放在那里。
我的 GUI 只是开始菜单,所以当您单击开始游戏时,GUI 应该会消失,您会被加载到实际游戏中。
这是我为按钮编写的脚本:
local button = script.Parent
local toggled = false
local function onButtonActivated()
if toggled == false then
button.Text = "Game Loading..."
toggled = true
else
button.Text = "Start Game"
toggled = false
end
end
button.Activated:Connect(onButtonActivated)
注意:我通过 IntelliJ 使用 Lua(ROBLOX 的默认语言),只是将完成的代码复制粘贴到脚本中,因为 IntelliJ 的文本编辑器比 ROBLOX 的默认编辑器好得多。
【问题讨论】:
【参考方案1】:如果这个地方只是一个带有开始菜单的中心,而实际游戏在宇宙的其他地方,那么你需要使用TeleportService:Teleport()
将LocalPlayer
移动到那个地方游戏。传送完成后,玩家将能够毫无问题地玩该游戏。这是使用您的代码示例的示例:
local button = script.Parent
local toggled = false
local destination = 0 -- Change 0 to the place ID you want the user to be teleported to
local TeleportService = game:GetService("TeleportService")
local function onButtonActivated()
if toggled == false then
button.Text = "Game Loading..."
--toggled = true
TeleportService:Teleport(destination)
else
button.Text = "Start Game"
toggled = false
end
end
button.Activated:Connect(onButtonActivated)
但是,如果您在实际游戏中加载此 GUI,您只需:Destroy()
GUI 对象即可。这将永久地将 GUI 对象及其所有子对象移动到nil
下,并断开所有连接。
在游戏中,这意味着 GUI 会消失,玩家可以继续玩游戏。除非您在 GUI 中运行其他关键代码,否则如果您只在一个地方工作,这应该是首选解决方案。
local button = script.Parent
local toggled = false
local guiObj = nil -- Replace nil with a reference to the "ScreenGui/BillboardGUI" object that houses the 'button'.
local function onButtonActivated()
if toggled == false then
--[[button.Text = "Game Loading..."
toggled = true]]--
guiObj:Destroy()
else
button.Text = "Start Game"
toggled = false
end
end
button.Activated:Connect(onButtonActivated)
【讨论】:
非常感谢!然而,即便如此,当我点击开始游戏时,什么也没有发生。 @Stealth 开发者控制台中是否出现任何错误?所以我们可以更好地帮助你,你用什么方法? (Destroy
或 Teleport
?)
没有我知道的错误。 IntelliJ 希望我只删除“-- nil”,因为它是“不必要的斜体”,但即便如此它也不起作用。哦,还有,我使用了 Destroy。【参考方案2】:
local button = script.Parent
local guiObj = --a reference to the main screengui which the button is a descendant of
local function onButtonClicked()
guiObj:Destroy()
end
button.MouseButton1Click:Connect(onButtonClicked)
如果你愿意,你可以做一些花哨的褪色之类的东西。
【讨论】:
以上是关于如何从 ROBLOX 的开始菜单 GUI 加载我的工作区?的主要内容,如果未能解决你的问题,请参考以下文章
当它应该出现时框架没有出现......(ROBLOX GUI)