创建人物状态栏

news2024/10/22 20:54:32

接下来,我们来尝试制作一下我们的UI,我们会学习unity基本的UI系统

**************************************************************************************************************

我们要先安装一个好用的插件到我们的unity当中,帮助我们分类我们的hierarchy窗口

我们在AssetsStore商城当中下载到这款免费的插件,可以帮助我们把hierarchy窗口变得更好看一些,可以更直观的看到这些都是怎样的分类,

添加后,点击在unity当中打开;也可以在unity--package manage--MyAssets来下载所有的资源和插件

Download--import;然后就可以看出我们接下来要导入什么内容了

只选择需要的内容就可以了,不需要导入样例Scene场景,取消勾选,其他内容导入import

点击打开M Studio下边的子文件夹Color Palette,在这里面我们就有各种各样的颜色和关键词的设置了

例如打上“///”就可以显示背景为蓝色

点击Player,在他的名字前加“///”;修改好之后,如果没有立即改变,可以先点击一些播放的按钮,就可以产生变化;同样也可以选中字体的对齐方式

**************************************************************************************************************

接下来来实现UI系统

我们希望在我们Scene的左上角可以显示人物的血量和头像

我们在hierarchy窗口中来创建一下我们的UI

在空白位置按鼠标右键添加UI--Canvas画布,然后他会自动帮我们创建一个Event System,这个EventSystem非常重要,只有有了EventSystem,所有的屏幕的点击,按钮滑动条,这些才能够被识别到,才能够进行点按和滑动;如果没有这个东西,所有的UI都失效了

选中这个EventSystem,也可以在右侧看到(由于我们现在使用的是全新的input System,我们需要把它替换一下,点击Replace With InputSystem,现在我们就成功替换了

目前他默认的使用的是ActionAsset是我们的inputSystem自带的,我们可以点击右侧的选择标识

找到我们自己创建的PlayerInputControl,这样我们就成功的把下面的所有的这些选项点击,移动等等都切换到我们自己创建的那个input action当中

之前我们在inputaction当中也创建了对应UI的这些按钮,稍后我们来进行绑定

(默认的UI的确认功能可以使用键盘的Enter)

任何的键,我们都可以来设置一个指定的键

EventSystem设置好了之后,就放在这里不动了

接下来我们来看Canvas画布,我们在Scene的场景中来看一下,选中Canvas,按住键盘上的F键,锁定Canvas,可以看到Canvas的左下角是我们的场景,

Canvas非常的大(因为Canvas是覆盖我们整个屏幕画面的,可以看到右侧的Canvas的Render Mode是Screen Space-Overlay(也就是整个屏幕是多大,Canvas就有多大,它可以完全覆盖整个屏幕,也就是他跟我们的场景是完全分离的,这一点就不用担心在不同的设备上有不同的效果了,我们能保证在所有的设备上都能满屏的填充,我们的整个的画布)

还有一个选项我们要注意,就是Canvas Scale(里边可以调整他现在的比例是采用什么样的模式,我们在下拉菜单当中,可以选择Scale With SCreen Size(根据我们实际游戏的画面分辨率,来调整我们UI的布局);

所以之前的视频有提示过,在Game窗口当中,尽量在左上角选择一个固定的画面比例,这样方便参考制作UI以及其他的东西

比如我们选择一个1080,我们可以在Reference Resolution里面输入1920*1080

然后他是按照怎样的比例有限排列呢,在ScreenMatchMode当中我们可以选择同时符合他的高度,或者符合他的宽度,或者把它完全拉伸;在此处我们选择Match Width Or Height。

Match设置为0.5(这个的作用,有些同学使用的是带鱼屏,带鱼屏的宽度会非常的宽,比如说2560,所以如果希望优先考虑宽度,就拉到左边;优先考虑高度,就拉到右边;如果去0.5,他会综合一下长和高,然后取一个中间值

另外这个ReferePixelPerUnit(图片画面像素比例,所引用的像素比例)我们所有的图片像素都是16,所以我们输入16就好了

目前还没有什么效果,接下来我们一起来创建一下,首先在Hierarchy窗口中Canvas下创建一个UI--image创建了一个图片

可以看到他在我们的Scene窗口中显示出来一个白色的方块,(默认是方形)

我们看一下Scene的场景,然后我可以按照设置他的锚点位置来确定他跟随的点,我们看一下Inspector窗口,我们可以看到他的transform类型是Rect Transform,然后他有middle,canter这些点,以及Anchors,pivot

我们点击之后,其实就是一个Anchor Presets,我们以什么位置作为他的锚点预制(比如说以左上角作为,可以看到左上角出现了很多的箭头,也就代表我现在这个方块的位置,是以左上角为基准点,以他为锚点位置,相对的位移)。

这样的好处就是无论我们的画面切换成怎样的比例,切换一个不一样的比例,就会产生相对的位移,因为它是基于左上角这个位置进行的变化,所以这个锚点预制,方便我们在不同的设备,不同的画面当中获得相同的位置

我们在RectTransform当中,也可以按住Alt键,这时候,我们可以看到画面有一些变化,意思是我要把这个方块拖拽到那个位置,再按住Shift键,我们就可以把它定位到那个位置

然后我们可以拖拽这个image,按键盘的W,拖拽一个相对的位置,我们就可以看到它大概在哪了;

然后我们在这个游戏当中,所以使用的UI的图片都在我们的Art Assets,然后找到地图的文件夹下的HUD--Base-UI,在这里,我们同样要进行一些切割,我们来简单设置一下这个图片

设置好之后,打开图片,我们可以看到,这里面有非常多的UI按钮,滑动条;选择我们的血量框,我们选择绿色的血量,背景填充一个红色的血量,一个渐变的效果

先来切割图片,Slice,选择自动切割;

因为自动切割,他不可能很精准的判断到每一个位置,我们需要手动的来调整一下

适当改一下名字,方便我们查找

红色和绿色血条也调整一下

小一点的框,一会我们会制作人物滑铲的时候,用作他的power能量条,能量条会衰减,然后随着时间慢慢增长,能量条我们用黄色的(如果自动切割没有识别出图片,可以按鼠标画一下,就可以识别出来了),同样修改一下名字

目前,我们暂时有了这些条,保存,如果有需要可以重新进行调整。

因为是切割的,但是我们不会用Till map的方式来进行添加,我们是直接使用下面的图片,可以将其中任何一种图片拖拽进去。

选择我们的image,在选择窗口中,Source Image,我们可以搜索一下,首先我们想添加一个Frame,选择healthFrame

当前添加进去的图片是按照我们方块的比例来显示的,想要按照原始比例,我们可以选择下面的一个按钮SetNativeSize,这样就还原了图片最原始的比例

当前在UI窗口当中,它显示的非常小,我们可以适当的调整一下它的大小,把它拉的大一点,然后在Game窗口中,我们也可以参考一下它的大小,适当进行调整

接下来,我可以把它直接原地复制出来,每一个改一下名字

我们新创建的image现在绿色的血量条

出现问题,新创建的血量条遮盖住了血量框(hierarchy窗口的叠层关系,下面的覆盖上面的),调整一下它的顺序,这样我们的条就可以反向覆盖了

适当调整一下绿色条的大小,同时改个名字

调整了之后,我们需要手动的去关注一下它的整体位置,让他能够填充在当中,这样的方式很容易有误差,所以我们要精准的调整一下它的坐标,将Frame定好了之后,我们就可以对应的修改中间的填充部分,首先我们要确定它的坐标位置,在Game窗口可以逐一的去调整

这样我们就做好了这个血量条

这个血量条位置我们希望它作为一个内容的填充,所以我们怎样实现这个填充效果呢。就是随着我们血量的减少,它也跟着减少;

我们选中我们填充的这个Green图片,在image这个组件下方,我们选择imageType,下拉菜单当中选择Filled(填充方式,默认当前360度转圈的填充)

更改一下模式,把360度转圈填充改为Horizontal横向填充

可以拉动下方的滑动条,可以看到,当前可以从右往左的显示出来了

另外我们将HealthFillGreen复制一个出来,命名为HealthFillRed,显示红色,放到最上方,要设置一个红色渐变的效果;一旦受伤的话,绿色的快速减少,后边有个红色的跟他有有一个时间的位移差,这样的话会有一个渐变的效果

在减血时,大概是这样的一个效果。一旦受伤了,绿色先减掉,然后红色快速跟上,稍后在代码当中继续实现这个功能,以上就是在我们左上角与Health有关的内容

我们将以上图片全选,按鼠标右键,我们给他创建一个空的parent,create empty parent,方便我们来管理,起名叫做Health Bar,有了一个父类之后,我们就可以很方便的去拖拽他,调整他的位置

我们也可以相对应调整一下HealthBar的位置

接下来选中Bar中的所有内容,我们把它放到中间

然后再按W键可以调整它具体的所在位置,这样可以统一来安排他在一个框当中;可以看一下血量框在Game窗口差不多的位置,我们尽量把它取整

接下来我们还需要用同样的方法来制作一下,下面的能量条

可以原地复制一个HealthBar出来,更改一下名字PowerBar,调整一下位移,修改一下图片和填充颜色,把红色的条删掉

我们也可以整体修改一下这个能量框的大小,根据大小自己修改一下

(拖拽的时候,按住Alt键可以以中心点为基点左右放大就好了

接下来我们来制作一下人物的头像框

再来查看一下头像框的图片

我们选择这个棕色的方块作为头像框,修改一下名字。

记得点击Apply

给我们的Canvas改一个名字//MAINCANVAS

在MAINCANVAS下再添加一个image,起名为Face Frame

选中之后,设置成我们刚才改好名字的图片

调整一下它的位置,设置以左上角为基准点

我们将血量条,能量条,头像框整体都选中,再次为他们创建一个父类的空物体,叫做Player Stat Bar,方便进行管理,所有跟他的状态有关的;

把父类的锚点设置为左上角

血量条,能量条,头像框整体都选中,再次调整一下他们的位置

接下来我们要来做一个人物的头像

我们的图片素材当中并没有人物头像,我们要来学习一个方法,用切割的方式来获得一个头像,首先我们在Face Frame当中创建一个空的imgae,叫做Cut,

我们保留这个空的白色的框,在Cut下再创建一个image,起名为Face,

Face这张图片,我们找到人物的图片,找一个Idle的状态,然后我们调整一下他的大小,只保留一个头像的位置

然后我们选择上一层的Cut,在他的身上我们来添加一个组件,叫做Mask,

可以看到现在我们就成功切割了一个图片出来,

但是背景当中仍然有白色的部分,我们取消勾选Cut当中的Show Mask Graphic

这样我们就获得了人物的头像,我们可以适当的调整一下头像的位置

这样我们就成功做好了头像框,血条,能量条

后面我们会调用FillAmount,来调整里面的填充内容,之后要创造代码来进行设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac电脑:资源库Library里找不到WebServer问题的解决

今天看到一本书里写到Windows电脑自带IIS Web服务器,好奇了一下下,mac电脑自带的又是什么服务器呢?经查询,原来是Apache服务器,这个名字我很熟悉。只是如何设置呢?我从来没用过,于是试验了一番。…

[Linux进程概念]命令行参数|环境变量

目录 一、命令行参数 1.什么是命令行参数 2.为什么要有命令行参数 (1)书写的代码段 (2)实际的代码段 3.Linux中的命令行参数 二、环境变量 1.什么是环境变量? 2.获取环境变量 (1)指令…

OceanBase 的写盘与传统数据库有什么不同?

背景 在数据库开发过程中,“写盘”是一项核心操作,即将内存中暂存的数据安全地转储到磁盘上。在诸如MySQL这样的传统数据库管理系统中,写盘主要有以下几步:首先将数据写入缓存池;其次,为了确保数据的完整性…

【Qt】控件——Qt输入类控件、常见的输入类控件、输入类控件的使用、Line Edit、Text Edit、Combo Box、Spin Box

文章目录 Qt5. Qt显示类控件Line EditText EditCombo BoxSpin BoxQDateTimeEditDialSlider Qt 5. Qt显示类控件 Line Edit QLineEdit 用于表示单行输入框。可以输入一段文本,但是不能换行。 属性说明text输入框中的文本inputMask输入内容格式约束maxLength最大长度…

【HAD】Half-Truth: A Partially Fake Audio Detection Dataset

文章目录 Half-Truth: A Partially Fake Audio Detection Dataset背景key points研究数据集设计评价指标实验基线:utterance-level分类(话语级)基线:segment-level分类(片段级)Half-Truth: A Partially Fake Audio Detection Dataset 会议/期刊:Interspeech 2021 CCF-C…

哈佛医学生一个月吃720个鸡蛋,结果发现......

你们听说过吃鸡蛋还能降低胆固醇的操作吗? 前段时间,哈佛医学院的学生尼克诺尔维茨(Nick Norwitz)就做了这样一个实验,得出的结果让大家震惊! 许多人认为狂吃鸡蛋不会有好处,因为这会摄入大量胆…

FFT过程中自动补零,补零部分FFT结果不为零

在 FFT(快速傅里叶变换) 中,补零(Zero Padding)是为了使信号的点数符合 2 的幂次方,以提高 FFT 的计算效率。然而,即使你对信号进行了补零,FFT 计算后在补零部分可能会得到复数结果不…

<项目代码>YOLOv8工具识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

数字化营销助企业在生态平台实现内卷突围

在当今数字化时代,企业竞争激烈,内卷化严重。而数字化生态平台建设与数字化营销为企业带来了新机遇。 数字化生态平台意义重大。它能整合企业内外资源,提高运营效率。打破地域限制,拓展市场,吸引更多客户。还能为企业创…

TCP——Socket

应用进程只借助Socket API发和收但是不关心他是怎么进行传和收的 数据结构 图示Socket连接 捆绑属于隐式捆绑

如何快速解决谷歌网站页面收录难题?

在外贸网站的运营中,页面无法被谷歌收录是一个常见的困扰。即便你的内容再优秀,如果搜索引擎的爬虫无法抓取到你的页面,那一切努力都将白费。而GPC爬虫池服务可以帮助你快速解决网站页面的收录问题。它通过千万级的爬虫池资源,强力…

【信创】银河麒麟安装程序记录

银河麒麟安装程序记录 Step1 添加外网yum源Step2 安装软件安装MySQL(8.0.32)安装JDK安装jdk17安装Nginx(1.21.5)安装Redis(4.0.14)安装Emqx(4.4.19)安装RocketMQ(5.1.4&a…

基于STM32的多功能MP3播放器

基于STM32的多功能MP3播放器 基于STM32的多功能MP3播放器一、项目背景与意义二、系统设计与实现2.1 硬件设计2.2 软件设计2.3 系统调试 三、功能实现与展望四、结论五、附录 基于STM32的多功能MP3播放器 在数字化时代,多功能播放器已成为我们生活中不可或缺的一部分…

Maven骨灰级教程:从小白到高手的终极指南(一)

目录 1. Maven的概念 1.1 什么是Maven 1.2 什么是依赖管理 1.3 什么是项目构建 1.4 Maven的应用场景 1.5 为什么使用Maven 1.6 Maven模型 2.初识Maven 2.1 Maven安装 2.1.1 安装准备 2.1.2 Maven安装目录分析 2.1.3 Maven的环境变量 2.2 Maven的第一个项目 2.2.1…

学习threejs,THREE.ConvexGeometry凸包高级几何体

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ConvexGeometry凸包高…

Http模块总体设计

在前面的文章中,我们已经实现了一个主从Reactor模型的服务器类,但是由于他只是一个服务器,不涉及任何业务以及协议的处理,那么为了方便用户使用,我们可以预先设置好协议的支持,只需要让用户进行业务处理就行…

【Qt】Windows下Qt连接DM数据库

环境信息:W11 Qt5.12及以上 dm8 QODBC达梦 Windows环境创建ODBC数据源 使用 ODBC 方法访问 DM 数据库服务器之前,必须先配置 ODBC 数据源 在控制面板Windows工具中显示ODBC数据源管理器 ODBC数据源管理器标签 用户 DSN:添加、删除或配置本…

jmeter中发送post请求遇到的问题

用jmeter发送post请求,把请求参数放在Body Data处,参数都写得正确,但没想到结果每次都报错,直接响应结果乱七八糟,改成用Parameters,反而不乱报错了。 上图 请求里如下 另外一些请求也是这样 这个响应结果也是错误的…

⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

国家超算互联网测评——用一分钱的显卡做大模型微调

大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧 背景信息 算力、算法、数据,…