UGUI在两个UI间坐标转换
2024-09-08 07:08:36
在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)
}
最新文章
- 多个html怎么导入相同的头部导航
- AR For Unity3D之HiAR分析
- 通过硬编码获取dubbo服务对象
- 电脑的f5刷新不了
- 配置nginx 高并发 php
- Bit data type
- mysql数据库容量查询
- PropertyPlaceholderConfigurer类的使用注意
- supervisor踩坑记录
- java线程控制安全
- 参考:Python 调试方法
- Kubernetes 中的核心组件与基本对象概述
- java应用系统运行速度慢的解决方法
- Python——列表操作
- 使用模拟Table解决span重叠问题
- python自带进程池
- UVA - 12487 Midnight Cowboy(LCA+思维)
- python Django 创建应用
- 径向模糊(Radial Blur)
- java 空格替换%20