[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必备基础技能和实用文章

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

  1. 3d 角色血条制作方案:解决近大远小的策略

    血条制作方案 1. 2D在一个canvas上做血条位置映射. 1  血条可以设置于3d 空间转换成2d 空间 2  设置 到 canvas上的 血条 position 缺点:不可以跟随角色距离而近大远 ...

  2. Unity 2D血条制作方式

    博主在前两篇博客中写了关于分段式血条和多层血条的实现方式,但是基于一下初学者的考虑,还是决定把2D的血条制作方式也是贴出来,方便大家进行学习和使用. 第一步:我们创建一个Slider,把图片和背景修改 ...

  3. U3D游戏角色血条制作并显示血量变化

    U3D游戏角色血条制作并显示血量变化 关键:利用Slider来制作血条 大概效果: 数字会随着血量变化而变化. 步骤 1.在层级面板中右击,选择UI中的Slider. 2.创建好后,将Slider命名 ...

  4. Unity 3D游戏十:血条制作

    前言 中山大学数据科学与计算机学院3D游戏课程学习记录博客. 游戏代码: gitee 参考师兄的博客: 师兄博客 游戏视频:bilibili 游戏要求 血条(Health Bar)的预制设计. 具体要 ...

  5. unity初学6——简易的UI制作(血条制作)和音频加入以及NPC的对话气泡(2d)

    该文来是学习chutianbo老师的笔记,链接b站 UI的创建 1.右键Hierarchy空白处 UI➡canvas 2.这里一共使用了三个素材 层级结构 UI:初始画布 characters:头像 ...

  6. UI入门——血条制作

    文章目录 实验内容 IMGUI制作简单血条 UGUI设计血条预制 动态效果展示 两种制作的优缺点 IMGUI优缺点分析 UGUI优缺点分析 预制使用方法 更新 解决血条暴露行踪问题 实验内容 实现简单 ...

  7. Unity UGUI血条制作详细教程

    Unity3d游戏中使用UGUI制作角色头顶血条,具体步骤如下: 1.模型添加血条挂点 2.制作血条 (1).创建血条UGUI canvas (2).修改canvas参数: RenderMode参数设 ...

  8. Unity3D 人形血条制作小知识

    这几天用Unity3D做个射击小游戏,想做个人形的血条.百思不得其解,后来问了网上的牛牛们,攻克了,事实上挺简单的,GUI里面有个函数DrawTextureWithTexCoords就能够实现图片的裁 ...

  9. NGUI血条制作及血条跟随角色目标

    首先建2个Sprite一个做背景一个做前景: 给背景添加一个脚本如图progress bar Script.然后拖到对应的位置.然后就就ok了... 接下来就开始设置目标跟随.首先建立一个Cube作为 ...

最新文章

  1. 实时的激光雷达点云压缩
  2. 华为机试第九题python
  3. class() 高级用法 -- lua
  4. 怎么用js调用C#后台方法
  5. 对于窗口大小为n个滑动窗口,最多可以有( )帧已发送但没有确认。
  6. 最新.NET MAUI有什么惊喜?
  7. SpringMVC学习--文件上传
  8. STM32 SPI NSS 作用
  9. 开着开着,Model S天窗飞了!特斯拉回应...
  10. 2007年7月27日
  11. 三维重建| iPad Pro2020 专业3D扫描应用程序 3D Scanner App(App Store可免费下载)
  12. Cpp--string常用函数用法总结
  13. CentOS7+VMware 14的安装教程
  14. Linux 共享内存
  15. GIT面试题——分支
  16. sigmoid的通俗理解
  17. 【报告分享】2022年轻人未来恋爱白皮书-36氪后浪研究所(附下载)
  18. 1.1XAF框架开发视频教程-简单的订单管理实现过程,视频,提纲,及教程源码
  19. iphone忘记锁屏密码如何解决
  20. 移动应用UI设计(上)

热门文章

  1. Web自动化测试实战(二)
  2. 在apache中运行 cgi程序
  3. 系统u盘怎么改回普通_u盘启动盘恢复成普通u盘u盘操作系统_详细教您怎么把系统装进U盘...
  4. 氖星数字人口型、动作、表情接口
  5. 网络与验证服务器失联怎样修复,GCP用一键服务器失联了,如何重装系统?
  6. 【英语面试常见问题集锦】
  7. INCONEL 617 耐腐蚀性能
  8. 金色传说:SAP-ABAP-VK11/VK12/VK13保存时增强
  9. scal 解析json字符串
  10. 1、跑马灯之图片循环滚动