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的父節點的相對坐標,其他的物體也是用此類方法使用,這樣保證了操作坐標的流暢性