Unity踩坑之RectTransformUtility.ScreenPointToLocalPointInRectangle

此方法会将屏幕坐标点转换为UI的本地坐标点,即UI子物体相对于父物体的相对位置。不过值得注意的是:当父物体的锚点不在中心时,可能比较麻烦,因为UI的本地坐标是相对于父物体的锚点来计算的。

RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRectTransform, eventData.position, eventData.pressEventCamera, out localPoint)
  • parentRectTransform:这是要进行坐标转换的RectTransform的父级RectTransform。它定义了坐标转换的参考系。通常,你会将父级RectTransform设置为UI元素所在的Canvas的RectTransform。

  • eventData.position:这是事件数据的屏幕坐标。它表示鼠标或触摸事件发生的位置。

  • eventData.pressEventCamera:这是事件数据的相机。它表示事件发生时使用的相机。对于UI事件,通常使用UI相机(例如Canvas上的UI Camera)。

  • localPoint:这是一个输出参数,用于存储转换后的本地坐标。方法执行后,将通过这个参数返回转换后的坐标值。

假设鼠标点击a物体(都为UI元素,下同),而a物体的父物体为A,如果A相对于Canvas,其锚点在Canvas的中心点,那么使用RectTransformUtility.ScreenPointToLocalPointInRectangle方法,将父物体,鼠标指针位置,渲染Canvas的相机(若为Overly则为null),传入,得到的localPoint就是a的PosX和PosY。但是如果A的锚点不在Canvas的中心,那么得到的localPoint就不会是预期值了。

如果子物体的父物体的锚点不在中心,可以在子物体上再套一个空物体,将空物体的锚点设为父物体的中心,则完美解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux进程——概念理解与PCB

前言:本篇讲解Linux进程概念相关内容。 操作系统被称为计算机世界的哲学, 可以见得操作系统的知识并不好理解。 对于这篇进程概念的讲解, 博主认为, 如果没有一些前置知识的话,里面的有些概念并不好理解。 但是如果学习…

SQL Server 用户应当如何防范 Mallox (.hmallox) 勒索软件袭击

勒索软件领域的特点是随着时间的流逝,参与者群体和恶意软件家族都会大量流失,只有少数参与者表现出相对长寿的寿命。曾经令人担忧的威胁,如 REvil 和 Conti,要么被铲除,要么被解散,而其他威胁——例如 ALPH…

UGUI优化篇(更新中)

UGUI优化篇 1. 基础概念2. 重要的类1. MaskableGraphic类继承了IMaskable类2. 两种遮罩的实现区别RectMask2DMask 3. 渲染部分知识深度测试深度测试的工作原理 渲染队列透明物体在渲染时怎么处理为什么透明效果会造成性能问题 1. 基础概念 所有UI都由网格绘制的如image由两个三…

Leetcode(经典题)day4

滑动窗口 长度最小的子数组 209. 长度最小的子数组 - 力扣(LeetCode) 使用滑动窗口,当前窗口大小的数组的和比目标值小就加大窗口(r),当前窗口大小的数组的和比目标值大或相等,就减小窗口大小…

力扣题解(不同的子序列)

115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 思路: 本题研究的是t在s中出现的次数,注意t一定是小的那个,是s的子串。 dp[i][j]表示t的&#xff…

25届平安产险校招测评IQ新16PF攻略:全面解析与应试策略

尊敬的读者,您好。随着平安产险校招季的到来,许多应届毕业生正积极准备着各项测评。本文旨在提供一份详尽的测评攻略,帮助您更好地理解平安产险的校招测评流程,以及如何有效应对。 25届平安产险平安IQ(新)测…

AI大模型探索之旅:深潜大语言模型的训练秘境

在人工智能的浩瀚星空中,大语言模型无疑是最耀眼的星辰之一,它们以无与伦比的语言理解与生成能力,引领着智能交互的新纪元。本文将带您踏上一场探索之旅,深入大语言模型的训练秘境,揭开其背后复杂而精妙的全景画卷。 …

Java常用API---Object类

Object类概述 概述 Object类是所有类的父类,任何一个类的对象(包括数组),都可以调用Object类的方法 目标: 掌握Object类的常用方法 常用方法: boolean equals(Object obj):判断当前对象是否与参数对象"相等" Strin…

Linux时间查看和设置

查看时间 date 命令,输出 Sun Jul 14 07:23:03 PM CST 2024timedatectl 命令,输出 Local time: Sun 2024-07-14 10:30:00 CSTUniversal time: Sun 2024-07-14 02:30:00 UTCRTC time: Sun 2024-07-14 02:30:00Time zone: Asia/Shanghai (CST, 0800) Sys…

汇编学习基础知识【记录】

前言 又是快乐的学习汇编的一天,时间如白驹过隙,抓紧时间,在学习能力最好的年纪多学习一些知识,朝着美好生活而奋斗!哈哈哈 参考文章: https://blog.csdn.net/Z_H_Z_0/article/details/106574292 知识补…

给 「大模型初学者」 的 LLaMA 3 核心技术剖析

编者按: 本文旨在带领读者深入了解 LLaMA 3 的核心技术 —— 使用 RMSNorm 进行预归一化、SwiGLU 激活函数、旋转编码(RoPE)和字节对编码(BPE)算法。RMSNorm 技术让模型能够识别文本中的重点,SwiGLU 激活函…

现在有哪些微服务解决方案?

Dubbo:是一个轻量级的Java微服务框架,最初由阿里巴巴在2011年开源。它提供了服务注册与发现、负载均衡、容错、分布式调用等。Dubbo更多的被认为是一种高性能的RPC框架(远程过程调用),一些服务治理功能依赖第三方组件完…

以一个springboot项目中创建用户会话的业务背景来说明threadlocal的用法

在Spring Boot项目中,ThreadLocal 是一个非常有用的工具,特别是在处理用户会话信息时。ThreadLocal 允许你在同一个线程中存储和访问变量,而不会与其他线程的变量发生冲突。这对于存储用户会话信息、请求上下文等非常有用。 以下是一个示例&…

第一部分:C++入门

目录 前言 1、C关键字(C98) 2、命名空间 2.1、命名空间定义 2.2、命名空间的使用 3、C输入&输出 4、缺省参数 4.1、缺省参数的概念 4.2、缺省参数的分类 5、函数重载 5.1、函数重载的概念 5.2、C支持函数重载的原理 6、引用 6.1、引用的概念 6.2、引用特性 …

Unity与Unreal Engine:AR建筑应用开发之选

在AR技术的浪潮中,建筑行业正迎来一场技术革新。对于希望为建筑工人开发AR应用的创业者来说,选择正确的开发平台至关重要。本文将基于社区讨论,深入分析Unity与Unreal Engine两款引擎在AR施工应用中的优劣,为开发者提供决策参考。…

深圳晶彩智能JC3636W518C开箱实现电脑副屏功能

深圳晶彩智能发布了JC3636W518C 这是一款中国制造的,铝合金外壳,价格非常震撼的开发板。原创是billbill的up播主萨纳兰的黄昏设计的ESP32太极小派,由深圳晶彩智能批量生产。 该款 LCD 模块采用 ESP32-S3R8 芯片作为主控,该主控是双核 MCU&…

LightDM和SDDM显示管理器学习小知识

LightDM和SDDM是两种不同的显示管理器(Display Manager),它们可以与多种Linux桌面环境配合使用。以下是它们常见的对应关系: ### LightDM LightDM是一个跨桌面的显示管理器,它允许用户选择不同的桌面环境。以下是一些…

C++入门基础篇(2)

欢迎大家的来到小鸥的博客&#xff0c;今天我们继续C基础的第二篇吧&#xff01; 这也是入门基础篇的最后一篇wo~ 目录 1.引用 引用的概念 引用的特性及使用 const常引用 指针和引用的关系 2.inline内联函数 定义 相关特性及使用​ 3.nullptr >>后记<< …

摩尔投票算法

文章目录 什么是摩尔投票算法算法思想 相关例题摩尔投票法的扩展题目解题思路代码奉上 什么是摩尔投票算法 摩尔投票法&#xff08;Boyer-Moore Majority Vote Algorithm&#xff09;是一种时间复杂度 为O(n),空间复杂度为O(1)的方法&#xff0c;它多数被用来寻找众数&#xf…

深入理解Symfony框架中的数据验证机制

Symfony是一个高度灵活的PHP Web应用框架&#xff0c;它提供了一整套工具和实践来帮助开发者构建复杂的Web应用。数据验证是确保应用数据完整性和安全性的关键环节。在Symfony中&#xff0c;数据验证是通过一系列的组件和方法来实现的&#xff0c;这些组件和方法遵循DRY&#x…