上篇讲述了Boss多层血条的实现方法,这篇就主要讲述一下类似于王者荣耀,LoL的分段式血条,
这样的血条在游戏的视觉层会带给玩家非常好的体验。就好比玩家买了一个狂徒铠甲。如过你用
的是分段血条的话,就立即会增加血格,这样用户直接从视觉上会他看到了这件装备的效果,
他就会觉得他这个装备买值了,这件装备很厉害,就会感觉自己非常肉,然后就感觉自己的人生达到了
巅峰。但如果是一管的血条,你买了,血条还是那样没又任何变化,甚至这时候你都在怀疑,我买了这
件装备,有用吗?效果在哪里?所以有些东西,用户买了,要从视觉上就能给人表达出来,让用户知道
你买了这件装备,而且还很牛X,才会让用户记住这款游戏。

所以,我们一起来学习多段血条的制作吧!

效果图:


效果二 等宽无拉伸:

多段血条实现的原理就是,通过继承RawImage 重写父类方法,控制Rect的w值来实现的,和NGUI
背包物品拖拽交换的原理是一样的,都是通过继承和重写来达到自己想要的目的。当然既然说到了背包
物品的拖拽和交换,那么博主就好人做到底,在下面的博客中博主会把背包物品拖拽交换做成类似于小
插件或小工具,然后发布到博客,供大家使用。所以,为了下次可以方便的找到博主,这里可以关注下
博主噢。

下面介绍下多段血条的组成:

1.血条是由一个Slider构成的,如下图:

2.Max Value 用来控制初始血格的最大数,Value的值为多少,血格的个数就为多少。

3.在血量减少时,血格也会减少,血格的减少时通过UV Rect 的 w 值来进行控制的,
W值越小,血格越少,血量越低。

注意血条的图片是通过Awake()的Resource读取赋值的,图片很简单,很容易制作,这里就不上传了。

下面贴出图片样式和源码:

最后图片格式很重要 否则无法正常显示血条:


源码:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UguiSlider : RawImage {/// <summary>/// 血条的值/// </summary>private Slider _BloodSlider;/// <summary>/// 血量图片红色/// </summary>private Texture redTexture;/// <summary>/// 血量图片绿色/// </summary>private Texture greenTextre;protected override void Awake(){base.Awake();//找图片redTexture = Resources.Load("222") as Texture;greenTextre = Resources.Load("111") as Texture;}/// <summary>/// 重写父类方法/// </summary>protected override void OnRectTransformDimensionsChange(){base.OnRectTransformDimensionsChange();//获取血条if (_BloodSlider == null){_BloodSlider = transform.parent.parent.GetComponent<Slider>();}//不等于空if (_BloodSlider != null){//赋值float Value = _BloodSlider.value;uvRect = new Rect(0, 0, Value, 1);//血量为0时,没有血量图片if (Value == 0){texture = null;}//血量大于0,小于最大血量的20%时,血量为红色else  if(Value< _BloodSlider.maxValue*0.2f&&Value>0){texture = redTexture;}//血量大于等于最大血量的20%时,血量为绿色else if (Value >= _BloodSlider.maxValue*0.2f){texture = greenTextre;}}}}

好了,多段血条就这样制作完成了!

上一篇:Dnf Boss版多层血条制作

努力积才能,壹叶便成名。

Unity UGUI实现王者荣耀版多格血条相关推荐

  1. 【Unity使用UGUI实现王者荣耀UI界面(四)】游戏开始界面

    文章目录 [Unity使用UGUI实现王者荣耀UI界面(四)]游戏开始界面 1. 把一些重复的UI添加 2. 开始游戏按钮 3. 注销按钮 4. 完成 5. 打包 6. 打包完成 内 容 简 介 章节 ...

  2. 【Unity使用UGUI实现王者荣耀UI界面(三)】登录界面以及加载界面优化

    [Unity使用UGUI实现王者荣耀UI界面(三)]登录界面以及加载界面优化 [只是用来玩玩的,不要太当真] 效果显示: zhans 1. 加载界面进度100%跳转登录界面 这个功能好做,只需要将上次 ...

  3. 【Unity使用UGUI实现王者荣耀UI界面(二)】加载页面-静音按钮和页面完善

    效果展示 文章目录 [Unity使用UGUI实现王者荣耀UI界面(二)]加载页面-静音按钮和页面完善 1. 打开项目 2. Toggle实现打开关闭音效的功能 2.1 Toggle组件演示 2.2 使 ...

  4. 【Unity使用UGUI实现王者荣耀UI界面(一)】加载页面(进度条)

    文章目录 [Unity使用UGUI实现王者荣耀UI界面(一)]加载页面(进度条) 1. 素材准备 2. 界面分析 3. 打开Unity Hub创建项目 4. 开始搭建UI 1. 准备工作 2. 背景图 ...

  5. Unity 之 模拟王者荣耀七日签到系统

    Unity 之 模拟王者荣耀七日签到系统 一,效果图 二,制作思路 三,场景搭建 四,代码实现 五,拓展补签版本 一,效果图 不带补签版本: 二,制作思路 使用切换图片背景颜色的方式,进行状态转换[灰 ...

  6. java鲁班课程_王者荣耀版Java教程第三期:鲁班刚出水晶就死了??

    场景回顾 用王者荣耀学JAVA,鲁班刚在水晶复活就没了--我们来聊聊什么是引用类型? 如果一个变量的类型是类类型,不是基本数据类型,那么这个变量叫做引用.比如说你刚开了一局排位,鲁班刚从水晶出来,就好 ...

  7. 王者荣耀用java_王者荣耀版Java教程第二期:类与属性

    1.用王者荣耀来学JAVA,理解什么是类? 相信你一定玩过王者荣耀这个游戏,就算没有玩过,肯定也听说过.假如,我们要自己设计这个游戏,你打算怎么做? 用面向过程的思想肯定是不行的,那么多英雄,那么多场 ...

  8. 王者荣耀用java_王者荣耀版Java教程第五期:Java类与对象(1)

    ​ 1. 继承 在王者荣耀中,武器多种多样,如下图所示: public classWeapons { String name;intprice; } ​ 然后,在我们设计一个具体的武器时,就继承武器类 ...

  9. Unity 回合制战斗系统(中级篇)-血条和伤害数值

    项目文件找出来了,老版本的脚本有报错,我在新版2019.4.21f1c1下解决了报错,战斗场景可以正常跑的. 需要的同学点下面地址下载(关注就行啦不用积分),祝大家都早日学成 项目包下载 ------ ...

最新文章

  1. TBluetoothLE.OnDisconnectDevice
  2. Mysql的sql语句,Delete 中包含 not in
  3. pkill mysql_每天一个linux命令:kill命令
  4. c++ string后面会添加‘\0‘
  5. java tostring的用处_JAVA的tostring()方法的作用是什么呢?
  6. android opengl es 雾化效果实例
  7. 使用函数计算打包下载OSS文件
  8. 树莓派安装系统并设置中文界面
  9. 2017-2018-1 20179202《Linux内核原理与分析》第四周作业
  10. 009一对一 主键关联映射_单向(one-to-one)
  11. 微信公众号(测试号)开发
  12. 一枚菜鸟前端工程师月度工作总结
  13. 饥荒服务器文档,建立饥荒服务器
  14. Debussy软件的脚本调用
  15. 英伟达3090Ti旗舰显卡,21Gbps速率,450W功耗和新接口
  16. python 爬取腾讯漫画
  17. 自主研发编程语言Mulan(木兰)评测(附视频讲解)
  18. VUE3 之 组件传参
  19. SaaS产品SEO完整指南
  20. java梅森素数计算程序_梅森素数计算器(prime95)

热门文章

  1. 知网CAJ论文 如何转换成pdf
  2. Pillow - putpixel操作 实现随机色的图片
  3. 如何用c语言串口通讯,串口通信入门
  4. 【泡泡图灵智库】基于优化的视觉惯性SLAM与GNSS紧耦合
  5. 【BI学习心得03-推荐系统眼中的你——用户画像】
  6. native vlan设置错误导致无法访问的问题排查过程
  7. Dirt4 Cross 游戏改装车辆(一)
  8. Final SwfPlayer下载后在安卓12上玩宇宙的刻度2
  9. springboot后端数据校验以及异常处理
  10. Python检查文件内容是否有变动