unity常用的三种拖拽方法

这篇具有很好参考价值的文章主要介绍了unity常用的三种拖拽方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内置方法

在2d图片与3d场景中使用OnMouseDrag()的方法实现拖拽,而对于ui没有作用。

Event Tringger组件

通过添加Event Tringger组件实现,按下Add New Event Type添加新的事件类型,下拉菜单中显示不同的事件类型,包括鼠标进入离开按下松开点击拖拽等,以及拖拽结束后的EndDrag事件。他看上去和Button组件中的onClick()类似,提供了不同的处理ui的交互方式,我们通过代码书写对应的public方法,然后调用在EventTrigger组件当中。

补充坐标转换的易错点

如果需要物体跟随鼠标位置,则需要把鼠标的屏幕坐标转换为ugui坐标。我们有两种思路:一是直接把屏幕坐标赋值给transform.position,这种方式在ScreenSpaceOverlay模式下没问题,而在Camera模式下则会因为深度数值不正确二引发问题。另一种方式是通过RectTransformUtility.ScreenPointToWorldPointInRectangle方法将屏幕坐标转化为世界坐标然后再赋值给transform.position

unity 鼠标拖拽,unity,游戏引擎,游戏程序

 接口

通过接口来实现拖拽,关于拖拽的接口有三个IDragHandler,IBeginDragHandler,IEngDragHandler。其相比于Event Trigger的好处是可以直接通过eventData.pointerDrag这个属性来获得当前鼠标拖拽的这个对象。

补充接口可能失效的原因

在ui的制作过程中,可能会经常遇到想要点击触发的对象被上一层ui所遮挡覆盖的情况,导致鼠标无法被下一层检测到从而是无法实现我们想要的功能。此时我们可以使用CanvasGroup组件,将其blockRaycasts属性设置为false,那么鼠标就不会把这个ui物品当作一个碰撞物.

 文章来源地址https://www.toymoban.com/news/detail-758501.html

到了这里,关于unity常用的三种拖拽方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql常用的三种备份方法

    mysql按照备份恢复方式分为逻辑备份和物理备份 逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现 物理备份就是备份数据文件了,比较形象点就是cp下数据文件,但真正备份的时候自然不是的cp这么简单 这2种备份各有优劣,一般来说,物理备份恢

    2024年02月12日
    浏览(42)
  • Mysql - 常用插入数据的三种方法详解及练习

    目录 🥙8.1.1 mysql中常用的三种插入数据的语句 1. insert into - 插入数据 2. replace into - 插入替换数据 3. insert ignore - 如果已存在,忽略当前新数据 🥙8.1.2 以上三种方法的练习及区分 🥙8.1.3 说明 🥙8.1.4 牛客练习题 1. insert into - 插入数据 数据库会检查 主键 ,如果出现重复会报错

    2024年03月24日
    浏览(36)
  • 【Unity】 基础交互入门(按钮点击事件的三种方法)

    1、在资源面板创建C#脚本 2、创建点击事件需要执行的代码(这里以loadMain为例),新增一个叫OnStartButtonClick的Public方法。 可以选择生成或者调试,从VS更新代码到Unity。 3、场景中创建Button和empty(生成空的GameObject) 4、将代码挂在刚刚的GameObject上(这里将GameObject重命名为

    2024年02月09日
    浏览(31)
  • 在Unity中挂载C#脚本的三种方法

    ①在Project(工程)窗口的某个文件夹中(也可以选择新建在Assets(资源根目录)中),然后单击鼠标右键,选择Create-C# Script 注意:扩展名在Unity编辑器中是隐藏的! ②然后再直接拖拽到Hierarchy(层级视图)你想要挂载的物体上 ①在Project(工程)窗口的某个文件夹中(也可

    2024年02月03日
    浏览(26)
  • 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(42)
  • 【unity】几种常用的拖拽方法(内置方法 + 接口 + Event Trigger组件)

    参考原视频链接 【视频】:https://www.bilibili.com/video/BV1W541147GK/ 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入

    2024年02月08日
    浏览(29)
  • 实现ConfigMap热更新的三种常用方法:使用sidecar、CI脚本和自定义Controller

    目录 背景 方法一:使用ConfigMap-Reload Sidecar 方法二:使用CI脚本实现ConfigMap热更新 方法三:使用Controller实现ConfigMap热更新 结论 ConfigMap是Kubernetes中用来存储配置信息的一种资源类型。在Kubernetes集群中,ConfigMap被广泛地用于存储应用程序的配置信息。这些配置信息可以包括环

    2024年02月09日
    浏览(33)
  • 电力系统分析常用的三种迭代方法(雅克比、高斯赛德尔、牛顿拉夫逊法)求解方程的精确解

    一、分别运用雅克比、高斯-赛德尔两种迭代方法计算如下方程:    解:由于系数方程组不满足严格行(列)对角优矩阵的条件,即迭代不收敛,故将方程组转化成以下形式:   (一)Jacobi迭代法: 迭代方程可以化为:  得迭代矩阵:  可以在Matlab编写出以下迭代程序,创

    2024年01月18日
    浏览(34)
  • Unity 鼠标拖拽功能

    继承3个处理拖拽方法的接口IBeginDragHandler, IDragHandler, IEndDragHandler  

    2024年02月16日
    浏览(24)
  • Unity用鼠标拖拽UI,UI跟随鼠标移动

    先上效果 继承几个拖拽的接口 IBeginDragHandler, IDragHandler,IEndDragHandler 计算下偏移量,转换下坐标系 限制下可拖拽的范围,我设置的是canvas的大小 欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。 如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~ 声明

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包