将Unity中的世界坐标转换成NGUI中的坐标,比如可用于自制血条等。代码如下:
1 using UnityEngine; 2 using System.Collections; 3 public class Healthbar : MonoBehaviour { 4 public GameObject TargetObject; //目标物体。这里是指Cube 5 public Camera worldcamera; //世界相机。 6 public Camera guiCamera; //UI相机 7 // Use this for initialization 8 void Start() 9 { 10 worldcamera = NGUITools.FindCameraForLayer(TargetObject.layer); //这里是通过物体的层获得相应层上的相机 11 guiCamera = NGUITools.FindCameraForLayer(this.gameObject.layer); //通过脚本所在物体的层获得相应层上的相机 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 18 } 19 void LateUpdate() 20 { 21 Vector3 pos = worldcamera.WorldToScreenPoint(TargetObject.transform.position); //获取目标物体的屏幕坐标 22 pos = guiCamera.ScreenToWorldPoint(pos); //将屏幕坐标转换为UI的世界坐标 23 pos.z = 0; //由于NGUI 2D界面的Z轴都为0,这里我们将坐标修改为0.只取其X,Y坐标。 24 transform.position =new Vector3(pos.x,pos.y+0.23f,pos.z); //将修改过的坐标赋给UI界面。这里指Panel_CharacterInfo 25 } 26 }
将Unity中的世界坐标转换成NGUI中的坐标
时间: 2024-12-25 11:32:08