在UGUI中,在两个Canvas之间进行坐标转换,从CanvasA下的坐标转换到CanvasB下。

或者在同一个界面下,从不同的节点下,转成相同的坐标。

函数定义

public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint);

解释:

rect:目标界面的节点

screenPoint:要转换的节点屏幕坐标,如果worldCamera为空就返回 vector2.zero

cam:目标界面的camera,如果 Canvas 的模式为Screen Space - Overlay mode, the cam parameter should be null.

localPoint: 转换后的坐标点

返回值:判断此点是否在Rect所在的平面上

最后算出来的结果使用:rectTransform.anchoredPosition = localPoint

要转的节点屏幕坐标

var screenPoint = canvas.worldCamera.WorldToScreenpoint(obj.transform.position)

通过查看ugui的Slider(滑块)源码

void UpdateDrag(PointerEventData eventData ,Camera cam)
{
RectTransformUtility.ScreenPointToLocalPointInRectangle(clickRect,eventData.position,cam,out localcursor)
}

最新文章

  1. 多个html怎么导入相同的头部导航
  2. AR For Unity3D之HiAR分析
  3. 通过硬编码获取dubbo服务对象
  4. 电脑的f5刷新不了
  5. 配置nginx 高并发 php
  6. Bit data type
  7. mysql数据库容量查询
  8. PropertyPlaceholderConfigurer类的使用注意
  9. supervisor踩坑记录
  10. java线程控制安全
  11. 参考:Python 调试方法
  12. Kubernetes 中的核心组件与基本对象概述
  13. java应用系统运行速度慢的解决方法
  14. Python——列表操作
  15. 使用模拟Table解决span重叠问题
  16. python自带进程池
  17. UVA - 12487 Midnight Cowboy(LCA+思维)
  18. python Django 创建应用
  19. 径向模糊(Radial Blur)
  20. java 空格替换%20

热门文章

  1. 解决汉化pycharme之后设置打不开的问题
  2. git笔录
  3. Jmeter获取数据库查询结果某一字段的值
  4. 第十六周博客作业 <西北师范大学| 周安伟>
  5. lua 3 循环
  6. IntelliJ IDEA安装与破解教程(一)
  7. 【oracle】INSERT INTO SELECT
  8. 转载:RAID5和RAID10,哪种RAID更适合你
  9. ICT638 Mobile and App Development
  10. SSM整合教程