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

Unity UGUI 之 坐标转换

本文仅作学习笔记与交流,不作任何商业用途

本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正

本文在发布时间选用unity 2022.3.8稳定版本,请注意分别

前置知识:Unity UGUI 之 事件接口-CSDN博客 

Unity UGUI 之 事件触发器-CSDN博客

屏幕坐标转UI坐标

Q:首先他是干什么的?

A:可以点击,触摸,拖拽UI

Q:那我用事件触发器也可以实现啊!

A:这就是事件触发器下的小知识,可以将其理解为事件触发器中的一个辅助函数

不然你自己写拖拽逻辑也行,不过用轮子岂不是更快更好更省力

RectTransformUtility - Unity 脚本 API

注意看倒数第二个方法,用于将屏幕的位置转为UI位置(矩形平面位置)RectTransformUtility-ScreenPointToLocalPointInRectangle - Unity 脚本 API

 举个栗子:

我屏幕上有的:

 

我写的代码: 

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.EventSystems;public class 坐标转换 : MonoBehaviour,IDragHandler
{public RectTransform canvasRectTransform;//以拖拽接口为例public void OnDrag(PointerEventData eventData) {Vector2 UIposition;//屏幕坐标转Rect坐标 注意四个参数RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRectTransform,//1.你要在什么上面拖拽就填写谁的RectTransformeventData.position,//2.屏幕位置eventData.pressEventCamera,//3.触发当前事件的相机(Camera)对象out UIposition//最后UI的位置);{this.transform.localPosition = UIposition;}}
}

实际效果: 

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

相关文章:

  • 使用 uPlot 在 Vue 中创建交互式图表
  • SpringBoot 项目配置文件注释乱码的问题解决方案
  • TTS如何正确读AI缩写、金额和数字
  • python基础知识点(蓝桥杯python科目个人复习计划75)
  • 小技巧:如何在已知PDF密码情况下去掉PDF的密码保护
  • Java泛型的介绍和基本使用
  • 【C++】动态内存管理与模版
  • MongoDB - 组合聚合阶段:$group、$match、$limit、$sort、$skip、$project、$count
  • vue element-ui日期控件传参
  • MacOS安装SDKMan管理Java版本
  • 【网络安全的神秘世界】文件包含漏洞
  • 并发编程--volatile
  • 记录unraid docker更新的域名
  • SpringCloud+Vue3多对多,多表联查
  • 麒麟系统信创改造
  • 【Android】ListView和RecyclerView知识总结
  • 泛域名绑定到wordpress网站二级目录
  • 8、从0搭建企业门户网站——网站部署
  • uniapp中出现图片过小会与盒子偏离
  • MySQL练手 --- 1934. 确认率
  • 【OpenCV C++20 学习笔记】扫描图片数据
  • LeetCode:爬楼梯(C语言)
  • 银河麒麟(arm64)环境下通过docker安装postgis3,并实现数据整体迁移
  • C语言 | Leetcode C语言题解之第278题第一个错误的版本
  • 京东科技集团将在香港发行与港元1:1挂钩的加密货币稳定币
  • Vue 实现电子签名并生成签名图片
  • Visual Studio 2022美化
  • [CISCN2019 华东南赛区]Web11
  • 【图形图像-1】SDF
  • 苍穹外卖01