Unity 获取UI中不同容器里的相对坐标
2016-06-13 19:12
393 查看
工程中要用到拖放功能,方案自然是要通用。所以写的时候拖动显示层与应用时的被拖动对象多数时候不在同一容器,也就是说本地坐标是对不上的。这就需要用到坐标转换。我的方案中将拖动时显示图标的层单独出来,所以我需要得到的是所有被拖动的源对象相对于此显示层的坐标。代码如下:
startDragPoint = rectTransform.InverseTransformPoint( mouseDownPoint );
//
Vector3 wp = socImage.transform.TransformPoint (Vector3.zero);
//
startDragLocation = rectTransform.InverseTransformPoint(wp);
rectTransform是用于显示拖动图标的显示层的transform.
socImage就是点击后和成一个拖动图标的对象。 先将他的坐标转化为世界坐标,再从世界坐标转换到此显示层的本地坐标。
另注题外话:用EventTrigger里的beginDrag,drop能很方便的实现拖动到目标的功能。不过还是要自己写代码。我没看以系统有相应的组件。
startDragPoint = rectTransform.InverseTransformPoint( mouseDownPoint );
//
Vector3 wp = socImage.transform.TransformPoint (Vector3.zero);
//
startDragLocation = rectTransform.InverseTransformPoint(wp);
rectTransform是用于显示拖动图标的显示层的transform.
socImage就是点击后和成一个拖动图标的对象。 先将他的坐标转化为世界坐标,再从世界坐标转换到此显示层的本地坐标。
另注题外话:用EventTrigger里的beginDrag,drop能很方便的实现拖动到目标的功能。不过还是要自己写代码。我没看以系统有相应的组件。
相关文章推荐
- GUI - Web前端开发框架
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- Kinect结合Unity3D引擎开发体感游戏(一)
- Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Cocos2d-x UI开发之文本类使用实例
- 谈谈对jquery ui tabs 的理解
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- UI Events 用户界面事件
- jquery UI Datepicker时间控件的使用方法(基础版)
- Hallo.js基于jQuery UI所见即所得的Web编辑器
- 基于jQuery UI CSS Framework开发Widget的经验
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
- jquery UI Datepicker时间控件的使用及问题解决
- jQuery UI设置固定日期选择特效代码分享
- Jquery ajax 同步阻塞引起的UI线程阻塞问题
- jQuery UI的Dialog无法提交问题的解决方法
- jQuery ui实现动感的圆角渐变网站导航菜单效果代码
- jquery UI Datepicker时间控件的使用方法(终结版)