第一人称游戏往往有一个准星UI,如果要往准星UI的位置发射一条射线,就可以使用"屏幕位置"来获取准星UI的位置。

如图:

在unity中,左下角的屏幕位置为(0,0),右上角的屏幕位置是(Screen.width,Screen.height)(注意x为宽,y为高)。如图可以了解到,在屏幕位置中,左下角是最小值,右上角为最大值,那么中点自然就是(Screen.width / 2, Screen.height / 2)了。

如果你需要的不是Input.mousePosition鼠标位置,而是屏幕中点,那么这条射线应该这样获取:

m_ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));

ScreenPointToRay()方法:屏幕像素点转换成射线,通常值都是Input.mousePosition,实际上Input.mousePosition获取的也是屏幕点,也就是屏幕位置,而非世界坐标。

详细的世界坐标与屏幕坐标的区别可以看这篇文章:https://blog.csdn.net/yongh701/article/details/71423029

unity射线ScreenPointToRay以屏幕中点的位置发射射线相关推荐

  1. Unity两种获取屏幕点击位置的世界坐标方法

    工作需要,需要根据用户点击的位置向四周发射射线,但是如何获取这个点成了问题. 首先我们需要知道一个方法,一个变量. 这个变量是 Input.mousePosition这个变量是用户点击的屏幕坐标(像素 ...

  2. unity 如何获取到屏幕中间_【Unity】屏幕空间位置变换到世界空间位置的方法

    屏幕空间像素的位置,是一个二维的浮点数,而世界空间的位置,则是三维的浮点数.实现的基本思路很简单,是世界空间位置变换到屏幕空间位置的逆过程,只是稍微有些区别.如果对图形渲染管线中的坐标变换没有弄清楚, ...

  3. 【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等

    1.鼠标在屏幕上的位置 using System.Collections; using System.Collections.Generic; using UnityEngine;public cla ...

  4. 【UE4】射线检测获取屏幕中心位置与制作瞄准准星

    射线检测 通过获取屏幕的中心点二维坐标,将其转换为三维世界坐标系,即可利用射线检测得到想要的数据. 准星材质 制作一个简单的圆形材质,也可使用十字准星贴图制作. 在HUD中绘制 新建一个继承自HUD的 ...

  5. 《Unity着色器和屏幕特效》——2.2 进阶的透明效果

    本节书摘来自华章计算机<Unity着色器和屏幕特效>一书中的第2章,第2.2节,作者[美]杰米·迪恩(Jamie Dean),译 周翀,张薇,更多章节内容可以访问云栖社区"华章计 ...

  6. 【Unity】Unity中获得碰撞体碰撞的位置

    有时间的直接看sprite slicer这个插件的代码,原理也是发射线检测,代码逻辑什么的比下面的文章来的好的多,如果有空我也可以整理一下. 在纯物理环境中,为了获得碰撞体碰撞的位置,我们可以使用Co ...

  7. Unity之手机键盘自定义输入栏位置适配不同手机分辨率适配

    Unity之手机键盘自定义输入栏位置适配&不同手机分辨率适配 效果图 PC端展示 手机端展示(手机是顶部带摄像头的IQOO Neo 5 ) 设计思路 也没啥思路不思路的,就是获取键盘高度,在安 ...

  8. Unity中的UGUI屏幕适配

    本文分享Unity中的UGUI屏幕适配 屏幕适配一直是一个老生常谈的问题, 虽然只是项目一开始的时候会用到, 但是还是有很多东西需要学习和了解, 今天给大家分享下一些个人的学习和总结. 各种坐标 屏幕 ...

  9. Unity射线,摄像机和物体发射射线

    以下是从物体发射摄像的方法: void Update () { //ray = Camera.main.ScreenPointToRay(fatherPoint.transform.position) ...

最新文章

  1. 推荐几个BAT大佬的公众号
  2. Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — SKB
  3. 【前端面试分享】- 寒冬求职下篇
  4. RedHat(Linux) Oracle数据库设置开机自启动
  5. 同程旅游缓存系统(凤凰)打造Redis时代的完美平台实践
  6. Linux 虚拟机安装后的配置和一些命令符笔记
  7. Fiori as a Service - FaaS - Creation of inline task option is not available
  8. 【SqlServer】Sqlserver中的DOS命令操作
  9. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...
  10. [征询意见]更换Logo后的效果[dudu]
  11. 程序员常见的健康问题
  12. [你的灯亮着吗]读书笔记
  13. 什么是Http无状态协议?
  14. 一、数字图像处理分析与概述
  15. java人民币大写转换脚本_Java实现人民币大写代码解析
  16. SVO2:一些失败的经验
  17. 稳定同位素(stable isotope)标记氨基酸,聚氨基酸,PEI,聚合物,抑制剂,离子液体,石墨烯,黑磷,透明质酸,荧光材料,脂质体复合物
  18. ActiveMQ反序列化漏洞(CVE-2015-5254)
  19. 出入库单据小票移动打印,盘点机PDA连接蓝牙打印机打印单据小票
  20. 2022 极术通讯-基于安谋科技 “星辰” STAR-MC1的灵动MM32F2570开发板深度评测

热门文章

  1. 使用BRVAH遇:ViewHolder views must not be attached when created. Ensure that you are not passing 'true'
  2. ## 项目第十五天 ##
  3. 伪静态以及应用(rewrite)
  4. CC2430 串口通信UART
  5. Sky number
  6. 如何成为建模师?游戏建模是不是建模行业中最吃香的?
  7. 计算机组成原理存储系统一章中的那些英语缩写
  8. 农村计算机应用知识,【农村中职学校计算机应用基础教学方法初探】 计算机应用基础 2018...
  9. 力荐 75种jquery特效 一键下载 用过挺好的
  10. c语言微课名称大全,微课在高职《C语言程序设计》课程中的初探