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

news/2024/4/24 21:20:24/

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

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

是的,正是如此。

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

 这是效果图

受伤后是这样的

首先是创建一张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…

数据爬虫爬数据时常遇到的问题

第一,可能不能直接通过pyppeteer简单的直接page.querySelectorAll()获取所有元素然后直接 str(await (await element_songer_name.getProperty("title")).jsonValue()) 得到数据值,主要原因可能是#document问题, 所以遇到这个问题…

4.13~4.17(PE文件结构预习+hook+进程hellow)

常见PE文件结构 常见的PE文件:exe、dll、sys Ag: exe就不用多说,就是可执行文件 dll动态链接库 对于 Windows 操作系统,操作系统的大部分功能都由 DLL 提供 (https://learn.microsoft.com/zh-cn/troubleshoot/window…

第一讲 初识Python

Python简介 Python(英式发音:/ˈpaɪθən/;美式发音:/ˈpaɪθɑːn/)是由荷兰人吉多范罗苏姆(Guido von Rossum)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户群体的编…

第二十二章 案例TodoList之鼠标事件

本小节,我们需要使用鼠标事件,给Item组件添加背景颜色,并显示删除按钮。 添加鼠标移入和移出事件 import React, { Component } from react import "./index.css" export default class Item extends Component {// 初始化状态数…

.Net中的标识框架Identity

中间件: 1、Authentication对访问者的用户身份进行验证,“用户是否登录成功”。 2、Authorization验证访问者的用户身份是否有对资源访问的访问权限,“用户是否有权限访问这个地址”。 简单描述 1、标识(Identity)框架…

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

1、挂载应用配置文件配置集ConfigMap 当有许多应用如redis、mysql,希望将它的配置文件挂载出去,以便随时修改,可以用ConfigMap配置集 具体用法查看使用命令行操作里的 3、ConfigMap配置集实战 2、挂载应用配置文件的敏感信息Secret Secre…

Linux 系统调用深思:从原理到实战

Linux 系统调用揭秘:从原理到实战(Demystifying Linux System Calls: From Principles to Practice) 引言(Introduction)系统调用的概念(Concept of System Calls)Linux操作系统与系统调用的关系…

使用element-plus组件,修改date-picker默认样式

使用深度选择器来修改子组件的样式&#xff0c;今天遇到一个需求&#xff0c;在el-drawer中嵌入的el-date-picker&#xff0c;再一次总结一下深度选择器的用法&#xff0c;需求如下&#xff1a; template内容&#xff1a; <el-drawer size"70%" v-model"dr…

Golang微服务一把嗦 用户微服务集成主流最新go技术栈

声明&#xff1a;此文章为博主个人学习记录&#xff0c;仅供学习和交流&#xff0c;如有侵权请联系博主。 前言 前段时间&#xff0c;因为本地k8s环境一直出问题&#xff0c;线上云环境也用不起&#xff0c;&#xff08;后面搞定了再慢慢学习&#xff09;所以就暂时搁置了k8s学…

【C/C++】GDB 快速定位虚函数表并获取详情信息

文章目录 在GDB中&#xff0c;可以使用以下命令来查看虚函数表&#xff1a; 首先&#xff0c;使用GDB调试程序&#xff0c;并在程序运行到需要查看虚函数表的地方停下来。 然后&#xff0c;使用命令“p /x (long)object”来查看对象的地址。这个命令会输出对象的地址&#xff…

DHCP原理与配置

目录 一、DHCP工作原理 1&#xff09;了解DHCP服务 使用DHCP的好处 DHCP的分配方式 2&#xff09;DHCP的租约过程 分为四个步骤 二、DHCP服务器的配置 1&#xff09;检查并且安装dhcp有关软件包 2&#xff09;查看系统的配置文件&#xff0c;并且利用好官方给的参考案…

一起学 Java(三) 集合框架、数据结构、泛型

一、Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容&#xff1a; 接口&#xff1a;是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言&#xff0c;接口通常形成一个层次。实现&#xff08;类&#x…