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

Unity 适用Canvas 为任一渲染模式的UI 拖拽

RectTransformUtility-ScreenPointToWorldPointInRectangle - Unity 脚本 API

将一个屏幕空间点转换为世界空间中位于给定RectTransform 平面上的一个位置。 

实现 

 获取平面位置。

parentRT = transform.parent as RectTransform;

继承IPointerDownHandler 和IDragHandler 接口。

鼠标点击时记录鼠标与UI 位置的偏差。

RectTransformUtility.ScreenPointToWorldPointInRectangle(parentRT, eventData.position, eventData.pressEventCamera, out Vector3 worldPoint);
offset = transform.position - worldPoint;

拖拽时记录鼠标位置并设定UI 位置。

RectTransformUtility.ScreenPointToWorldPointInRectangle(parentRT, eventData.position, eventData.pressEventCamera, out Vector3 worldPoint);
transform.position = worldPoint + offset;

 效果

http://www.lryc.cn/news/547214.html

相关文章:

  • 基于遗传算法的无人机三维路径规划仿真步骤详解
  • windows下使用Hyper+wsl实现ubuntu下git的平替
  • 基于Java+SpringCloud+Vue的前后端分离的房产销售平台
  • 以影像技术重构智能座舱体验,开启驾乘互动新纪元
  • deepseek在pycharm 中的配置和简单应用
  • LLM大型语言模型(一)
  • 尚庭公寓项目记录
  • 飞算JavaAI编程工具集成到idea中
  • 【每日八股】计算机网络篇(二):TCP 和 UDP
  • 课程《MIT Introduction to Deep Learning》
  • GCC RISCV 后端 -- C语言语法分析过程
  • UI组件库及antd
  • Windows下使用ShiftMediaProject方法编译FFmpeg
  • 【计算机网络入门】TCP拥塞控制
  • 无人机遥控器无线传输技术解析!
  • 修改hosts文件,修改安全属性,建立自己的DNS
  • MySQL零基础教程16—表连接进阶
  • 【软件系统架构】系列三:数据库系统之三
  • lamp平台介绍
  • 826考研
  • 局域网自动识别机器名和MAC并生成文件的命令
  • todo: 使用融云imserve做登录(android)
  • Mac OS升级后变慢了,如何恢复老系统?
  • cursor使用经验分享(java后端服务开发向)
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • vue 安装依赖npm install过程中报错npm ERR! cb() never called!
  • android接入rocketmq
  • libilibi项目优化(1)使用Redis实现缓存
  • The Rust Programming Language 学习 (二)
  • http链接转成https的链接的几种方法