Unity UGUI Canvas 使用Slider制作角色血条

最近课程实训选修Unity,讲解的是Unity官方案例——SpaceShoot,培训无聊,便想着给游戏角色制作一下血条,以此增加游戏的可玩性。

Unity版本:5.4.1

案例模版:太空射击

原文作者:茄阁云云

原文连接:http://www.cnblogs.com/vmoor2016/p/6044941.html

把一个大象装进冰箱里需要三步:①把冰箱门打开;②把大象塞冰箱里;③关上冰箱门。

那么制作一个角色的血条需要几部呢?在这里也划分为三步:①制作血条;②摆放血条;③操作血条。

下面就来给大家分享下血条的制作步骤。

第一步:制作血条

  • 选中游戏对象,在游戏对象下创建子物体Canvas,步骤:选择游戏物体-右键-UI 选择创建

  Canvas;

  • 创建血条,步骤:选择创建好的Canvas,然后,右键-UI 选择创建Slider;

  此时在游戏Scene视图中便可以看到一个白框即Canvas画布,还有血条原型Slider。

  展开Slider(如下图第二张)就可以发现组成滑动条的三个组件:

  Background,背景颜色;Fill Area,填充颜色;Handle SliderArea:滑动柄。

  

  为了方便看到制作效果,现在修改Slider属性,选中Slider,在Inspector面板的组件

  Slider(Script)里修改Min Value=0,Max Value=10,Value=10。现在开始制作血条:

  • 去掉Handle(滑动柄):选择Handle SliderArea,按Delete键删除(当然也

  可以在Inspector面板中取消选中该物体),然后就可以发现圆圆的滑动柄消失了。

  • 修改背景色与填充色:选择FillArea下的Fill,在Inspector面板下找到Image(Script)组件,

  在其中可以修改Slider的填充色,同样选择Background修改背景色。

  • 调整Fill Area(填充区域):上一步执行后发现,虽然Slider的当前值Value等于Max Value

  ,但血条并未被填满。现在选择Fill Area在Inspector面板中修改Rect Transform中个属性,

  将Left、Right的值都设为0(见下图),至此一个简单的血条就制作完成了。

     

    

第二步:摆放血条

  到目前为止血条还没有出现在相机视的野里,这是由于Canvas(画板)的属性设置原因,在

  Inspector面板下查看Canvas渲染属性(Render Mode)。

    

  渲染方式有三种,默认的是Screen Space-Overlay。在本步骤后补充会简单介绍前两种渲染

  方式,现在先将Render Mode改为World Space(全局)。

  修改后便会发现,Inspector面板中的Rect Transform组件可以修改了。

    

  这就意味着我们可以通过旋转拖放将血条摆放到合适的位置。具体摆放步骤如下:

  • 修改Canvas的位置,将Pos x,Pos Y设为0;
  • 旋转Canvas:由于Canvas相当于一个面,所以如果相机从垂直角度拍摄将看不到画板

  上的任何东西,旋转Canvas使其正对Main Camera(我这里相机在Y轴垂直向下拍摄,

  故将Canvas绕X轴旋转了90度),这时大大的血条便在Game场景下出现了。

    

  • 修改Slider尺寸:不用说,这么大的血条肯定要修改下尺寸,在这里推荐使用Scale

  (缩放工具)进行大小修改。当然你也可以通过修改宽高来实现,不过控制不好宽高

  比例将带来意想不到的效果(不服可以亲自尝试一下)。

  

  • 修改Canvas尺寸:这么小的血条用不了那么大的Canvas画板,因此将Canvas的大小

  修改为与血条相当即可,这里推荐直接修改宽高,如图。至此摆放血条的工作都已经完成

  了,可以选中移动工具进行演示,可以发现血条照预期的那样跟随角色移动。

  

  下面为补充内容,不感兴趣可以跳过。

  补充

  上面提到Canvas的三种渲染模式,在这里再对前两种进行简单说明:

  1.Screen Space - Overlay:默认的渲染模式,此模式Canvas位置大小不可改变,但可以通过

  移动父物体来间接改变,Canvas的起始位置就是父物体的位置,大小和设置的显示屏幕大小

  有关(如下图1,我这里是600*900),更改不同的显示大小,Canvas的形状大小也将会发生

      改变。此模式不需要UI相机,Canvas上的内容将显示在所有游戏物体之前。

     

  2.Screen Space - Camera:此模式Canvas位置大小不可改变,需要指定UI相机(可以发

  现多出来一个Render Camera,默认是不指定相机的),Canvas画布大小根据相机视野来

  定,可以将Main Camera挂载到上面观察效果,画布上的内容将一直显示在相机视野里,且

  显示在所有游戏物体之前。

    

第三步:操纵血条

  关于血条的操作就要用到脚本来控制了。操作很简单,因此脚本很简单,感兴趣可以查看一下。

 1 using UnityEngine;
 2 using System.Collections;
 3 using UnityEngine.UI;    //添加UI命名空间
 4
 5 public class PlayerCollide : Collide {
 6
 7     public Slider HPStrip;    //添加血条Slider的引用
 8     public int HP;
 9     void Start () {
10         HPStrip.value = HPStrip.maxValue = HP;    //初始化血条
11     }
12     public void OnHit(int damage){
13         HP -= damage;
14         HPStrip.value=HP;    //适当的时候对血条执行操作
15     }
16 }    

  血条制作过程就到此结束了,喜欢的话就顶一下吧。

  本文的血条制作过程系作者原创,不足之处欢迎评论指证,尊重原创,转载请注明出处。

时间: 2024-08-06 07:55:40

Unity UGUI Canvas 使用Slider制作角色血条的相关文章

unity制作简单血条

学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找到了一篇简单的. 但是那一篇把所有的东西都放一起了,不太好,我在这整理分离一下. 背景: 官方Demo恶魔射手.其中每个怪都有一个EnemyHealth脚本,该脚本主要有怪物的血量等,然后有个TakeDamage()函数来计算伤害后的血量. 开始: 1.制作图片: PS一张细长的红色图片作为血量:

【FairyGUI & Unity】使用动效功能实现血条UI扣血与加血的缓动效果

原理 血条使用进度条组件,可以得到当前值与最大值. 通过动效-改变缩放可以让图片宽度从1到0按百分比变化. 动效可以指定播放动效的时间范围 组件设计 创建一个进度条组件,作为血条. bar是实际血量条 DownBar是扣血缓动背景图层 UpBar是加血缓动背景图层 LowBar是低血量变色(和控制器配合,本文不讲) n11组合是血量参考线 发布到Unity. 参考代码 if (hpValue < hpBar.value) // HP降低 { hpBar.DownBar.SetScale((flo

Unity UGUI - Canvas / Camera

1.Canvas: 1)Render Mode : Screen Space -Camera 2)Render Camera : UICamera(自己创建的相机) 3)Plane Distance : 0 2.Canvas Scaler: 1)Ui Scale Mode : Scale with screen size (宽度标准缩放) 2)Reference Resolutioin: 1920 * 1080   (屏幕分辨率) 3)Screen Match Mode: Expand (UGU

Unity UGUI——Canvas绘制模式比较

三种绘制模式:Screen Space - Overlay.Screen Space - Camera和World Space

Unity3d中NGUI加强版血条(Healthbar)的制作

这阵子项目中需要用到一种特殊样式的血条.描述如下: 1. 正常颜色为红色.受到伤害后,即将扣除的血量变暗(暗红色),并有下降动画效果: 2. 加护盾效果后,增加一部分血量值,该额外部分为白色,护盾效果消失后该部分血量瞬间消失: 3. 在护盾效果下受到伤害时,首先扣除白色血量.白色血量不足扣除时,余下部分从红色血量中扣除: 4. 白色血量的扣除效果为变为灰色并有下降动画效果: 4. 当加护盾效果时,若即将添加的白色血量将使总血条“溢出”,从新计算百分比并排满血条: 5. 中毒时,将相应的血量(按照

[Unity3D]Unity3D再叙NGUI之血条及技能冷却效果

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

Unity教程之-UGUI美术字体的制作与使用

文章转载自:http://www.unity.5helpyou.com/3211.html 游戏制作中,经常需要使用各种花哨的文字或者数字,而字体库往往不能达到我们需要的效果,因此需要一种用图片替代文字的功能.ugui使用艺术字也比较简单,下面我们就来介绍下UGUI美术字体的制作与使用,本文使用BMFont作为字体制作工具,简单讲讲如何制作艺术字体:1.让美术提交分块后的文字: 2.打开BMFont工具,找到图片管理(Edit->Open Image Manager): 3.导入字体图片,并与文

使用NGUI制作进度条(血条/蓝条)

制作血条和蓝条,原理都是一样的,下面创建一个可以复用的进度条. 第一步,搭建基本的UI显示界面,使用NGUI(没有插件的童鞋可以看我上一遍文章 )创建一个基本的进度条界面. 选中UIRoot,在Scene视图中,创建一个Sprite,重命名为NumberBar,为其选择图集和精灵,修改其大小到合适位置(256* 32).在其上右键,Attach一个Box Collider,然后再右键Attach一个Slider Script.我们会看到Slider组件会有些参数,我们会在稍后解释. 选中刚创建的

[转](二)unity4.6Ugui中文教程文档-------概要-UGUI Canvas

大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my UI系统允许您快速.直观地创建用户界面(Ui).这是Unity的新 UI 系统的主要功能介绍. 一.UI Overview概要 在这篇概述中,我们就去通过 UI系统的基础知识.我们将开始介绍Canvas(画布)并将所有 UI