创建人物状态栏
接下来,我们来尝试制作一下我们的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,来调整里面的填充内容,之后要创造代码来进行设置
相关文章:

创建人物状态栏
接下来,我们来尝试制作一下我们的UI,我们会学习unity基本的UI系统 ************************************************************************************************************** 我们要先安装一个好用的插件到我们的unity当中,帮助…...

django5入门【01】环境配置
注意: ⭐前提:安装了annaconda(python版本管理工具),如果没有安装,强烈建议安装一下!!!操作: 前言: 这里新创建一个名为“python_3.11_start_dja…...

1000集《楼兰》系列短剧开机仪式在疆举行,开启全球传播新篇章
2024年10月18日,光明媚,秋风送爽。 在这个收获的季节里,倍受期待的楼兰系列短剧《楼兰之天女归来》和《楼兰之时空秘宝》在新疆吐鲁番东方红卓览文化博物馆举行了隆重的开机仪式,正式拉开了摄制的序幕。 1000集《楼兰》系列短剧…...

【景观生态学实验】实验五 景观生态脆弱性评价
实验目的 1.学习层次分析模型思路,对丹江口库区2000年景观生态脆弱性评价建模:通过实验课的学习,深入理解层次分析(Analytic Hierarchy Process,AHP)理论与模型,了解其在决策问题中的应用&…...

ChatGPT 现已登陆 Windows 平台
今天,OpenAI 宣布其人工智能聊天机器人平台 ChatGPT 已开始预览专用 Windows 应用程序。OpenAI 表示,该应用目前仅适用于 ChatGPT Plus、Team、Enterprise 和 Edu 用户,是一个早期版本,将在今年晚些时候推出"完整体验"。…...

和鲸社区数据科学实训季,西安交通大学圆满收官,西安,后会有期!
和鲸社区数据科学实训季活动已走进数十家高校,在西安的收官之站,落定西安交通大学管理学院,为本次西安之旅画上了圆满的句号。 和鲸社区 2024秋 数据科学实训季以“帮助同学积累真实场景项目经验”为出发点,提供 60 个数据科学实践…...

工作使用篇:如何在centos系统中安装anaconda
在CentOS 7上安装Anaconda的步骤如下: 1. 下载Anaconda 首先,你需要下载Anaconda的安装脚本。可以使用wget命令从Anaconda的官网获取最新版本的安装脚本。打开终端并运行以下命令: wget https://repo.anaconda.com/archive/Anaconda3-2024…...

qt creator 转 visual stdio 项目调试
因果 大家在使用qt creator调试程序时,会出现未知错误,比如下图,直接release运行就没有问题。由于调试复杂程序,使用qt creator都感觉不如vs,会报未知中断。 所以有了从qt creator转换到 visual stdio来调试的想法。…...

django5入门【02】创建新的django程序
注意: ⭐前提:已经安装了python以及django所依赖的包1、通过django-admin管理工具在命令行创建Django应用程序,创建命令如下: django-admin startproject ProjectName❓ 疑问:除了使用命令行创建django程序外&#x…...

乐趣无限,十个让你沉浸的“摸鱼”网站
在繁忙的生活中,我们总需要一些摸鱼时刻,来为紧绷的神经松绑。无论是工作间隙的小憩,还是下班后的放松,适当的摸鱼不仅能提升效率,还能让生活充满乐趣。今天,我为大家推荐几个绝对能让你乐在其中的网站&…...

ubuntu22.04 桌面系统怎么搭建一个esp-idf的项目,搭建开发环境
详细介绍如何在 Ubuntu 22.04 桌面系统上搭建 ESP-IDF 的开发环境,并创建一个 ESP-IDF 项目。以下内容将涵盖从环境准备到项目创建和编译的所有步骤。 目录 环境准备 1.1 更新系统1.2 安装必要的工具和依赖项 安装 ESP-IDF 2.1 克隆 ESP-IDF 仓库2.2 运行安装脚本 …...

iOS Swift逆向——deMangle过程中的偏移计算
碰到好多函数最开始都会调用这个函数,xref了一下,发现有上万个xref。 __int64 __fastcall sub_1000B6ED0(__int64 *a1) {__int64 result; // x0result *a1;if ( result < 0 ){result swift_getTypeByMangledNameInContext((char *)a1 (int)result…...

国产大模型基础能力大比拼 - 计数:通义千文 vs 文心一言 vs 智谱 vs 讯飞-正经应用场景的 LLM 逻辑测试
在大语言模型(LLM)不断涌现的时代,如何评估这些国产大模型的逻辑推理能力,尤其是在处理基础计数问题上的表现,成为了一个备受关注的话题。随着越来越多的国产大模型进入市场,比较它们在不同任务中的表现尤为…...

YOLO11改进 | 注意力机制 | 正确的 Self-Attention 与 CNN 融合范式,性能速度全面提升【独家创新】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 卷积和自注意力是两种强大的表征学习技术…...

0基础学java之Day11
二维数组 静态二位数组 理解:二维数组中包含了多个一维数组 声明: 数据类型 变量名;--推荐 数据类型 变量名; //静态初始化1//String[][] names new String[][]{{"小红","小绿","小蓝"},{"小黄","小紫…...

python主流框架Django:ORM框架关联查询与管理器
目录 注意 使用前要调用之前的模型类 F对象 Q对象 聚合函数 排序 关联查询(连表查询) 修改 删除 查询集 QuerySet 注意 使用前要调用之前的模型类 F对象 之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢? 答:使用 "F对象&quo…...

如何有效维护您的WordPress在线商店内容:提高客户参与度与转化率的实用技巧
在电子商务领域,内容为王。新鲜、相关且有吸引力的内容能显著提升客户参与度和转化率。本文将探讨如何有效更新和维护您的在线商店内容,确保客户始终获得最佳体验。 定期更新产品信息 产品描述 产品描述是吸引客户和促成销售的关键。定期检查并更新产…...

【Java】认识异常
1.异常概念与体系结构 1.1异常的概念 在我们日常开发中,代码都是尽可能完善,但是难免会出现一些奇奇怪怪的问题。而这些奇奇怪怪的问题可能很难通过代码去控制,比如格式不对会报错,网络不好也会报错等。 在Java中,将…...

20 Shell Script输入与输出
标出输入、标准输出、错误输出 一、程序的基本三个IO流 一)文件描述符 任何程序在Linux系统中都有3个基本的文件描述符 比如: cd/proc/$$/fd 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…...

HCIP-HarmonyOS Application Developer 习题(十六)
(判断)1、HiLink通过分布式软总线的方式连接所有设备,强能力设备可对弱能力设备进行设备虚拟化,将弱设备当做本机设备直接调用。 答案:错误 分析:HiLink 主要针对的是应用开发者与第三方设备开发者…...

没有什么可以抵达乌托邦,包括AI
本文为《智人之上:从石器时代到AI时代的信息网络简史》书评 可以说,尤瓦尔赫拉利又一次让我们获得了理解人类文明的新视角。 这是他一直以来都在做的:构建理解人类文明史的新知识框架。从此前的《人类简史》《未来简史》《今日简史》,到今天的新书《智人之上》,他一直保…...

家庭事务管理系统|基于java和vue的家庭事务管理系统设计与实现(源码+数据库+文档)
家庭事务管理系统 目录 基于java和vue的家庭事务管理系统 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,阿里云…...

doris创建异步物化视图(加速数据低频变更的复杂实时计算)
异步物化视图,可以把那些每次实时计算非常耗时的,而需要计算的数据变更比较低频的这些计算创建对应的异步物化视图,当相关数据变化的时候触发异步任务去更新计算结果,或者定时计算也可以。例如该处示范为计算订单的订单标识&#…...

PhpSpreadsheet创建带复杂表头的excel数据
目录 一:背景 二:excel表头数据实现 三:excel渲染数据实现: 四:最终效果如下: 一:背景 最近需要统计一些数据,导出到excel,主要是一些区域的人员销售统计数据,涉及到复杂的表头和…...

BurpSuite渗透工具的简单使用
BurpSuite渗透工具 用Burp Suite修改请求 step1: 安装Burp Suite。官网链接:Burp Suite官网 step2: 设置代理 step3: 如果要拦截https请求,还需要在客户端安装证书 step4: 拦截到请求可以在Proxy ->…...

洞察云上风险,主机安全尽在掌握
在实战攻防演练中,主机一直是攻击方的最终目标。作为网络架构中的重要组成部分,主机包含了大量的敏感数据、关键服务和系统资源。同时主机拥有网络资源的访问权限,攻击者通过入侵主机获得权限,进而控制整个网络或系统。因此做好主…...

使用kimi编辑助手,开始搭建一个微信小程序!第一天
为什么开源?因为不开源,一个人开发小程序,一点突如其来的变故就会导致自己整体处于一个不舒服的状态,同时自己从0开始1开始搭建小程序,也是自己个体之间能力的验证! 目前小程序版本:2.5.2 目前…...

【已解决】libev not found
学习韦东山老师的Linux应用开发实验班的JSON部分,在编译JSON包的过程中 报错命令: ./configure --hostarm-buildroot-linux-gnueabihf -prefix$PWD/tmp 错误信息: checking for libev support... checking for arm-buildroot-linux-gnue…...

qt QVariant详解
QVariant是Qt框架中一个功能强大的变体类,它提供了一种通用的方式来存储Qt对象及其他类的值,能够以类似于指针的方式存储任意类型的值。 一、 主要特性 通用性:QVariant可以存储几乎所有数据类型,包括基本数据类型(如…...

再获殊荣!通付盾当选信息技术应用创新工作委员会技术活动单位称号
近日,通付盾凭借其在信息技术应用创新领域的卓越贡献和突出表现,荣获“信息技术应用创新工作委员会技术活动单位”称号。这一荣誉不仅是对通付盾在技术创新和信息安全领域努力的肯定,更是对其在推动国家信息技术应用创新发展中发挥重要作用的…...