创建人物状态栏
接下来,我们来尝试制作一下我们的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 主要针对的是应用开发者与第三方设备开发者…...
CCS12.2配置避坑:手把手教你为DSP28335生成可烧录的.bin和.hex文件
CCS12.2实战:DSP28335固件生成终极指南 最近在调试一块基于DSP28335的电机控制板时,遇到了固件升级的难题。传统的.out文件虽然可以通过仿真器下载,但在现场维护时显得力不从心。这时候,能够通过串口或CAN总线直接升级的.bin和.he…...
终极指南:STL到STEP格式转换神器stltostp使用教程
终极指南:STL到STEP格式转换神器stltostp使用教程 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在3D设计和工程制造领域,格式转换是连接创意与生产的关键桥梁。今天我…...
从零到一:51单片机数字电子时钟的DIY全流程解析
1. 项目背景与准备 数字电子时钟是单片机入门最经典的练手项目之一。我第一次接触51单片机时,也是从做一个电子时钟开始的。这个项目涵盖了定时器中断、数码管显示、按键扫描、蜂鸣器驱动等核心知识点,而且最终能看到实物运行,成就感直接拉满…...
告别发热!用TPS54360改造你的LM317线性电源(效率提升300%)
告别发热!用TPS54360改造你的LM317线性电源(效率提升300%) 在电子设计领域,线性稳压电源因其简单可靠而广受欢迎,但效率低下导致的发热问题始终困扰着工程师们。以LM317为代表的经典线性稳压器,在输入输出电…...
Memos笔记数据安全吗?手把手教你配置自动备份到GitHub/对象存储(防丢指南)
Memos数据安全全攻略:从本地备份到云端同步的完整方案 Memos作为一款轻量级开源笔记工具,凭借其简洁界面和本地存储特性赢得了不少用户青睐。但数据安全始终是悬在每位用户心头的一把剑——服务器宕机、硬盘损坏、误操作删除都可能让珍贵笔记瞬间消失。本…...
小模型大能力:DeepSeek-R1-Distill-Qwen-1.5B在边缘计算中的应用
小模型大能力:DeepSeek-R1-Distill-Qwen-1.5B在边缘计算中的应用 1. 引言:边缘计算时代的轻量级AI解决方案 在AI技术快速发展的今天,大模型已经展现出惊人的能力。然而,当我们把目光投向边缘计算场景时,传统的百亿参…...
Unity 实现Slot Machine两种动态停止效果的实战解析
1. 老虎机效果设计核心思路 老虎机作为经典游戏机制,其动态停止效果直接影响玩家的游戏体验。在Unity中实现这类效果时,我们需要考虑两个关键因素:物理真实感和心理预期管理。缓慢减速效果通过逐渐降低转速营造紧张氛围,而惯性回弹…...
Windows/Mac双平台实测:FORCE PRO 6.3.0求解器从注册到下载的完整配置流程
Windows/Mac双平台实测:FORCE PRO 6.3.0求解器从注册到下载的完整配置流程 在工程优化与控制领域,FORCE PRO求解器凭借其高效的数值计算能力和灵活的接口设计,已成为众多开发者的首选工具。最新发布的6.3.0版本在算法效率和平台兼容性上都有…...
CosyVoice语音克隆实战:如何用300M轻量级模型实现跨语种音色复制
CosyVoice语音克隆实战:如何用300M轻量级模型实现跨语种音色复制 在数字内容创作领域,语音合成技术正经历着从机械朗读到情感化表达的质变。CosyVoice-300M作为一款轻量级语音克隆模型,以其仅300MB的体量实现了专业级的音色复制与跨语种转换能…...
拯救变砖的STM32:利用BOOT0/1组合实现三种烧录救机方案(含串口/JTAG异常处理)
STM32紧急救援指南:BOOT引脚组合的三种烧录方案与异常处理实战 引言:当STM32突然"变砖"时 深夜的实验室里,王工盯着眼前毫无反应的STM32开发板,额头渗出细密的汗珠——距离项目交付只剩12小时,核心控制程序却…...
