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()),这里的事件在第二节的代码已经给出了!

成品

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

相关推荐
灵狐数据FoxData1 小时前
QQ农场今日回归,我们想“偷”回的到底是什么?
游戏·社交电子·业界资讯·娱乐·玩游戏
微祎_1 小时前
Flutter for OpenHarmony:构建一个 Flutter 平衡球游戏,深入解析动画控制器、实时物理模拟与手势驱动交互
flutter·游戏·交互
GLDbalala3 小时前
Unity基于自定义管线实现经典经验光照模型
unity·游戏引擎
renke33643 小时前
Flutter for OpenHarmony:构建一个 Flutter 色彩调和师游戏,RGB 空间探索、感知色差计算与视觉认知训练的工程实现
flutter·游戏
ujainu5 小时前
Flutter + OpenHarmony 实现经典打砖块游戏开发实战—— 物理反弹、碰撞检测与关卡系统
flutter·游戏·openharmony·arkanoid·breakout
微祎_5 小时前
构建一个 Flutter 点击速度测试器:深入解析实时交互、性能度量与响应式 UI 设计
flutter·ui·交互
AAA阿giao6 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
心疼你的一切6 小时前
Unity异步编程神器:Unitask库深度解析(功能+实战案例+API全指南)
深度学习·unity·c#·游戏引擎·unitask
晚霞的不甘6 小时前
Flutter for OpenHarmony 构建简洁高效的待办事项应用 实战解析
flutter·ui·前端框架·交互·鸿蒙
百思可瑞教育6 小时前
构建自己的Vue UI组件库:从设计到发布
前端·javascript·vue.js·ui·百思可瑞教育·北京百思教育