Unity2D入门(八):游戏场景中的UI(主菜单与暂停菜单)
因为暑假跟着老师做大创项目,需要用到UI方面的内容,所以在这里先记下关于UI的内容。目前我的游戏已经有了基本的雏形,现在的情况是在回补之前落下的笔记,因为大创的缘故我的学习进度和笔记进度差了好多,好纠结到底要不要继续补上(
在之后的笔记中,我会加入自己大创项目中的一些内容,本篇总结的是M_Studio教学中的P25、26两节,以及
一、主菜单:
主菜单相当于是一个新的场景,在Scene文件夹下创建一个新的Scene名为Menu,进入新场景在Hierarchy窗口中新建一个panel,在游戏场景中可以看到生成了一个类似蒙版的东西,在右侧Inspector窗口中的SourceImage中为其添加我们需要的背景图片,如果不做此步操作的话,这个Panel并不能填充整个画面,这是一个圆角矩形,要是没有图面我们也要在SourceImage中选择None。
接下来我们为主菜单添加按钮:play和quit。我们再创建一个Panel,用来盖住上面一个Panel创建的图片,在上面添加两个按钮,有两种Button,后面带TextMeshPro的是可以添加艺术字的,我们选择这个。
添加完成标题和按钮后效果如图(忽略这个阴间配色……),在这里补充,选中任何一个Button,在右侧Inspector窗口中,Button组件可以调整按钮在平时、光标选中、点击时的颜色,在此不做演示。
下一步我们要为按钮添加功能,开始游戏和退出游戏,直接上代码
public void PlayGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
public void QuiteGame()
{
Application.Quit();
}
退出游戏QuitGame()函数没有什么好说的,PlayGame中用到了SceneManager中的一些函数,在最开始要导入UnityEngine.SceneManager这个包,LoadScene函数是用来加载场景的,我们要从主菜单跳到第一关,所以是在当前场景编号的基础上+1,具体设置在File->BuiSettings中,我们可以在ScenesInBuild窗口中调整这几个场景的编号顺序,将主菜单调整到第一关前面,就实现了PlayGame函数的功能。
之后我们把脚本挂在到Canvas上Play和Quit的父级物体也就是Menu上,在Button的Inspector窗口中有一个OnClick选项,点击右下方的加号,将刚才挂载脚本的物体拖过来,选择挂载脚本的名称,就能在里面找到我们刚才写好的函数了。
在此我们就实现了基本的主菜单功能。
接下来我们要为主菜单录制一段入场动画,具体效果我在这用文字表述:为盖在图片上的那层Panel的不透明度打上关键帧,逐渐提高他的不透明度,在动画播放完成后主菜单上的文字才显示出来。
首先我们选中Panel,为他新建一个动画,点击红点录制,在开始出把他的不透明度设置一个值,结束处设置另一个值,在不同位置设置不同的 值Unity会自动添加关键帧。
接下来我们在Menu菜单中添加一个让文字显示出来的函数UIAble,直接上代码:
public void UIable()
{
GameObject.Find("Canvas/Menu/UI").SetActive(true);
}
这句代码的意思就是,程序在Hierarchy窗口中寻找到我要找的内容,也就是文字,并把它的激活状态设置true。
回到Unity中,在刚才的Animation窗口中,我们为在结尾处添加一个事件,也就是UIAble()函数。这样就完成了动画的创建。
二、暂停菜单:
回到我们的游戏场景中,我们现在要为游戏添加暂停菜单,第一步肯定是要先创建一个暂停的按钮,在此不做赘述。
下面我们来实现按钮按下后要实现的功能:弹出一个菜单,这一步我们需要创建一个Panel,调整好这个panel的大小,并为其添加一个音量的滑条slider(这个设计到音频控件,之后再说),和一个Resume返回游戏的按钮。效果如图:
首先我们来实现点击Pause按钮可以弹出菜单:仔细分析不难发现这个和主菜单中那个实现UIAble的函数大同小异,这里我们换一种写法,上代码:
public GameObject PauseGame;
public void PauseMenu()
{
PauseGame.SetActive(true);
Time.timeScale = 0f;
}
public void ResumeGame()
{
PauseGame.SetActive(false);
Time.timeScale = 1f;
}
可以看出只不过是这种写法是我们手动把PauseMenu给到了代码,而上面一种方式是通过查找的方式,但两者都是通过SetActive实现的,其实这个过程也不一定非要使用代码,Unity中直接就有SetActive的设置。
Unity2D入门(八):游戏场景中的UI(主菜单与暂停菜单)相关推荐
- Unity3D-高通AR-《狼来了》-4AR场景中的UI交互
Unity3D-高通AR-<狼来了>-4AR场景中的UI交互 1.场景中添加按钮对象 1.1 添加按钮对象,设置Canvas属性 1.2 设置按钮对应图片 1.3 设置按钮的位置 2.播放 ...
- 因果论在游戏场景中的应用
看到几篇关于因果推断的文章,觉得很受启发,结合游戏业务谈一谈相关的体会. 腾讯郭棋林:实验数据难获取?挑战观测数据上的因果推断! - 知乎 https://cloud.tencent.com/deve ...
- 全方位解析谷歌云的基础架构在游戏场景中的独特优势
根据 Sensor Tower 商店情报平台数据显示,2021年2月中国手游发行商在全球 App Store 和 Google Play 的收入排名中,共34个中国厂商入围全球手游发行商收入榜TOP1 ...
- unity2D横版游戏教程终章-主菜单和暂停菜单
最后一节我们做一下主菜单和暂停菜单 我们创建一个新的scene,命名为Menu,这个就是主菜单场景 我们双击Menu进去设置一下我们的UI 我们先添加一下Canvas,在Canvas下面创建连个Pan ...
- 从零开始入门创作游戏——对象交互与UI展示
做教程远比自己开发游戏要花时间...继续写小恐龙的游戏教程 环境搭建在这里 从零开始入门创作游戏--Unity3d的环境搭建_默哀d的博客-CSDN博客 素材导入和基本页面介绍在这里 从零开始入门创作 ...
- 游戏场景中的建筑设计,专访暴雪娱乐首席美术师 PhilipKlevestav
生动.逼真的图像与演示已成为方案展示不可或缺的组成部分.当下,设计师们正运用最先进的软件,建构精致三维模型,力求尽可能真实地展现他们的作品.而对于电子游戏领域来说,这个方式所关乎的不仅是图像质量与准确 ...
- UE4 学习记录八 给场景中添加背景音乐和动画音效,运动加速效果
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉.为了防止误导他人,请勿转载,请勿转载,请勿转载. 本文的主题是给场景中添加背景音乐和动画的音效.总章目录(https://blog.csdn ...
- Unity3D客户端在游戏场景中创建阻挡并用二进制导出
在公司的项目中给策划做了一个可以在场景中创建简单阻挡物体的小工具,也许大家有用的到的,拿出来分享一下. 整体思路是把地形用一米见方的格子分隔,然后在格子里放置cube代替阻挡,存盘时用一维数组,1表示 ...
- 游戏场景中的光影设计
光影构成其实是成图步骤中比较后期的一步了,在有良好的构成基础与明确体积下打光可以事半功倍,一般我会选择在画好阴天场景后进行打光,这样对我来说可以减少些难度,只要先专心分析图面的基础构成和固有色设计就好 ...
最新文章
- 关于 mysql.test 数据库
- SSH登录太慢(等很久才提示输入密码)的问题
- css background-attachment:fixed 固定背景、不随内容一起滚动
- 缓存最关心的问题是什么
- 特殊权限suid,sgid,sticky和acl(访问控制列表)参数详解
- 将 N 叉树编码为二叉树
- Java技术栈(跳槽,面试必备)
- windows 任务栏点击无反应,电脑没有任务栏怎么办
- python可以作为源文件后缀名的是_python 后缀名
- u-boot2020.04移植(3、lowlevel_init.S)
- Android软件开发用什么语言?
- 电力表采集的参数有哪些
- Flutter 插件开发:iOS篇
- java实现消息队列以及延迟消息(队列DelayQueue)
- 城市交通公众号2021年头部内容发布
- SQLServer_ER关系模型图
- May 18:PHP 函数
- 分享个梦塔防挂机辅助,快速升级升段刷资源的脚本
- 2021年全球开关收入大约4944.1百万美元,预计2028年达到6146.3百万美元
- 荣耀30s刷鸿蒙,荣耀30S“超过”苹果XS,靠华为鸿蒙框架优化能力