Unity游戏基础-3(UI层)

本教程开始分享教学内容:Unity游戏基础,部分内容会包括Blender建模基础,Shader基础,动画基础等等,教程面向:建模、技术美术、游戏前端、游戏后端基础,适合美术与设计(数媒、环设、动画、产设、视传、绘画)专业、计算机(计算机科学与技术、软件工程、数媒)的同学学习。

引言

在很多游戏中,例如:原神,都会有一个2D的UI界面,或者说在一些3D应用程序中也会需要2D的UI界面,对游戏或者是应用程序进行设置

这一节教学分辨率设置,在Unity中,分辨率为Resolution类,然后分辨率有以下参数:Width、Height、FullScreenMode、FreshRate,参数名称不重要,重要是参数要什么,从左到右为宽度、高度、全屏模式、屏幕刷新率

所有的分辨率都会在Resolution类里面列出,完整代码在Unity游戏基础-2中有Unity游戏基础-2(初识场景~项目构建)-CSDN博客

设计UI

在Hierarchy窗口,点击UI,添加一个Button(Text Mesh Pro),系统自己加了一个Canvas(画布)作为UI层,点击Import导入这2个组件

将canvasScaler 的UI缩放模式改成:屏幕大小缩放

在Sence窗口切换2D,缩放到合理的大小

在Illustrator中快速画一个设置图标

描边可以粗一点,这里演示就简单搓下,导出,在Unity的Assets下新建文件夹,重命名为Texture、Materials,把图片导入Texture,在Materials里面新建材质球

把刚刚的贴图

拖到反射率左边的灰色框框,调整button的大小,删除Button的文字(你甚至可以直接加一个图片控件,因为图片可以添加Button组件)

回到Button,把button的属性改下,找到Inspector窗口的button,找到导航下拉列表,改成None(只能由鼠标激活事件或者脚本控制)这里是为了防止空格和Enter误触Button

好,接下来设置鼠标点击事件,我们要在点击设置的时候打开canvas,并且保持设置图标一直在前面,此时你的Hierarchy窗口的顺序应该是这样的

后续我们在Panel里面加自己想要的控件,重命名Panel为Setting Form

在Button的Inspector窗口中,你会发现

点击"+"添加处理事件,把上节课的ButtonEventHandler脚本拖到Button上,再把Button拖拽到None

打开No Function,最后一行就是我们的脚本,选择OnButtonPress()

因为这是自定义的函数名称,现在我们按照上面的流程添加其他控件,注意的是需要用到事件只需要在属性窗口的Button里面添加就行,不要重复挂载脚本(给Button挂一个就行了,不然会出现意想不到的BUG)!

重命名

butSetting的脚本挂载:

Button的导航要设置为None!

这里的Apply、Cancel、Close(图片,点击添加组件button模拟)按钮全部在事件里面挂那个设置图标的button,然后选对应的事件(Apply()、Cancel()、Close()),这里的事件在第二节的代码已经给出了!

成品

保存+构建并运行,完美!

相关推荐
修炼前端秘籍的小帅4 天前
Stitch——Google热门的免费AI UI设计工具
前端·人工智能·ui
王码码20354 天前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
爱搞虚幻的阿恺4 天前
Niagara粒子系统-超炫酷的闪电特效(加餐 纸牌螺旋上升效果)
游戏·游戏引擎
_Li.4 天前
Simulink - 6DOF (Euler Angles)
人工智能·算法·机器学习·游戏引擎·cocos2d
智算菩萨4 天前
儿童游乐空间的双维建构:室内淘气堡与室外亲子乐园的发展学理、功能分野与协同育人机制研究
游戏·游戏策划
weixin_424294674 天前
Unity 调用Steamworks API 的 SteamUserStats.RequestCurrentStats()报错
unity·游戏引擎·steamwork
HoFunGames4 天前
Unity小地图,Easy Minimap System MT-GPS插件
unity·游戏引擎
marteker4 天前
房地产市场平台Zillow与《魔兽世界》合作展示游戏内房屋
游戏
2501_921930834 天前
Flutter for OpenHarmony:第三方库实战 chewie 视频播放器UI组件详解
flutter·ui
wy3258643644 天前
Unity 新输入系统InputSystem(基本操作)
unity·c#·游戏引擎