1、RectTransformUtility类
RectTransformUtility公共类是一个RectTransform的辅助类,主要用于进行一些坐标的转换等等操作,其中对于我们目前来说,最重要的函数是:将屏幕空间上的点转换成UI本地坐标下的点
2、将屏幕坐标转换为UI本地坐标系下的点
方法:RectTransformUtility.ScreenPointToLocalPointInRectangle
参数一:相对父对象
参数二:屏幕点
参数三:摄像机
参数四:最终得到的点
一般配合拖拽事件使用
这个函数的作用就是将屏幕点的坐标(相对于左下角原点)转换为相对于父对象的坐标(以父对象左下角为原点)
在实际应用中,如果要实现摇杆的拖拽,那么可以有两种方法:
第一种是通过摇杆的坐标加上鼠标的偏移,来实现摇杆的移动;第二种则是通过屏幕坐标转换为UI本地坐标系坐标进行移动。
先看方法一:鼠标偏移转换:
btn.position += new Vector3(eventdata.delta.x, eventdata.delta.y, 0);
但是这种方法有一个问题,我们常见的摇杆操作,外面是一个大圈表示范围,中间一个原点表示实际操纵的摇杆,例如: