所用到的api:
camerahelper.maincamera.
worldtoscreenpoint
(vector3 position)
recttransformutility.
screenpointtolocalpointinrectangle
(recttransform rect,
vector2 screenpoint,
camera cam,
outvector2 localpoint)
第一步 把需要轉換的世界座標轉換為螢幕座標
vector3 screenposition = camerahelper.maincamera.
worldtoscreenpoint
(worldposition)
;
第二步 把轉換完成的螢幕座標轉化為某個uicanvas下的座標
vector2 uiposition;
if(recttransformutility.
screenpointtolocalpointinrectangle
((recttransform)uihelper.worldcanvas.transform,
screenposition,
uihelper.worldcanvas.worldcamera,
out uiposition)
)
解讀一下第二個方法所需要的引數:
recttransform rect:你所要轉換到某個canvas的recttransform,因為ui物體全部都會是canvas的子物體
vector2 screenpoint:需要轉換的螢幕座標
camera cam:對應canvas的攝像機,如果為screen space-overlay模式 就填null
outvector2 localpoint:最後轉換出的ui座標
Unity UGUI 螢幕座標轉換
unity的recttransformutility函式裡面提供了常用的座標系之間的轉換關係。因為recttransformutility裡面提供的函式是環形結構,所以螢幕座標,ugui座標,世界座標三者之間可以相互轉換。由於函式都需要用到場景相機和ugui相機,所以定義兩個相機變數。場景相機 pu...
Unity Ugui射線座標轉換總結
世界空間中的點座標轉換到螢幕座標 screenpos recttransformutility.worldtoscreenpoint cam,worldpos.transform.position ugui物體的座標轉換到螢幕座標 screenpos recttransformutility.wor...
osg場景座標
osg三維世界中,會使用到幾個不同的座標系統,下面會講解幾個常用概念,通過使用照相機拍照的過程進行模擬 這個過程就相當於我們拍照時調整被拍攝物體的位置和姿態以及調整相機的位置和姿態。物體的位置和姿態成為模型變換 相機的位置和姿態稱為視點變換,這兩種變換在一起統稱為模型視點變換。在拍攝乙個物體的時候,...