今天看的是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。- using UnityEngine;
- using System.Collections;
- public class blood_bar : MonoBehaviour {
- public GameObject _bloodBar;//获取血条信息。
- public GameObject MainCamera;//获取主摄像机
- void Update () {
- _bloodBar.transform.position=new Vector3(transform.position.x,transform.position.y+2.0f,transform.position.z);//让血条信息一直处于人物的头顶某处
- Vector3 v=transform.position-MainCamera.transform.position;
- Quaternion rotation;
- rotation = Quaternion.LookRotation(v);
- _bloodBar.transform.rotation = rotation;//让血条一直面向摄像机。由于摄像机是以人物为目标的,所以v应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
- }
- }