当前位置: 首页 > news >正文

UGUI跟随鼠标

using System;
using UnityEngine;
using UnityEngine.EventSystems; // 引入UI命名空间
public class UIFollowMouse : MonoBehaviour,IBeginDragHandler, IDragHandler,IEndDragHandler
{/// <summary>/// 标识/// </summary>public int mId;private RectTransform rectTransform;private RectTransform area;//canvas区域范围private void Start(){rectTransform = GetComponent<RectTransform>();area = GetComponentInParent<Canvas>().GetComponent<RectTransform>();}private Vector2 _offset;public void OnBeginDrag(PointerEventData eventData){if (rectTransform == null || area == null )return;// 将鼠标的屏幕位置转换为UI元素的世界位置Vector2 localPointerPosition;if (RectTransformUtility.ScreenPointToLocalPointInRectangle(area, eventData.position, eventData.enterEventCamera, out localPointerPosition)){// 设置UI元素的位置以跟随鼠标_offset = rectTransform.anchoredPosition - localPointerPosition;}}public void OnDrag(PointerEventData eventData){if (rectTransform == null || area == null)return;Vector2 localPointerPosition;if (RectTransformUtility.ScreenPointToLocalPointInRectangle(area, eventData.position, eventData.enterEventCamera, out localPointerPosition)){// 设置UI元素的位置以跟随鼠标//_offset = rectTransform.position - localPointerPosition;rectTransform.anchoredPosition = localPointerPosition + _offset;}}public Action<int, Vector2> mEndDragCallBack;public void OnEndDrag(PointerEventData eventData){mEndDragCallBack?.Invoke(mId, rectTransform.anchoredPosition);}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于python的百度迁徙迁入、迁出数据分析(三)
  • DOS攻击实验
  • 语音合成大模型汇总
  • Linux 4: Bash
  • 大模型学习笔记十四:Agent模型微调
  • Ubuntu20.04 设置静态ip
  • AI驱动的城市治理:露天商贩监测识别技术在街道安全管理中的应用
  • 主要的软件设计模式及其在Kotlin中的实现示例
  • 1480. 找字典码最小的字符串
  • 基于微信小程序的数字社区管理系统
  • 科学设计程序员面试内容,破解“八股文”之弊
  • 《计算机网络》(第8版)第八章 互联网上的音频/视频服务 复习笔记
  • 【数据结构】队列(链表实现 + 力扣 + 详解 + 数组实现循环队列 )
  • Hadoop3.3.5的安装与单机/伪分布式配置
  • 【odoo17 | Owl】前端js钩子调用列表选择视图
  • [ JavaScript ] 数据结构与算法 —— 链表
  • DataBase in Android
  • Git初体验
  • HTTP那些事
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Twitter赢在开放,三年创造奇迹
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 排序算法之--选择排序
  • 配置 PM2 实现代码自动发布
  • 微信小程序:实现悬浮返回和分享按钮
  • Spring Batch JSON 支持
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​什么是bug?bug的源头在哪里?
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #php的pecl工具#
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (42)STM32——LCD显示屏实验笔记
  • (5)STL算法之复制
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (黑马C++)L06 重载与继承
  • (五)Python 垃圾回收机制
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ***测试-HTTP方法
  • *1 计算机基础和操作系统基础及几大协议
  • .md即markdown文件的基本常用编写语法
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 表达式计算:Expression Evaluator
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 后台导出excel ,word
  • .NET6 命令行启动及发布单个Exe文件
  • .Net各种迷惑命名解释