【Unity】ScreenToWorldPoint转换三维空间MousePosition

踩坑记录:

使用ScreenToWorldPoint一般会出现诸如如下代码

Camera.main.ScreenToWorldPoint(Input.mousePosition)

此时的转换,如果是2D模式下,那么直接使用即可,没有问题,因为2D中,Z默认为0

如果在3D环境下转换,不能直接将input.mousePosition作为参数传入ScreenToWorldPoint,而是要传入指定平面位置的Z值。

并且相机的模式也要注意

相机设置为正交模式:

下面写法也可以直接在Z=0的三维空间,正确转换坐标

Camera.main.ScreenToWorldPoint(Input.mousePosition)

相机设置为透视模式:

这种写法只会永久返回当前主摄像机的transform位置,跟mousePosition为多少没有任何关系

Camera.main.ScreenToWorldPoint(Input.mousePosition)

这种写法,Z轴传入主摄像机的Z值,

Camera.main.ScreenToWorldPoint
(new Vector3(mousePos.x, mousePos.y, Camera.main.transform.position.z)

返回的值,不会只死锁定成主摄像机自己的位置值了,可以在鼠标移动时有改变,但是结果不正确

根据目前项目需求,将摄像机设置成正交来使用,可以获取正确位置了。透视相机如何正确获取转换后的位置,待补充。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zigbee笔记:六、看门狗定时器(Watch Dog)

一、看门狗基础 1、看门狗功能: 由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误等,程序运行可能会陷入死循环。程序的正常运行被打断,由单片机控制的系统无法继…

芯片的PPA-笔记

写在前面:这个仅记录自己对芯片PPA的一些思考,不一定正确,还请各位网友思辨的看待,欢迎大家谈谈自己的想法。 1 此次笔记的起因 记录的原因:自己在整理这段时间的功耗总结,又看到工艺对功耗的影响&#x…

12.SQL注入-盲注基于时间(base on time)

SQL注入-盲注基于时间(base on time) boolian的盲注类型还有返回信息的状态,但是基于时间的盲注就什么都没有返回信息。 输入payload语句进行睡5秒中,通过开发这工具查看时间,如图所示,会在5秒钟后在执行,因此存在基于…

面试篇-系统设计题总结

文章目录 1、设计一个抢红包系统1.1 高可用的解决方案:1.2 抢红包系统的设计1.3 其他 2、秒杀系统设计 这里记录一些有趣的系统设计类的题目,一般大家比较喜欢出的设计类面试题目会和高可用系统相关比如秒杀和抢红包等。欢迎大家在评论中评论自己遇到的题…

磁钢生产领域上下料解决方案

随着智能制造技术的不断革新,磁钢生产领域正逐步引入自动化生产线。然而,传统的人工上下料方式存在诸多问题,难以满足现代生产需求。富唯智能提出了一款复合机器人磁钢上下料解决方案,通过先进的自动化技术,提高生产效…

填报高考志愿,怎样正确地选择大学专业?

大学专业的选择,会关系到未来几年甚至一辈子的发展方向。这也是为什么很多人结束高考之后就开始愁眉苦脸,因为他们不知道应该如何选择大学专业,生怕一个错误的决定会影响自己一生。 毋庸置疑,在面对这种选择的时候,我…

Keycloak SSO 如何验证已添加的 SPN 是否生效

使用 Kerberos Ticket 验证: 在客户端计算机上,运行以下命令以获取 Kerberos Ticket: klist检查是否存在与 HTTP/yourdomain.com 相关的票证。如果存在,说明 SPN 已生效。 测试应用程序: 使用具有 HTTP/yourdomain.com…

windows USB 设备驱动开发-控制传输的数据包

每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。 每种类型的传输都与设备缓冲区USB 端点 的类型相关联。 控制传…

Linux 查看磁盘是不是 ssd 的方法

lsblk 命令检查 $ lsblk -d -o name,rota如果 ROTA 值为 1,则磁盘类型为 HDD,如果 ROTA 值为 0,则磁盘类型为 SSD。可以在上面的屏幕截图中看到 sda 的 ROTA 值是 1,表示它是 HDD。 2. 检查磁盘是否旋转 $ cat /sys/block/sda/q…

北京十大拆迁律师事务所排名

历史时刻在重演,土地征地拆迁作为城市发展中不可或缺的环节备受地方政府重视。然而,在土地征收过程中,往往因为拆迁补偿引发各种纠纷案件,给拆迁方和被拆迁方带来重大损失,侵害双方利益,尤其是被征收人。因…

CentOS修复OpenSSH漏洞升级到openssh 9.7 RPM更新包

在做政府和学校单位网站时,经常需要服务器扫描检测,经常被OpenSSH Server远程代码执行漏洞(CVE-2024-6387)安全风险通告,出了报告需要升级OpenSSH。 使用yum update openssh是无法更新到最新的,因为系统里的…

YOLOX算法实现血细胞检测

原文:YOLOX算法实现血细胞检测 - 知乎 (zhihu.com) 目标检测一直是计算机视觉中比较热门的研究领域。本文将使用一个非常酷且有用的数据集来实现YOLOX算法,这些数据集具有潜在的真实应用场景。 问题陈述 数据来源于医疗相关数据集,目的是解决血细胞检测问题。任务是通过显微…

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一,配置Docker阿里云镜像加速二,Docker安装过程中的几个问题1,安装报错:Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2,报错:Could not fetch…

给我的 IM 系统加上监控两件套:【Prometheus + Grafana】

监控是一个系统必不可少的组成部分,实时,准确的监控,将会大大有助于我们排查问题。而当今微服务系统的话有一个监控组合很火那就是 Prometheus Grafana,嘿你别说 这俩兄弟配合的相当完美,Prometheus负责数据采集&…

MyBatis入门程序详解

目录 一、MyBatis概述 二、编写MyBatis入门程序 三、配置SQL提示 四、传统jdbc的劣势 一、MyBatis概述 MyBatis是一个基于Java的持久层框架,它内部封装了JDBC操作,使得开发人员可以更专注于SQL语句本身而非繁琐的JDBC操作细节。在MyBatis中&#xff0…

LLM - 词向量 Word2vec

1. 词向量是一个词的低维表示,词向量可以反应语言的一些规律,词意相近的词向量之间近乎于平行。 2. 词向量的实现: (1)首先使用滑动窗口来构造数据,一个滑动窗口是指在一段文本中连续出现的几个单词&#x…

逻辑这回事(八)---- 时钟与复位

时钟设计总结 时钟和复位是FPGA设计的基础,本章总结了一些逻辑时钟复位设计、使用中出现的问题,给出了设计要点,避免后续问题重犯。时钟和复位,本文都先从板级谈起,再到FPGA芯片级,最后到模块级别。仅在此…

Java需要英语基础吗?

Java编程语言本身并不要求必须有很强的英语基础,因为Java的语法和逻辑是独立于任何特定语言的。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&am…

Nginx的安装与配置 —— Linux系统

一、Nginx 简介 1.1 什么是 Nginx Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务…

部署AI平台-Ollama

介绍 llama:LLaMA(Large Language Model Meta AI)是由 Meta(原Facebook公司)发布的一系列大型语言模型。这些模型旨在处理和生成自然语言文本,能够执行多种任务,如文本摘要、翻译、问答、文本生成等。LLaMA 模型因其高效的性能和较小的模型尺…