Unity 拖动UI物体(干货)
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物体(干货)相关推荐
- GJM:Unity开发HTC vive 三、远处拖动3D物体 【转载】
腾讯GAD 窗间风月 原文URL : http://gad.qq.com/article/detail/7192223 版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 在项目中会需要拖动远处的 ...
- unity 鼠标拖动UI 滚轮缩放大小
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...
- Unity 鼠标拖动UI
拖动UI 第一种: using UnityEngine; using UnityEngine.EventSystems;public class test : MonoBehaviour, IDrag ...
- Unity鼠标拖动3D物体移动,并限制拖动范围
using UnityEngine; using System.Collections;public class DragObject : MonoBehaviour {/// <summary ...
- Unity EvenTrigerer UI交互组件
Unity EvenTrigerer UI交互组件 Event Trigerer组件介绍 方便之处 事件选择 使用方法 1.拖拽法 代码添加 接口法 Event Trigerer组件介绍 该组件作用与 ...
- unity 原生UI 拖拽跟随鼠标移动
unity 拖拽某个UI移动时有三个方法:,例如是image类型的UI,要想实现图片跟随着鼠标移动需要以下操作: 第一个方法:在Update函数中执行 if(Input.GetMouseBut ...
- Unity引擎UI模块知识Tree
Unity引擎在4.6版本之前是没有内置的UI解决方案的.当时最流行的就是NGUI的框架,目前主流的UI解决方案就是NGUI和UGUI,近几年来,更是以UGUI为主,同时也有团队开始使用FairyGU ...
- unity 多个物体围绕一个点生成圆形状
unity 多个物体围绕一个点生成圆形状 适用于场景.UI 直接ctr c v 就可用 /// <summary> 需要被实例化的对象 </summary>public Gam ...
- unity中ui界面介绍
unity中ui界面的介绍 ui 又称gui,它比较适合做一些简单的界面. 可以在层级视图中右键单击就会出现很多选项卡,其中有一个就是ui单击就会出现如上图片中的内容 1.text: 这就是一个文本输 ...
最新文章
- 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码
- python常用内置模块-Python常用内置模块之xml模块(详解)
- android studio下的NDK开发详解
- 【Python】你的表格太丑了!能美化下吗?
- Hybris Commerce下单时遇到产品库存不足的解决办法
- AS3 CookBook学习整理(一)
- [视频演示].NET Core开发的iNeuOS物联网平台,实现从设备PLC、云平台、移动APP数据链路闭环...
- LightGBM——提升机器算法(图解+理论+安装方法+python代码)
- 区间DP--凸多边形三角剖分
- PowerShell 转码函数 Default-UTF8
- 计算机课程设计红绿灯,labview红绿灯课程设计报告
- java8 垃圾回收算法_Java垃圾回收机制算法详解
- CSS设置字体种类,如宋体,楷体,黑体,仿宋等等。。。。
- hdoj 5934 强连通分量+缩点 模版题(Java版)
- 管理中如何提高自己的推动力
- 医学用计算机吗,学临床医学必须要用笔记本电脑吗?
- Opencv项目实战:07 人脸识别和考勤系统
- UGUI源码解析(二十二)ContentSizeFitter
- 世界顶级思维(必须收藏)
- UAP_STUDIO授权失败解决办法
热门文章
- Android的计量单位px,in,mm,pt,dp,dip,sp
- Hibiscus的脑机接口学习周报(2023/1/16~2023/1/22)
- 递归函数求解阶层(C语言)
- 云管边端架构图_新通信行业:阿里云构建云管边端物联网布局
- IC基础——FIFO
- 巴鲁夫使用CAE数据扩展其产品目录
- c语言.jpg图片转成数组_基于 C 语言开发的 GUI 框架
- Cathy Zhang 箭头函数与普通函数的区别
- 吴恩达机器学习笔记(五)正则化Regularization
- windows下配置公私钥