【Ruby 2D】【unity learn】抬头显示血条

news/2024/12/21 20:08:37/

说起游戏开发,大家一般会觉得控制角色移动和制作血条哪个难呢?

或许都会觉得血条比较难吧。

是的,正是如此。

那么我们让我们来看看血条该怎么做吧

 这是效果图

受伤后是这样的

首先是创建一张Canvas画布

这个画布会很大

 相比之下我们的小地图就显得微不足道了

随后我们创建两个image元素

将图片放入source image中就行了

我这里图方便就直接把头像作为子元素挂载在这个状态栏上了 

注意先后排布好就行

随后

我们要做的是

创建一个image对象 ,然后搜索Mask组件

 变为Mask,然后我们创建子对象image这个是血条我们就叫它Health Bar

然后会是这个状态

注意 蓝色血条里image中的image Type改为Simple,并且我们的锚点要设置在左上角,在Rect Transform中设置

这样血条才不会随着父对象变换位置,也不会随着大小的变化而改变形状

操作如下

 

 

选中最左上角 

注意我们的Mask只起遮罩作用,是不显示的

所以我们应该将一个设置关掉,也就是这里

 随后就是代码环节了,前面乱七八糟的很杂,但是代码倒不复杂

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MyUIHealthBar : MonoBehaviour
{// Start is called before the first frame updatepublic static MyUIHealthBar instance { get; private set; }//static将该变量设为全局变量,所有类都可调用public Image mask;//float originalSize;private void Awake(){instance = this;//一开始就将instance赋上值}void Start(){originalSize = mask.rectTransform.rect.width;//存Mask的宽度}// Update is called once per framevoid Update(){}public void SetValue(float value){mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, originalSize * value);//这里是修改值的函数,到Rubycontroller脚本会直接调用}
}

下面是Ruby的代码

 

MyUIHealthBar.instance.SetValue(currentHealth / (float)maxHealth);

 就这么一行,是的,就这么一行

因为我们的static已经将instace公开了,人人都可以调用,所以我们只需要附上类名就可以直接调用这个控制遮罩宽度的函数了,通过控制Mask遮罩,太达到一个血条增减的效果。


http://www.ppmy.cn/news/48031.html

相关文章

Spring AOP: 多切面的顺序,性能及异常监控

目录标题 一、Sprig的AOP操作JDK动态代理CGLib动态代理基于xml开发Spring AOP基于注解开发Spring AOP 二、多切面的顺序基于注解的配置基于Ordered接口配置基于XML配置 三、性能及异常监控性能监控异常监控 四、工程目录及运行结果图 一、Sprig的AOP操作 JDK动态代理 //接口 …

【STL】map容器

1、map容 map中所有元素都是pair组成pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动 排序 map/multimap属于关联式容器,底层结构由二叉树…

8万字智慧旅游景区信息化建设方案word

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 1.1. 整体建设框架 XXXXXX智慧景区旅游建设对于全面整合景区旅游资源,提升景区旅游产业发展能级,进一步增强景区旅游业的核心竞争力具有十分重要的支…

《Vue3实战》 第五章 计算、监听属性

《Vue3实战》篇章整体栏目 ————————————————————————————— 【第一章】node.js/npm安装、配置 【第二章】创建项目和目录结构 【第三章】基础语法 【第四章】条件语句、循环语句 【第五章】计算、监听属性 【第六章】样式绑定和事件处理 【第七章】…

Ae:摄像机设置

Ae菜单:图层/摄像机设置 Camera Settings 快捷键:Ctrl Shift Y 新建摄像机图层时,首先会弹出摄像机设置 Camera Settings对话框。 经典 3D 渲染器时的摄像机设置 Cinema 4D 渲染器时的摄像机设置 类型 Type 有两种类型的摄像机供选择。 提…

【计算机视觉 | 图像分割】Segment Anything论文讲解

文章目录 一、前言二、论文出发点三、创新思路四、方法4.1 Segment Anything Task4.2 Segment Anything Model4.3 Segment Anything Data Engine4.4 Segment Anything Dataset 五、结果 一、前言 论文:https://arxiv.org/pdf/2304.02643.pdf 项目:https…

数据库基础篇 《2. MySQL环境搭建》

目录 1. MySQL的卸载 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 ​编辑2. MySQL的下载、安装、配置 2.1 MySQL的4大版本 2.2 软件的下载 2.3 MySQL8.0 版本的安装 2.4 配置MySQL8.0 2.5 配置MySQL8.0 环境变量 …

Python办公自动化之PostgreSQL篇2——利用Python连接PostgreSQL并读取一张表

在上一篇我们已经安装好了最新的PostgreSQL,以及最方便的可视化工具,Navicat 如果错过的小伙伴,可以去上一篇查看:点我查看 今天我们来用Python连接一下PostgreSQL,然后准备一张测试表,导入PostgreSQL&am…