• 欢迎来到莫知我哀的博客,日常不定时更新C++、C#、Unity、OpenGL、游戏开发相关文章。同步博客: CSDN
  • 网站左下角可以开启好听的背景音乐~~
  • 如果您觉得本博客很有看点,那么赶紧使用Ctrl+D 收藏吧

[Unity3D] 计算B物体在A物体的局部坐标下的位置

C++ wahh 329次浏览 1个评论 扫描二维码

1. 问题描述

最近在项目中遇到一个问题,项目封装了一个UI的Tween脚本,支持UI的PositionTween,不过需要提供的StartPos和EndPos是anchoredPosition。然而,我需要对完全不同层级下的两个UI控件A,B进行坐标上的运算。

例如:

-- Main

---- Content

------ A

------ ScrollView

-------  Element

---------- B

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

 

2. 方法

之前比较粗暴的方法是直接将B物体的parent设置为Content,然后获取到LocalPosition之后又设置回去。

这里提供一个更好的方法,我们可以Unity的接口来计算:

得到的lp坐标就是B物体在Content下的局部坐标,然后就可以赋值给A物体的Tween组件进行位移动画了。


莫知我哀 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[Unity3D] 计算B物体在A物体的局部坐标下的位置
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 失踪人口回归
    杨领well2018-11-18 15:43 回复 Windows 10 | Chrome 70.0.3538.102
Title - Artist
0:00