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

Unity 之 ScreenPointToRay() (将点转换成射线的方法)

文章目录

  • ScreenPointToRay()

在这里插入图片描述

ScreenPointToRay()

ScreenPointToRay() 是Unity中Camera类的一个方法,用于将屏幕上的一个点转换为一条射线。这条射线的起点是摄像机在屏幕上对应的点,方向是从摄像机出发指向那个点。这在进行射线命中检测时非常有用,特别是与用户界面和鼠标交互相关的场景中。

以下是ScreenPointToRay() 方法的详细介绍:

public Ray ScreenPointToRay(Vector3 position);

参数:

  • position:屏幕上的一个点,通常是屏幕坐标(像素坐标)。

返回值:

  • 类型:Ray
  • 描述:返回一条射线,其起点是摄像机在屏幕上的位置,方向是从摄像机指向屏幕上的那个点。

补充一下(Ray 类型Ray是一个Unity中的结构体,它包含了射线的起点和方向)

使用ScreenPointToRay()时,你将一个屏幕上的点(例如鼠标位置)传递给它,它会返回一条射线,这条射线可以用于与场景中的物体进行交互,进行射线命中检测等操作。

示例用法:

Camera mainCamera = Camera.main;  // 获取主摄像机
Vector3 mousePosition = Input.mousePosition;  // 获取鼠标在屏幕上的位置
Ray ray = mainCamera.ScreenPointToRay(mousePosition);  // 将屏幕点转换为射线if (Physics.Raycast(ray, out hitInfo, maxDistance)) {// 射线命中了某个物体// 在这里可以处理命中的物体信息
}

在上面的示例中,我们首先获取了主摄像机和鼠标在屏幕上的位置。然后,通过将屏幕点传递给ScreenPointToRay()方法,我们获得了一条从摄像机发出的射线,可以在Physics.Raycast()中使用进行命中检测。

总之,ScreenPointToRay() 方法是一个方便的工具,用于将屏幕上的点转换为在世界空间中进行射线命中检测所需的射线。

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

相关文章:

  • C++ 线程池
  • 测试框架pytest教程(6)钩子函数hook开发pytest插件
  • 【Rust】Rust学习 第十七章Rust 的面向对象特性
  • Redis系列(四):哨兵机制详解
  • 一个滚动框高度动态计算解决方案
  • Android瀑布流
  • Ubuntu搭建CT_ICP里程计的环境暨CT-ICP部署
  • 微信小程序全局事件订阅eventBus
  • 华为云cce发布若依前后分离版:2.nginx镜像操作
  • TCP协议报文结构
  • Day14-2-NodeJS后端开发流程
  • 计算机竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习
  • 框架(Git基础详解及Git在idea中集成步骤)
  • 0基础学习VR全景平台篇 第88篇:智慧眼-成员管理
  • DSO 系列文章(2)——DSO点帧管理策略
  • 无需公网IP——搭建web站点
  • swift 项目集成友盟推送
  • Unity之用Transform 数组加多个空物体-->简单地控制物体按照指定路线自动行驶
  • 交换机生成树STP
  • 3.微服务概述
  • cloud_mall-notes02
  • 前端轻松实现文件预览(pdf、excel、word、图片)
  • docker服务器、以及容器设置自动启动
  • k8s集群证书过期后,如何更新k8s证书
  • 5.6.webrtc三大线程
  • @Slf4j报错:Not generating field log: A field with same name already exists
  • 乖宝宠物上市,能否打破外资承包中国宠物口粮的现实
  • Ubuntu安装Apache+Php
  • open cv学习 (四)图像的几何变换
  • matlab 检测点云中指定尺寸的矩形平面