首页 新闻 会员 周边

Unity RectTransform 的width、height如何与屏幕的坐标进行转换

0
悬赏园豆:10 [已解决问题] 解决于 2020-03-15 12:32

Unity GameObject有挂载Image组件时,Rect Transform的Width和Height对应到该图片的实际大小,假如现在有两张图片,都是通过上述方式挂载在一个GameObject上进行操控。两张图片的pivot(中心点)都是(0.5,0)。

需要实现的效果是,鼠标点击屏幕的下方,然后在点击处展示第一张图片(效果就是第一张图片在你手指正上方出现了),现在不用考虑屏幕Y方向的问题,X方向上我想在第一张图的右侧紧靠着出现第二张图,如果超出了屏幕右方,就在左侧紧靠出现。

代码上实现的直观逻辑就是,算出第二张图的坐标就可以了。比如X坐标,就是通过第一张图片的坐标+上第一张坐标的Width/2+第二章照片的Width/2。但是在屏幕坐标上如此计算是不对的,如果屏幕缩放很小,Width还是原来的值,就是3D场景中模型的长宽或是2DUI的长宽高到屏幕上是不是有个映射关系,或者是不是有其他正确的处理方式。

Ellco的主页 Ellco | 初学一级 | 园豆:166
提问于:2016-01-11 19:53
< >
分享
最佳答案
0

世界坐标的尺寸转屏幕坐标尺寸

Vector3 worldDis ...

Camera.main.WorldToScreenPoint(worldDis)- Camera.main.WorldToScreenPoint(Vector3.zero)

收获园豆:10
风影绝尘 | 菜鸟二级 |园豆:212 | 2017-10-11 11:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册