InverseTransformPoint @H_404_3@@H_404_3@
Transform.InverseTransformPoint :@H_404_3@相对于谁的坐标。如果是相对2D UI,请使用localposition,如果是3D场景,请使用position
文档
http://www.ceeger.com/Script/Transform/Transform.InverseTransformPoint.html@H_404_3@
UI结构@H_404_3@
UIRoot/PanelRoot/Center/Battle/@H_404_3@BuffsOnHero/BuffIconTemplate (这是buff图标)
UIRoot/PanelRoot/Center/Battle@H_404_3@/BuffDetail (这是buff详细信息窗口)
UI坐标变换需求
BuffDetail的坐标和BuffIconTemplate顶对齐,就是按住不同的图标,弹出窗口的Y和图标的Y相同。
思路分析
BuffDetail 和BuffIconTemplate 的父节点,同级(这一点很重要)
1、获得BuffIconTemplate的UI坐标的Y设置成BuffDetail的Y
涉及到UI坐标的转换。
实现方法
//获取图标相对于父节点的UI坐标
var@H_404_3@ localPos = transform.InverseTransformPoint(BuffIconTemplate.transform.position);
@H_404_3@//@H_404_3@窗体和Buff图标的坐标顶对齐,和buffTable的右侧有一个offset@H_404_3@
var@H_404_3@ offX = localPos.x - BuffWinBg.width * 0.5f@H_404_3@ - 70@H_404_3@;
BuffDetailWindow.localPosition = new Vector3(offX,localPos.y,localPos.z);
解释:Transform.InverseTransformPoint@H_404_3@ 相当于把buffIconTemplate从父节点拉出来,获取它在UI上的localposition,如下图所示
附加资料
UICamera下的gameobject 使用localpostion
SceneCamera下的gameobject 使用wordpostion