纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using
UnityEngine;
using
System.Collections;
public
class
Healthbar : MonoBehaviour {
public
GameObject TargetObject;
//目标物体。这里是指Cube
public
Camera worldcamera;
//世界相机。
public
Camera guiCamera;
//UI相机
// Use this for initialization
void
Start()
{
worldcamera = NGUITools.FindCameraForLayer(TargetObject.layer);
//这里是通过物体的层获得相应层上的相机
guiCamera = NGUITools.FindCameraForLayer(
this
.gameObject.layer);
//通过脚本所在物体的层获得相应层上的相机
}
// Update is called once per frame
void
Update()
{
}
void
LateUpdate()
{
Vector3 pos = worldcamera.WorldToScreenPoint(TargetObject.transform.position);
//获取目标物体的屏幕坐标
pos = guiCamera.ScreenToWorldPoint(pos);
//将屏幕坐标转换为UI的世界坐标
pos.z = 0;
//由于NGUI 2D界面的Z轴都为0,这里我们将坐标修改为0.只取其X,Y坐标。
transform.position =
new
Vector3(pos.x,pos.y+0.23f,pos.z);
//将修改过的坐标赋给UI界面。这里指Panel_CharacterInfo
}
}
|
NGUIToos 是一个辅助类
将脚本挂载到HUD_bar(NGUI物体上)