ugui不同层级坐标转换

-- Main

---- Content

------ A

------ ScrollView

-------  Element

---------- B

我需要使用项目中的Tween接口将A物体运动到B物体位置。如上述,因为Tween接口只支持anchoredPosition,那么在不扩展接口的情况下,我们需要获取B物体在Content下的局部坐标。

//获取B的世界坐标
Vector3 wp = B.transform.TransformPoint(Vector3.Zero);
 
//将wp坐标转换到Content的局部坐标下
Vector3 lp = Content.transform.InverseTransformPoint(wp)

注意

如果B的任何一个父节点有Layout Group组件,则要延迟到帧末尾在执行坐标转换,如果直接转换,由于Layout Group组件还没计算子节点的位置,会得到一个不正确的值,切记切记

你可能感兴趣的:(ugui不同层级坐标转换)