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)以锥角的方向形成了一条射线。
本文解析了Unity3D中射线(Ray)的基本原理及其应用,重点介绍了如何通过Camera.main.ScreenPointToRay(Input.mousePosition)生成射线,并解释了射线起点及方向的具体含义。
7957

被折叠的 条评论
为什么被折叠?



