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. HTML5 + SOCKET视频传输

    <html> <head> <meta http-equiv="content-type" content="text/html; char ...

  2. 打破常规——大胆尝试在路由器上搭建SVN服务器

    注册博客园挺久了,一直比较懒,虽然有几次想写点文章,但是一直没有行动,今天给大家带来一篇比较有意思的文章,不涉及技术上的,希望大家轻拍.本文的文字和图片全部为原创,尊重作者转载请注明出处! 说起路由器 ...

  3. WPF中让TextBlock每一个字符显示不同的颜色

    XAML代码: <TextBlock x:Name="tb"> <Run Foreground="Red">R</Run> ...

  4. linux set,env和export

    set,env和export这三个命令都可以用来显示shell变量 set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变 ...

  5. [Learn Android Studio 汉化教程]第四章 : Refactoring Code

    [Learn Android Studio 汉化教程]第四章 : Refactoring Code 第四章 Refactoring Code    重构代码 在Android Studio中开发,解决 ...

  6. MyEclipse新建Maven工程

    1.File-->New-->Web Project 2.新建文件夹 需要新建4个源文件夹,分别是  src/main/java   src/main/resources   src/te ...

  7. NSTImer重复执行任务

    问题 应用需要调度代码以在特定的时间执行.此外,你还想要重复执行任务. 解决方案 使用NSTimer调度代码以在特定的时间执行.为了使用NSTimer,你需要有日期对象与指向应用的运行循环的引用. 注 ...

  8. Code for the Homework1

    作业要求: http://www.cnblogs.com/bingc/p/4919692.html 代码(未使用Eigen): #include <iostream> #include & ...

  9. 选择排序O(n^2)与快速排序O(nlogn)的优越性代码体现

    随机函数生成一个超大数组: [code]: #include <iostream> #include <stdio.h> #include<time.h> #inc ...

  10. maven eclipse web项目流程(简化内容)

    1.maven eclipse 环境搭建 1.1 下载解压配置环境变量(解压.环境变量maven目录到bin.setting.xml 改本地仓库) 1.2 eclipse插件安装配置(link安装.加 ...