Unity 拖动UI物体(超级干货)

首先我们先创建一个C#脚本 名字就叫MyMove
代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;public class MyMove: MonoBehaviour
{public  GameObject Canvas;GameObject InputObject;bool b;//鼠标是否在按下状态// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//当鼠标按下时 状态为按下状态 InputObject去获取鼠标点击的UIif (Input.GetMouseButtonDown(0)){b = true;InputObject = GetOverUI(Canvas);       }//当鼠标抬起时 状态为抬起状态 InputObject等于nullif (Input.GetMouseButtonUp(0)){b = false;InputObject = null;}if (InputObject != null && b==true){if (InputObject.name == "Over"){InputObject.transform.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);}}}/// <summary>/// 获取鼠标停留处UI/// </summary>/// <param name="canvas"></param>/// <returns></returns>public GameObject GetOverUI(GameObject canvas){PointerEventData pointerEventData = new PointerEventData(EventSystem.current);pointerEventData.position = Input.mousePosition;GraphicRaycaster gr = canvas.GetComponent<GraphicRaycaster>();List<RaycastResult> results = new List<RaycastResult>();gr.Raycast(pointerEventData, results);if (results.Count != 0){return results[0].gameObject;}return null;}/// <summary>/// 获取鼠标停留处物体,不仅适合UI还适合3D物体/// </summary>/// <param name="raycaster"></param>/// <returns></returns>public GameObject GetOverGameObject(GameObject raycaster){PointerEventData pointerEventData = new PointerEventData(EventSystem.current);pointerEventData.position = Input.mousePosition;PhysicsRaycaster pr = raycaster.GetComponent<PhysicsRaycaster>();List<RaycastResult> results = new List<RaycastResult>();pr.Raycast(pointerEventData, results);if (results.Count != 0){return results[0].gameObject;}return null;}
}

然后将上面的C#脚本挂载到我们的 Canvas 上面 (我这边的名字跟上面代码的名字不同,代码是一样的)

然后将我们的Canvas 拖到我们这边来 (我这边的名字跟上面代码的名字不同,代码是一样的)

然后我们在创建一个 image 取名叫Over 我再随便给他设置个颜色 将其挂载到 Canvas 节点下。

然后运行


哈哈完成 ,想拖到哪里就拖到哪里 。

Unity 拖动UI物体(干货)相关推荐

  1. GJM:Unity开发HTC vive 三、远处拖动3D物体 【转载】

    腾讯GAD  窗间风月 原文URL : http://gad.qq.com/article/detail/7192223 版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 在项目中会需要拖动远处的 ...

  2. unity 鼠标拖动UI 滚轮缩放大小

    using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  3. Unity 鼠标拖动UI

    拖动UI 第一种: using UnityEngine; using UnityEngine.EventSystems;public class test : MonoBehaviour, IDrag ...

  4. Unity鼠标拖动3D物体移动,并限制拖动范围

    using UnityEngine; using System.Collections;public class DragObject : MonoBehaviour {/// <summary ...

  5. Unity EvenTrigerer UI交互组件

    Unity EvenTrigerer UI交互组件 Event Trigerer组件介绍 方便之处 事件选择 使用方法 1.拖拽法 代码添加 接口法 Event Trigerer组件介绍 该组件作用与 ...

  6. unity 原生UI 拖拽跟随鼠标移动

    unity 拖拽某个UI移动时有三个方法:,例如是image类型的UI,要想实现图片跟随着鼠标移动需要以下操作: 第一个方法:在Update函数中执行     if(Input.GetMouseBut ...

  7. Unity引擎UI模块知识Tree

    Unity引擎在4.6版本之前是没有内置的UI解决方案的.当时最流行的就是NGUI的框架,目前主流的UI解决方案就是NGUI和UGUI,近几年来,更是以UGUI为主,同时也有团队开始使用FairyGU ...

  8. unity 多个物体围绕一个点生成圆形状

    unity 多个物体围绕一个点生成圆形状 适用于场景.UI 直接ctr c v 就可用 /// <summary> 需要被实例化的对象 </summary>public Gam ...

  9. unity中ui界面介绍

    unity中ui界面的介绍 ui 又称gui,它比较适合做一些简单的界面. 可以在层级视图中右键单击就会出现很多选项卡,其中有一个就是ui单击就会出现如上图片中的内容 1.text: 这就是一个文本输 ...

最新文章

  1. 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码
  2. python常用内置模块-Python常用内置模块之xml模块(详解)
  3. android studio下的NDK开发详解
  4. 【Python】你的表格太丑了!能美化下吗?
  5. Hybris Commerce下单时遇到产品库存不足的解决办法
  6. AS3 CookBook学习整理(一)
  7. [视频演示].NET Core开发的iNeuOS物联网平台,实现从设备PLC、云平台、移动APP数据链路闭环...
  8. LightGBM——提升机器算法(图解+理论+安装方法+python代码)
  9. 区间DP--凸多边形三角剖分
  10. PowerShell 转码函数 Default-UTF8
  11. 计算机课程设计红绿灯,labview红绿灯课程设计报告
  12. java8 垃圾回收算法_Java垃圾回收机制算法详解
  13. CSS设置字体种类,如宋体,楷体,黑体,仿宋等等。。。。
  14. hdoj 5934 强连通分量+缩点 模版题(Java版)
  15. 管理中如何提高自己的推动力
  16. 医学用计算机吗,学临床医学必须要用笔记本电脑吗?
  17. Opencv项目实战:07 人脸识别和考勤系统
  18. UGUI源码解析(二十二)ContentSizeFitter
  19. 世界顶级思维(必须收藏)
  20. UAP_STUDIO授权失败解决办法

热门文章

  1. Android的计量单位px,in,mm,pt,dp,dip,sp
  2. Hibiscus的脑机接口学习周报(2023/1/16~2023/1/22)
  3. 递归函数求解阶层(C语言)
  4. 云管边端架构图_新通信行业:阿里云构建云管边端物联网布局
  5. IC基础——FIFO
  6. 巴鲁夫使用CAE数据扩展其产品目录
  7. c语言.jpg图片转成数组_基于 C 语言开发的 GUI 框架
  8. Cathy Zhang 箭头函数与普通函数的区别
  9. 吴恩达机器学习笔记(五)正则化Regularization
  10. windows下配置公私钥