zoukankan      html  css  js  c++  java
  • 将Unity中的世界坐标转换成NGUI中的坐标

    将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 }

     

  • 相关阅读:
    hdu 3577 线段树
    hdu 5316 Magician 线段树
    POJ3468 本来是一道线段树
    hdu 3183 st表
    hdu 5285 BestCoder Round #48 ($) 1002 种类并查集
    hdu 5282 序列计数
    zoj 2432 模板LCIS
    hdu 1052 贪心
    Angular实践----定制你自己的指令
    Angular实践----理解数据绑定过程
  • 原文地址:https://www.cnblogs.com/atong/p/3911635.html
Copyright © 2011-2022 走看看