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组件还没计算子节点的位置,会得到一个不正确的值,切记切记

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,714评论 0 17
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 11,011评论 2 51
  • 哎呀呀 ,马上就要面临找工作了,媛媛心里紧张呀. 作为一个即将毕业的Android程序媛,开始面临找工作了,...
    左神话阅读 10,368评论 7 59
  • d3 (核心部分)选择集d3.select - 从当前文档中选择一系列元素。d3.selectAll - 从当前文...
    谢大见阅读 8,779评论 1 4
  • 今天晨读分享的书叫《毅力:如何培养自律的习惯》,一看到这个书名就觉得有股压力扑面而来。 毅力?自律?光听听这些名字...
    风信子在简书阅读 1,911评论 2 2