[Unity2D/3D]实用的血条制作(第二期)

2023-11-13

[Unity2D/3D]实用的血条制作(第二期)

前言:第一期我为大家介绍了一种我自己摸索出来的血条制作方法,不是很常规,在这里我为大家介绍一种比较常用的血条制作方法,利用Mask组件来制作,让我们一起来看看叭~

效果如图:
在这里插入图片描述

1.首先我们把制作血条的UI摆放好,注意摆放的顺序会影响UI的遮挡关系,在最上方的UI在场景中是位于最下方的,在最下方的UI是在场景中最上方的,例如正常情况下是这样:
在这里插入图片描述现在我交换一下顺序后:
在这里插入图片描述在这里插入图片描述
2.摆放好UI后,再创建一个image图片,为其添加一个Mask组件,并调整image其大小(英文模式下快捷键T可以让鼠标在scene场景中对图片大小进行调整,缩放工具也能调整),使其能够将血条遮盖住。
在这里插入图片描述
接着我们将遮罩Mask组件中的ShowMaskGraphic取消勾选,这样在场景中就看不到遮罩了,并让其背后的血条显示出来
在这里插入图片描述
在这里插入图片描述
3.将血条移动到遮罩的下方,使其成为遮罩的子物体,随后我们修改遮罩的大小就能够看见血条也随之发生了改变
在这里插入图片描述在这里插入图片描述
接下来非常重要的一点就是,调整遮罩的中心位置,我们这个血条的修改原理是通过修改遮罩的宽度来对其子物体进行遮罩的,如果其遮罩的中心在中间,那么在改变其宽度的同时,遮罩的两边会同时被修改,如下图所示:
在这里插入图片描述
让我们改变其遮罩的中心,使用修改图片大小的工具,对图片的中心点进行移动
在这里插入图片描述将其移动到遮罩边框的最左边即可:
在这里插入图片描述
这样我们在代码中修改的时候就能够发现,由两边向中心修改其长度时,由于中心左边没有了遮罩,所以遮罩只能够从右边开始收拢:
在这里插入图片描述
4.接下来通过代码来控制遮罩,创建一个脚本添加到遮罩上,记住如果直接复制的我的脚本,脚本的名称要和我一样不然会报错,我的脚本名称是BoolController:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class BoolController : MonoBehaviour
{
    public Image mask; //定义遮罩的名称
    private float originalSize;  //定义一个控制遮罩大小的浮点数
   
    void Start()
    {
        originalSize = mask.rectTransform.rect.width;  //获取遮罩开始的宽度值
        //也可以给遮罩在这里设置一个初始值
        Debug.Log("初始遮罩的宽度为:"+originalSize);
        //由于每个人创建的图片大小不一样,所以导致了遮罩的大小不一样
        //我们要知道遮罩的初始大小通过改变遮罩的大小来实现血条的变化
        //我的工程里面遮罩的大小是504.3875  所以100就是其五分之一
    }


    void Update()
    {
        if(Input.GetKeyDown(KeyCode.A))  //按A使遮罩变短
        {
            
            originalSize = originalSize - 100f;  //我的工程里面遮罩的大小是504.3875  所以100就是其五分之一 也就是说减少五分之一的血量
            Debug.Log(originalSize);
        }
        else if(Input.GetKeyDown(KeyCode.D))//按D使遮罩变长
        {
            originalSize = originalSize + 100f; 我的工程里面遮罩的大小是504.3875  所以100就是其五分之一 也就是说增加五分之一的血量
            Debug.Log(originalSize);
        }
        mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, originalSize);

        //mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, originalSize);  竖向改变

        //SetSizeWithCurrentAnchors(遮罩改变的方向,可以选横轴也可以选纵轴, 改变的大小);
    }

}

我代码中的数值不一定与你的适用,你自己Debug出来看看,然后再具体看大小
在这里插入图片描述
关键代码就那一句:

 mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, originalSize);
 //mask 是 image

当然也可以修改纵向,如我把Horizontal改成Vertical后:
在这里插入图片描述
如有什么问题欢迎在下方给我留言,觉得好用的话就点个赞吧

点解链接可以看到更多实用文章:Unity必备基础技能和实用文章

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Unity2D/3D]实用的血条制作(第二期) 的相关文章

随机推荐

  • 【Pytorch Lighting】第 9 章:部署和评分模型

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Win10系统安装使用H3C HCL实验室(最新版)方法

    如果安装了wsl2虚拟机的 首先参照此教程将wsl版本降为1 https blog csdn net qq 26123545 article details 120169070 spm 1001 2014 3001 5501 如果之前的HC
  • CMake编译.dll并使用开源库SDE

    目录 环境 项目修改 编译 dll文件并确保它能正常使用 测试使用 dll文件 文件下载链接 环境 本篇博客所要做的是 Win10环境使用CMake编译一个开源C 库 这个库所有 h头文件和 cpp源文件都有了 将这个库编译为动态链接库 d
  • armbian安装图形桌面_Linux桌面环境(桌面系统)大比拼「附带优缺点」

    早期的 Linux 系统都是不带界面的 只能通过命令来管理 比如运行程序 编辑文档 删除文件等 所以 要想熟练使用 Linux 就必须记忆很多命令 后来随着 Windows 的普及 计算机界面变得越来越漂亮 点点鼠标就能完成很多工作 人们已
  • x86-64 汇编基础 ---- 记读 《CS: APP》

    x86 64 汇编基础 记读 CS APP 通常情况下 使用现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 1 看懂汇编码 1 汇编码的格式 ATT格式 这是GCC OBJDUMP和其它一些工具的常用格式 由
  • 推荐系统实战2——EasyRec 推荐框架环境配置

    推荐系统实战2 EasyRec 推荐框架环境配置 学习前言 先验条件 EasyRec仓库地址 EasyRec环境配置 一 EasyRec的下载 二 EasyRec的初始化 三 EasyRec的安装 四 一些额外的情况 学习前言 EasyRe
  • opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG

    实测代码如下 include
  • OpenStack的搭建与使用

    初次接触open stack与Linux 如有错误与可改进的地方 恳请指出 一 搭建 一 配置推荐 系统 镜像 内存 储存 Linux centos7 6 16G 100G 二 前期准备 1 开启虚拟化 图2 1 开启虚拟化 2 关闭防火墙
  • C语言典型例题四——斐波那契数列

    Fibonacci 斐波那契 数列 求斐波那契数列的前40个数 这个数列有个特点 第1 2两个数为1 1 从第三个数开始 该数是其前面两个数之合 即该数列为1 1 2 3 5 8 13 这是一个有趣的古典数学问题 有一对兔子 从出生后第三个
  • python 在Excel中新增一列

    1 在Excel中定义新列 定义新列需要用到columns tolist 函数 具体代码如下 col name df columns tolist col name insert 新列位置 新列名称 wb df reindex column
  • Log4j2源码分析系列:(一)配置加载

    在实际开发项目中 日志永远是一个绕不开的话题 本系列文章试图以slf4j和log4j2日志体系为例 从源码角度分析日志工作原理 学习日志框架 首先要熟悉各类日志框架 这里推荐两篇文章 就不再赘述了 https www cnblogs com
  • C——选择结构

    选择结构 1 关系运算与逻辑运算 1 1 关系运算 1 2 逻辑运算 2 if语句 2 1 单分支的if语句 2 2 双分支的if语句 3 条件运算符 4 switch语句 1 关系运算与逻辑运算 C语言中的逻辑值 C语言将 非0 值当做值
  • buuCTF [ISITDTU 2019]EasyPHP 1

    buuCTF ISITDTU 2019 EasyPHP 1 直接代码审计 第一个if 过preg match 一般有三种方法 取反绕过 异或绕过 转义绕过 这里用取反绕过 第二个if的意思是输入的字符串不重复的字符长度不超过0xd即13 如
  • select 模型解释

    套接字模式 阻塞套接字和非阻塞套接字 或者叫同步套接字和异步套接字 套接字模型 描述如何对套接字的I O行为进行管理 Winsock提供的I O模型一共有五种 select WSAAsyncSelect WSAEventSelect Ove
  • mybatis plus分页total=0、不计算总数的终极解决方案!!!

    当你在加入分页配置 如下 Configuration public class MybatisPlusConfig mybatis plus分页插件 Bean public PaginationInterceptor paginationI
  • 爬虫字体反爬的解决(一)

    爬虫字体反爬的解决 一 学习了前边的爬虫知识 大家一定爬取过很多的网站了 也一定被很多网站的各式各样的反爬机制劝退过 那么这些反爬机制如何来破解 大家也一定想破了头 本节课 我们来搞点不同寻常的有深度的事情 破解字体反爬 大家看目录 发现我
  • 【待解决】[LeetCode-101]-Symmetric Tree(判断两颗二叉树是否对称)

    文章目录 0 题目相关 1 Solution 0 题目相关 题目解读 给定两颗二叉树 对这两颗二叉树进行比较 判断这两棵二叉树是否对称 原题描述 原题链接 Given a binary tree check whether it is a
  • LeetCode题——最长无重复子串

    题目 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 如 输入 abcbabcd 输出 4 解释 因为无重复字符的最长子串是 abcd 所以其长度为 4 思路 一开始容易往暴力遍历的方向想 但是实际上运用窗口的思想就很容易解
  • [Unity2D/3D]实用的血条制作(第二期)

    Unity2D 3D 实用的血条制作 第二期 前言 第一期我为大家介绍了一种我自己摸索出来的血条制作方法 不是很常规 在这里我为大家介绍一种比较常用的血条制作方法 利用Mask组件来制作 让我们一起来看看叭 效果如图 1 首先我们把制作血条
  • Linux网络:数据链路层

    文章目录 数据链路层 和 网络层 认识以太网 以太网帧格式 认识MAC地址 认识MTU MTU对IP UDP TCP协议的影响 ARP协议 ARP数据报的格式 DNS Domain Name System 简介 域名简介 ICMP协议 pi