U3D中Camera&Ray的个人理解

本文解析了Unity3D中射线(Ray)的基本原理及其应用,重点介绍了如何通过Camera.main.ScreenPointToRay(Input.mousePosition)生成射线,并解释了射线起点及方向的具体含义。

Unity3D之Camera&Ray

最近在用到Ray的时候理解不明,在其他人的博客上也逛了几圈,这里写下自己的理解。
如果有不对的地方,还请各位大佬指出。

我们先来了解下几个概念:
- 正交Camera是一个四棱锥,近裁剪面即四棱锥的顶面,远裁剪面即四棱锥的底面。
- 正交Camera中所看到的(即游戏屏幕)应该是世界坐标的物体到近裁剪面的投影。
- Ray即射线,需要两个属性,原点&方向。

了解了上述的概念后,我们来看U3D中一段常用的代码。

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

理解该代码:我们建立了一个Ray对象,那么该对象的原点和方向是什么呢?
- 原点:游戏屏幕上的鼠标的坐标(x,y),加上近裁剪面的z坐标形成的(x,y,z)
- 方向:即正交Camera的四棱锥锥角方向,可以理解物体平面与近裁剪面是平行的,形成一个小的四棱锥。

总结:这段常用的代码其实表述的意思是:从正交Camera的近裁剪面的一个点(鼠标坐标确定下x,y)以锥角的方向形成了一条射线。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值