unity3d ugui中如何获取ui控件位置?或者说如何将ugui中ui控件(组件)的坐标转化为屏幕坐标或canvas坐标(大坑)?

本文探讨了在Unity3D UGUI系统中如何准确获取UI控件的位置,并指出了一些常见方法的问题,如锚点影响坐标计算。通过分析,推荐使用`WorldToScreenPoint`方法来直接获取UI控件在屏幕上的准确坐标,以解决坐标转化的困扰。
摘要由CSDN通过智能技术生成

unity3d ugui中如何获取ui控件位置?或者说如何将ugui中ui控件(组件)的坐标转化为屏幕坐标或canvas坐标(大坑)?


网上有一些转化坐标的方法,但我试了后发现都有问题,有一些方法和锚点的位置是有关的,比如锚点必须左下角,而且用他们的方法转化后还有比例问题,导致判断不准确。

他们是这么做的:设kongjian是我们要获取坐标的控件,那么

kongjian.GetComponent<RectTransform>().anchoredPosition.x 是x轴坐标

kongjian.GetComponent<RectTransform>().anchoredPosition.y是y轴坐标

这是个大坑,他是根据四个锚点的中心位置来计算的,你锚点位置设置不同,计算结果也不同。

还有人是这么算的:

他们使用RectTransformUtility.

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值