如何从 ROBLOX 的开始菜单 GUI 中加载工作区?
2020-7-14 19:9:0
收藏:0
阅读:208
评论:2
我正在制作一个 ROBLOX 游戏,其中有一个 GUI 问题:
- 我有一个“开始游戏”按钮,但我在 elif 语句中将其设置为在单击时从“开始游戏”切换到“游戏加载中...”并来回切换。如何更改它,使其在单击时不是说“游戏正在加载...”,而是转换为实际的游戏(我的工作区)?
我甚至不想让“游戏正在加载...”出现,我只是在学习按钮的各个方面时把它放在那里。
我的 GUI 只是开始菜单,所以当您单击“开始游戏”时,GUI 应该消失,并加载实际游戏。
下面是我为按钮编写的脚本:
local button = script.Parent
local toggled = false
local function onButtonActivated()
if toggled == false then
button.Text = "游戏正在加载..."
toggled = true
else
button.Text = "开始游戏"
toggled = false
end
end
button.Activated:Connect(onButtonActivated)
注意:我使用Lua(ROBLOX的默认语言)通过IntelliJ,并将我的完成代码复制粘贴到脚本中,因为IntelliJ有一个比ROBLOX的默认编辑器好得多的文本编辑器。
点赞
用户88888888
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)
如果你想的话,你可以做一些花哨的淡入淡出效果。
2020-08-06 21:55:54
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

如果这个地方只是一个起始菜单的枢纽,而 实际的 游戏则在宇宙的其他地方,那么你需要使用
TeleportService:Teleport()将LocalPlayer移动到那个游戏。传送完成后,玩家就能毫无问题地玩那个游戏。这里有一个使用你提供的代码示例的例子:local button = script.Parent local toggled = false local destination = 0 -- 将 0 更改为你想要将用户传送到的地方 ID local TeleportService = game:GetService("TeleportService") local function onButtonActivated() if toggled == false then button.Text = "游戏加载中……" --toggled = true TeleportService:Teleport(destination) else button.Text = "开始游戏" 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 -- 将 nil 替换为引用“ScreenGui/BillboardGUI”对象的父对象,它包含 'button'。 local function onButtonActivated() if toggled == false then --[[button.Text = "游戏加载中……" toggled = true]]-- guiObj:Destroy() else button.Text = "开始游戏" toggled = false end end button.Activated:Connect(onButtonActivated)