玩过游戏的人都知道人物头上的血条会随着人物移动而移动,那么ngui血条跟随是怎么做到的呢?今天我们就来学习。
using UnityEngine;
using System.Collections;
public class Blood : MonoBehaviour {
public GameObject _bloodBar;//获取血条信息,这个是你的ngui,dfgui血条控件
public GameObject MainCamera;//获取主摄像机,非ui相机,并把主摄像机的culling mask值改为加上ui层或everything
void Update () {
_bloodBar.transform.position=new Vector3(transform.position.x,transform.position.y+0.3f,transform.position.z);//让血条信息一直处于人物的头顶某处
Vector3 v=transform.position-MainCamera.transform.position;//求出游戏对象朝摄像机的方向
Quaternion rotation;//四元数
rotation = Quaternion.LookRotation(v);
_bloodBar.transform.rotation = rotation;//让血条一直面向摄像机。由于摄像机是以人物为目标的,所以v应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
}
using UnityEngine;
using System.Collections;
public class Blood : MonoBehaviour {
public GameObject _bloodBar;//获取血条信息,这个是你的ngui,dfgui血条控件
public GameObject MainCamera;//获取主摄像机,非ui相机,并把主摄像机的culling mask值改为加上ui层或everything
void Update () {
_bloodBar.transform.position=new Vector3(transform.position.x,transform.position.y+0.3f,transform.position.z);//让血条信息一直处于人物的头顶某处
Vector3 v=transform.position-MainCamera.transform.position;//求出游戏对象朝摄像机的方向
Quaternion rotation;//四元数
rotation = Quaternion.LookRotation(v);
_bloodBar.transform.rotation = rotation;//让血条一直面向摄像机。由于摄像机是以人物为目标的,所以v应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
}
}
如图: