UI座標變換 轉換

2022-01-31 22:25:10 字數 1237 閱讀 9355

transform.inversetransformpoint :相對於誰的座標。如果是相對2d ui,請使用localposition,如果是3d場景,請使用position

uiroot/panelroot/center/battle/buffsonhero/bufficontemplate  (這是buff圖示)

uiroot/panelroot/center/battle/buffdetail  (這是buff詳細資訊視窗)

buffdetail的座標和bufficontemplate頂對齊,就是按住不同的圖示,彈出視窗的y和圖示的y相同。

buffdetail  和bufficontemplate  的父節點,同級(這一點很重要)

1、獲得bufficontemplate的ui座標的y設定成buffdetail的y

涉及到ui座標的轉換。

//獲取圖示相對于父節點的ui座標

var localpos =transform.inversetransformpoint(bufficontemplate.transform.position);

//窗體和buff圖示的座標頂對齊,和bufftable的右側有乙個offset

var offx = localpos.x - buffwinbg.width * 0.5f - 70;

buffdetailwindow.localposition = new vector3(offx, localpos.y, localpos.z);

解釋:transform.inversetransformpoint 相當於把bufficontemplate從父節點拉出來,獲取它在ui上的localposition,如下圖所示

uicamera下的gameobject 使用localpostion

scenecamera下的gameobject 使用wordpostion

彷射變換座標轉換

float angle 0.2 float radian cv pi angle 180.0 cv point pt,originpt,dstpt,rotatedpt originpt cv point 100,200 rotatedpt cv point 100,100 pt.x originpt...

eigen座標變換 座標變換

位姿變換 位姿在不同座標系中變換,更常用 posest or t,關鍵在於同乙個位姿 實際位姿固定不變 但是在不同座標系有不同的 表 示!座標系變換 座標系本身變換 並且 coordst coordst t.inverse 注意 ros tf 發布的變換是座標系變換 coordst,包括通過 tf2...

Unity UGUI場景座標轉換成UI座標

所用到的api camerahelper.maincamera.worldtoscreenpoint vector3 position recttransformutility.screenpointtolocalpointinrectangle recttransform rect,vector2...