今天看的是NGUI做角色HUD血条,看看在游戏中的角色HUD血条是怎么做的。自己动手能不能做到。

之前做游戏demo的时候要用到HUD血条,从网上找资料,基本没有多少有用的信息,后来用雨松大大的GUI方法实现了,但是由于GUI是渲染在顶层的,不会被物体遮挡,并不是我想要的效果。经过摸索,终于用NGUI实现了HUD血条的做法,现在分享给大家~~
▼首先准备好你的场景(角色,地形,摄像机,灯光)

给摄像机添加一个Look At Target脚本,并将其Target设为人物。
接着自己写一个脚本Camera Round,拖给摄像机,让摄像机绕着人物旋转。
using UnityEngine;
using System.Collections;
public class cameraRound : MonoBehaviour {
public GameObject hero;
void Update () {
gameObject.transform.RotateAround(hero.transform.position,Vector3.up,0.1f);
}
}

准备好场景之后,我们就来开始实现血条的制作咯~

▼首先,生成一个空对象,并调整其位置在角色正下方。


▼接着我们添加一个panel作为这个空对象的子物体。(需要NGUI插件)




▼接下来就是往panel上添加信息了这里我就不细讲了,具体请自行查阅NGUI手册



▼这里我添加了一个血条和label(用来显示名称等信息)(血条用simple Texture做)

然后给血条加上图片,label里输入人物的名称,调整他们的位置


接下来就是很重要的代码部分了。

给人物添加一个脚本,命名为blood_bar。
  1. using UnityEngine;
  2. using System.Collections;
  3. public class blood_bar : MonoBehaviour {
  4. public GameObject _bloodBar;//获取血条信息。
  5. public GameObject MainCamera;//获取主摄像机
  6. void Update () {
  7. _bloodBar.transform.position=new Vector3(transform.position.x,transform.position.y+2.0f,transform.position.z);//让血条信息一直处于人物的头顶某处
  8. Vector3 v=transform.position-MainCamera.transform.position;
  9. Quaternion rotation;
  10. rotation = Quaternion.LookRotation(v);
  11. _bloodBar.transform.rotation = rotation;//让血条一直面向摄像机。由于摄像机是以人物为目标的,所以v应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
  12. }
  13. }
▼运行游戏, 不管摄像机怎么旋转,血条总是面向摄像机。大功告成~