unity版本:4.6 NGUI版本:3.6.

  (转载请注明参考链接及作者)

  参考链接:http://www.cnblogs.com/louissong/p/3841656.html,作者:博客园 LouisSong

  

  很多情况下,我们需要做血量条来显示对象的血量,条状的血量条很容易,直接用NGUI里面的进度条就可以实现,但是有时候我们需要在一些地方做弧形的血量条,下面介绍弧形血量条的方法。

1、首先你需要一张弧形血量的图片,导入到NGUI的Altas中,NGUI图集Altas制作参考:http://www.cnblogs.com/vitah/p/3855982.html,下面已经导入了两张表示弧形血量的图片,如下所示:

2、导入图片后可以开始血条的制作,血条的显示可以用一个进度条或者两个Sprite来表示,其实就是用两个Sprite来表示血量,一个表示当前血量,一个表示已损失的血量,进度条里的Background和Foreground实质就是如此,下面只以一个Sprite为例来说明:

  在Camera下创建一个Sprite,选择导入的表示血量的Altas和Sprite,效果如下:

  这里再介绍下Sprite的各种参数:

    Type:

       Smple:除了显示内容从图集里面获取外,其他都和Texture一样的绘制

      Sliced:这个模式支持九宫格拉伸,让四个角落的图片不变型,点击Sprite右侧的Edit按钮可以进行Sprite数据的编辑,设置Border的值即可。

      Tiled:瓦片填充,会平铺进行填充

      Filled:这个主要用来做技能CD、进度条等用。FillDir设置填充的模式(360度扇形,水平,垂直等),Fill Amount是填充百分比

      Flip:对Sprite进行翻转:水平、垂直、水平+垂直

3、为了能展示血条的增加和减少,Type肯定选择Filled不用多说,我们现在只是需要调节血条的填充模式即Fill Dir选项:

  选择Horizontal和Vertical可以看到改变Fill Amount的值的时候血条分别是从左到右和从上到下减少的,血条的边缘处会有一个斜角,如下图:

  同样我们测试Fill Dir中的Radial90、180、360选项,可以很明显的看出NGUI里面Radial90是以矩形图片左下角的点为圆心减少和增加,Radial180是以图片矩形的底边中点为圆心,而Radial360是以矩形的对角线交点为圆心进行增减,Radial90和Radial180不必说,血条的边缘显示必定有倾角,而Radical360也会有倾角的存在,如下图:

  4、事实上,我们需要的是以图片矩形的上边的中点为圆心来进行血条的增加和减少,这样才能保证边缘处的倾角美观一致,可以按如下方法制作:

  把图片进行垂直翻转,即Flip选项设为Vertically,可以看到,图片已经翻转过来,这时候选择填充模式为Radial180,圆心仍然是矩形的底边中点,但图片已经翻转,可以看到这时候血条的边缘已经一致了,效果如下:

  可以看到血条的边缘已经很美观了;

5、但是这时候,血条的显示已经翻转过来,原来的血条效果是成凹形的,现在变成凸形的了,可以改变Transform中的Rotation值再次翻转,使血条的显示和给定图片中的效果一致,如下图:

6、接下来,我们可以再按上述方式创建一个红色血条表示血量的减少,通过脚本控制它们两者的Fill Amount的值就可以用绿色表示当前血量,红色表示已损失的血量,在此不再赘述。

Github上代码

总结:

  1、现在这种方式好像只能用于半圆形血条的显示效果,一定圆心角的弧长血条没有相应的美术资源没有测试过不太清楚;

  2、原来的想法是叫美术出了一个上半环为透明的下半环为绿色的表示血量的正方形图片,然后填充模式用Radial360,类似以前实现技能CD效果的方法来做,但是在导入到Altas中Unity会自动把透明的部分给切掉,此方法失败。

  如果有更好的方法或者疑问请留言,或者邮箱linw1225#163.com(#换成@),谢谢~~~

Unity NGUI弧形血条的制作的更多相关文章

  1. unity如何显示血条(不使用NGUI)

    用unity本身自带的功能,如何显示血条? 显示血条,从资源最小化的角度,只要把一个像素的色点放大成一个矩形就足够,三个不同颜色的矩形,分别显示前景色,背景色,填充色,这样会消耗最少的显存资源. un ...

  2. 【FairyGUI & Unity】实现血条UI扣血与加血的缓动效果

    组件设计 创建一个进度条组件,作为血条. bar是实际血量条 DownBar是扣血缓动背景图层 UpBar是加血缓动背景图层 LowBar是低血量变色(和控制器配合,本文不讲) n11组合是血量参考线 ...

  3. Unity NGUI 3.0.4版本 制作网络版斗地主

    Unity NGUI 3.0.4版本 @by 灰太龙  开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...

  4. Unity NGUI 血条制作

    NGUI 血条制作步骤 实现过程: 模拟血条的变化当点击按钮Button是血条会实时发生变化. 1.向Unity中导入NGUI2.6.3.unitypackage 点击create your ui 后 ...

  5. unity制作简单血条

    学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找 ...

  6. 关于Unity中NGUI的3D角色血条的实现

    首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HU ...

  7. Shader实例:NGUI制作网格样式血条

    效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了.Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中 ...

  8. 制作Unity中的单位血条

    本文章用于记录Unity的学习过程,如有疑问,欢迎交流. 1.血条的显示 在Unity场景中创建空物体,然后新建两个Image(图片),当然只用一个也行,一个作为填充来显示血量,一个作为血条的外框. ...

  9. Unity中制作血条2.0

    ##1.血量显示 不必像之前那样添加Slider组件 直接创建Image 在添加Source Image之后,将Image Type 修改为Filled 通过修改Fill Mode就可以显示不同效果 ...

随机推荐

  1. Qt模拟C#的File类对文件进行操作

    其实只是QT菜鸟为了练习而搞出来的 文件头: #include <QFile> #include <QString> #include <iostream> #in ...

  2. Facebook SDK

    <?php session_start(); header('Content-type:text/html; charset=UTF-8'); require_once './facebook- ...

  3. C#网络编程简单实现通信小例子-1

    1.主界面 2.源程序 Send public partial class formUdpSend : Form { //声明一个UdpClient对象 UdpClient udpClient; pu ...

  4. 【Entity Framework】初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍

    本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...

  5. Unity3D中Ragdoll的用法

    一.创建Ragdoll      见unity3d组件文档里的Ragdoll Wizard.由于unity3d中的Ragdoll设置的骨骼点名字与3DMAX里人体骨骼命名有些不一样,下图为Unity3 ...

  6. 手写归并排序(MergeSort)

    #include<iostream> #include<stdio.h> #include<algorithm> #define N 10000 using nam ...

  7. 然爸读书笔记(2013-5)----Rework(重来)

    (1)你没有必要耗尽你一生的积蓄,承担财务风险. (2)你可以一边继续日常工作,一边开始创业,这样随时都能有现金满足需要.你甚至不需要办公室. 现在可以在家工作,和从未见面离你千里之外的人合作. (3 ...

  8. MSMQ(消息队列)续

    在上一篇我简单介绍了MSMQ的相关概念,本篇将以代码说明 Message Message是MSMQ的数据存储单元,我们的用户数据一般也被填充在Message的body当中,因此很重要,让我们来看一看其 ...

  9. PAT-乙级-1009. 说反话 (20)

    1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...

  10. uva10943

    递推  还是比较容易的 /************************************************************************* > Author: ...