將NGUI的坐標轉換Unity中的世界坐標


上一篇寫了關於Unity中的世界坐標轉換為NGUI中的坐標,這篇來寫一下關於NGUI中的坐標轉換為Unity中的世界坐標,代碼如下:

 1       GameObject targetObject = (GameObject)Instantiate(Resources.Load("Model/"+name));  2          Camera worldcamera = NGUITools.FindCameraForLayer(targetObject.layer);     //這里是通過物體的層獲得相應層上的相機
 3          Camera guiCamera = NGUITools.FindCameraForLayer(obj.layer);   //通過腳本所在物體的層獲得相應層上的相機
 4          if (worldcamera == null || guiCamera == null)  5  {  6             return;  7  }  8         Vector3 pos = guiCamera.WorldToScreenPoint(obj.transform.position);         //獲取UI界面的屏幕坐標
 9         pos.z = 1f;//設置為零時轉換后的pos全為0,屏幕空間的原因,被坑過的我提醒大家,切記要改!
10         pos = worldcamera.ScreenToWorldPoint(pos);                              //將屏幕坐標轉換為世界坐標
11         pos.y = 0f; 12         targetObject.transform.position = new Vector3(pos.x, pos.y, pos.z);      //將修改過的坐標賦給目標物體坐標

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM