UGUI为开发者提供了许多实现交互的接口,包括拖拽类、点选类、鼠标指针类等,下面是最简单的UI拖拽实现方式:

将上边代码挂在UI上运行,就可以实现最简单的拖拽效果。但是这种方式存在问题:鼠标开始点下时会出现UI位置弹跳,鼠标指针出现了位置偏移并不在UI上。

我们来看一下问题所在:

蓝点为UI的Pivot轴心点,假设红点为鼠标点下位置,由于UI的Position在UI正中位置,但是鼠标开始点下位置总不在UI正中间,所以就导致了UI拖动过程中的位置偏移。而这个偏移量就是上图绿色箭头所标记向量。

现在我们使用另外一种拖拽方式——精准拖拽:

UGUI为我们提供了一个类:RectTransformUtility,其中有UI屏幕坐标转换为世界坐标的方式:ScreenPointToWorldPointInRectangle,坐标转换的好处是:

无论UGUI的Canvas画布模式是哪一种,以上代码都适用。

将此脚本挂在UI上,运行unity,现在UI的精准拖拽就实现了。

UGUI背包实现详解之一UGUI精准拖拽相关推荐

  1. Unity UGUI Button 中文详解-Chinar

    Chinar blog :www.chinar.xin Unity UGUI 完整系列教程 (Chinar中文图解) Unity UGUI Button 组件 本文提供全流程,中文翻译. Chinar ...

  2. uGUI之AutoLayout详解——minHeight,preferredHeight,flexibleHeight

    首先看一个例子,新建一个Panel,在下面添加两个Button,分别命名为Button.Button2. 1.给Panel添加一个VerticalLayoutGroup组件,ChildForceExp ...

  3. Unity UGUI InputField 中文详解-Chinar

    Chinar blog :www.chinar.xin Unity UGUI 完整系列教程 (Chinar中文图解) Unity UGUI InputField组件 本文提供全流程,中文翻译. Chi ...

  4. 动态规划01背包算法详解

    动态规划算法核心思想: 将大的问题转化为小问题进行解决. 01背包问题: 01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的重量为W1,W2至Wn,与之相对应的价值为V1V2至Vn.01背 ...

  5. 零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏

    零基础入门 Unity 之 UGUI 详解专栏 | 寻找C站宝藏 六大推荐理由 理由一:系统 理由二:详细 理由三:专业 理由四:图解 理由五:深度 理由六:实例 一键直达:<UGUI 控件详解 ...

  6. Unity:锚点详解

    锚点时基于父对象让子对象定位用的.所以我们移动锚点时候的范围就是父对象的宽和高. 锚点在一起时 这四个三角形在一起时意味着锚点在一起 当锚点在一起的时候,图片的大小不会随着父对象的大小改变而改变:图片 ...

  7. 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记...

    2019独角兽企业重金招聘Python工程师标准>>> 网络请求的基本知识   我们网络请求用的是HTTP请求 Http请求格式:请求的方法,请求头,请求正文 Http请求的Requ ...

  8. Unity 之 UGUI Dropdown下拉选单组件详解

    Unity 之 UGUI Dropdown下拉选单组件详解 1,属性面板 1), Dropdown的组成 2,代码操作 3,使用实例 1), 控制菜单展开方向 4,相关扩展 1), Lua中动态添加O ...

  9. Unity UGUI Batches合批规则详解(含源码)

    Unity UGUI Batches合批规则详解 在处理UGUI DrawCall问题的时候,我们经常遇到各式各样的问题. 问题1:在处理UGUI合批的时候,发现了一个面板父节点发生旋转,底下的UI合 ...

最新文章

  1. 手握173篇论文的学术新星被指造假!后续:博士论文被召回
  2. HTTPS 接入优化建议
  3. 安装完python后、还需要安装什么-安装python后
  4. C++ STL容器总结之vector(超详细版)
  5. android 恶意广告,CheckPoint:Android恶意广告软件SimBad被下载近1.5亿次
  6. abap 生成流水号每天从1开始_条码软件如何制作循环流水号
  7. 使用系统规则测试System.in和System.out
  8. 解决在使用pip进行安装时的Could not install packages due to an EnvironmentError的问题
  9. 实用工具【SqlPrompt】 【Subline】 【XMind】 【PhotoShop】 【TakeColor】 【Q+】本次只讨论SqlPrompt...
  10. 进销存软件管理系统排名(最新版)
  11. VMware VCenter Converter Standalone 6.2.0下载地址
  12. 服务器安装微信支付密钥,如何开通微信支付、配置商户号及商户秘钥-操作教程...
  13. java反序加密_对java程序加密防止反编译
  14. 升级mac系统正在计算机,苹果电脑系统更新,能用手机 APP 了,但我不建议你升级...
  15. 不允许一个用户使用一个以上用户名域一个服务器或共享
  16. ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐
  17. 在Linux系统上运行.jnlp文件
  18. 食君之禄 忠君之事 奈何哉!
  19. Qt Creator打造VScode one dark pro主题配色
  20. 基于微信小程序的在线花店的设计开发

热门文章

  1. QT软件开发-基于FFMPEG设计视频播放器-GPU硬解、OpenGL渲染、解码音频完整例子(六)
  2. 阿里云数据库专家于巍荣获CCSA TC601《突出贡献专家》奖
  3. 【小白从小学Python、C、Java】【Python-计算机等级考试二级】【Python语言的注释方法】
  4. 一篇文章可以多平台发表吗?2022年文章多平台发布教程
  5. C++ 游戏:转杯子猜球位置 2
  6. Windows10系统自动登录
  7. 一步步教你电脑变成服务器,tomcat的花生壳设置(原创)
  8. php 当前栏目高亮,帝国CMS导航栏目实现当前栏目高亮
  9. JAVA:List 与 数组 相互转换
  10. Postman官方64位版本下载