Unity UGUI实现分段式血条
我们可以看到像英雄联盟等游戏里英雄头顶的血条显示并非是纯色的,而是根据血量的多少而显示一定量的格子,这种方式明显是比较友好、比较美观的,事实上我们的游戏里面也想实现这样的效果,那该怎么办呢?根据血量的多少同时创建N多个小格子图片?这明显不合理;根据血量多少同时创建N多个分割线来拆分图片?这也不合理。
所以我今天将以一种很简单的方式实现这种效果,当然没什么难度,只对UGUI的Slider做一些修改就可以了。
一、首先,我们创建一个Slider,删除他的Handle,勾选Whole Numbers(按整型数改变值),大概就是这样:
二、给Fill Rect目标添加我们的脚本BloodImage,并删除原本的Image组件,为BloodImage指定一个纹理,纹理必须是Texture类型:
BloodImage继承至RawImage,所以只能接收Texture类型的图片源,他主要负责的就是根据血条的长度对图片进行循环排版。
using UnityEngine;
using UnityEngine.UI; public class BloodImage : RawImage { private Slider _BloodSlider; 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);
}
}
}
到这里,基本上就OK了,你想要血条显示为多少个小格子,就更改slider的Max Value属性(最大值)就可以了。
效果图如下:
当然如果你有更好的素材,这个血条会更加美观。
三、我已经将BloodSlider发包成一个插件,导入该插件,便可以直接在场景创建BloodSlider。
插件链接:http://download.csdn.net/detail/qq992817263/9660453
Unity UGUI实现分段式血条的更多相关文章
- Unity UGUI HUD 怪物血条实现
首先做一个血条,创建一个名为Follow3DObject的脚本添加到血条控件上. Follow3DObject.cs的代码如下: using UnityEngine; using System.Col ...
- unity如何显示血条(不使用NGUI)
用unity本身自带的功能,如何显示血条? 显示血条,从资源最小化的角度,只要把一个像素的色点放大成一个矩形就足够,三个不同颜色的矩形,分别显示前景色,背景色,填充色,这样会消耗最少的显存资源. un ...
- Unity NGUI弧形血条的制作
unity版本:4.6 NGUI版本:3.6. (转载请注明参考链接及作者) 参考链接:http://www.cnblogs.com/louissong/p/3841656.html,作者:博客园 L ...
- unity制作简单血条
学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找 ...
- Unity NGUI 血条制作
NGUI 血条制作步骤 实现过程: 模拟血条的变化当点击按钮Button是血条会实时发生变化. 1.向Unity中导入NGUI2.6.3.unitypackage 点击create your ui 后 ...
- 【FairyGUI & Unity】实现血条UI扣血与加血的缓动效果
组件设计 创建一个进度条组件,作为血条. bar是实际血量条 DownBar是扣血缓动背景图层 UpBar是加血缓动背景图层 LowBar是低血量变色(和控制器配合,本文不讲) n11组合是血量参考线 ...
- UGUI血条跟随
定义常量 public class Content { //当前UI分辨率 public const float UI_Width = 1366f; public const float UI_Hei ...
- 关于Unity中NGUI的3D角色血条的实现
首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HU ...
- UGUI之Slider使用,制作血条
用Slider来控制Cube旋转 Slider是滑动条.
随机推荐
- ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移
前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理 ...
- [LeetCode] Circular Array Loop 环形数组循环
You are given an array of positive and negative integers. If a number n at an index is positive, the ...
- MySQL 并行复制从库发生自动重启分析
并行复制从库发生自动重启分析 背景 半同步复制从库在晚上凌晨2点半发生自动重启,另一个异步复制从库在第二天凌晨3点也发生了自动重启. 分析 版本mysql 5.7.16 mysql> show ...
- ML笔记:Classification: Probabilistic Generative Model
用回归来做分类: 远大于1的点对于回归来说就是个error, 为了让这些点更接近1,会得到紫色线. 可见,回归中定义模型好坏的方式不适用于分类中.---回归会惩罚那些太过正确的点 如何计算未出现在训练 ...
- slf4j 与各个 logging框架的适配器说明
在java领域里,日志框架纷杂繁多,项目中必然要使用很多的第三方库,而这些第三方库所使用的log框架又不尽相同.想要打出合理有效的日志,就必须在你的项目中将这些日志框架统一才行.幸好,slf4j, c ...
- [LOJ 6248]「CodePlus 2017 11 月赛」晨跑
Description “无体育,不清华”.“每天锻炼一小时,健康工作五十年,幸福生活一辈子” 在清华,体育运动绝对是同学们生活中不可或缺的一部分.为了响应学校的号召,模范好学生王队长决定坚持晨跑.不 ...
- 【bzoj4572 scoi2016】围棋
题目描述 近日,谷歌研发的围棋AI—AlphaGo以4:1的比分战胜了曾经的世界冠军李世石,这是人工智能领域的又一里程碑. 与传统的搜索式AI不同,AlphaGo使用了最近十分流行的卷积神经网络模型. ...
- sklearn.model_selection 的 train_test_split作用
train_test_split函数用于将数据划分为训练数据和测试数据. train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train_data和test_data ...
- Delphi备忘录——基本语句
选择语句: 1.If-Then-Else选择语句: If (表达式) Then Begin 语句块; End Else If(表达式) Then Begin 语句块; End; Else Begin ...
- 第四周小组作业:Wordcount优化
1.小组github地址 https://github.com/muzhailong/wcPro 2.PSP表格 PSP2.1 PSP阶段 预计耗时(分钟) 实际耗时(分钟) Planning 计划 ...