unity3d調用轉換物體世界坐標場景坐標屏幕方法節點


unity最常用的幾種坐標,屏幕坐標,世界坐標,ngui坐標,相對於父物體的坐標(localPoisition)。
但是有時候這幾種坐標相互轉換何其困難,讓自己狠抓頭。不得不操作的方式是創建虛擬體,然后來回改變他的父節點(parent),
不過unity提供了兩個方法挺好用的。解決了所有坐標轉換問題,
InverseTransformPoint: 絕對坐標轉相對坐標,也就是世界坐標轉你想要放到的父節點下的相對坐標,
TransformPoint: 相對坐標轉絕對坐標,也就是你想要放到的父節點下的相對坐標轉成世界坐標,
調用方法就是,比如你想把鼠標點擊的位置轉換成你某一個父節點下的ngui坐標。
操作如下

viewplaincopy Vector3vec=newVector3();Rayray=UICamera.mainCamera.ScreenPointToRay(Input.mousePosition);//向屏幕發射線RaycastHithit;
if(Physics.Raycast(ray,outhit))
{
vec=你想轉到的父節點物體.transform.InverseTransformPoint(hit.point);
}
這樣就得到了一個屏幕點擊轉向ngui的父節點的相對坐標,其他的物體也是用此類方法使用,這樣保證了操作坐標的流暢性

 


免責聲明!

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



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