當呼叫別人的介面時,經常會有獲取位置或向量的介面。遇到這些資料時,先要弄清楚現在獲取的資料在哪個座標系下的。
是否需要進行座標系變換,一般提供的位置和向量都是在世界座標系的,此時需要注意:
①對方的座標系是左手座標系還是右手座標系
因為unity是左手座標系,如果介面提供的資料是基於右手座標系的話,我們需要把z值取反後,看起來的效果才是正常的。
②如果我們通過介面拿到的資料,我們想把它跟隨場景中「camera rig」物體移動和旋轉
為了實現「camera rig」物體移動我們拿到的位置也跟著移動,「camera rig」物體旋轉時我們拿到的位置和向量也跟著旋轉。我們
需要用「camera rig」物體的移動和旋轉建立乙個變換矩陣,把拿到的資料乘這個矩陣即可實現。
vector3 point =getpoint();vector3 dir =getdir();
//建立矩陣
transform target =camerarig.transform;
matrix4x4 mat =matrix4x4.trs(target.position, target.rotation, vector3.one);
//變換位置點
point =mat.multiplypoint(point);
//變換向量
dir = mat.multiplyvector(dir);
unity 座標系轉換 unity座標系間的轉換
1.世界座標系 遊戲內物件都在乙個世界座標系內,可以放心的使用世界座標進行transform的運算。2.區域性座標系 基於父物體的座標系,適合基於父物體做的transform運算,運算時要確保兩個物件在乙個本地座標系內。recttransform的width和height是本地座標系,需要求寬高的世...
Unity 座標系轉換
在unity中我們通常會用到以下幾個座標系下的點 這裡需要說明的是,我們在獲取滑鼠位置的時候,input.mouseposition來獲取滑鼠的位置,這裡獲取到的滑鼠位置是基於螢幕座標的。通過該函式返回的是vector3型別的變數,但z分量始終為0。1.螢幕轉世界座標 vector3 camera....
Unity 座標系轉換的方法
世界座標 螢幕座標 camera.worldtoscreenpoint transform.position 這樣可以將世界座標轉換為螢幕座標。其中camera為場景中的camera物件。螢幕座標 視口座標 camera.screentoviewportpoint input.gettouch 0 ...