Unity3D射线的方向

刚做完一个项目,里面有用到Untiy3D射线的相关内容,里面有个小坑记录一下,也把我遇到的这个问题和大家分享下。

使用Unity3D的屏幕射线时,会得到两个值,一个是Origin,是射线的源点,另一个是Direct,代表了射线的方向,这两个值均为Vector3类型。

根据数学知识,射线的表示为P(t)=Origin+t*Direct,你以为就这么容易吗,NO!!!!

重点:射线的Direct表示的是以Origin为原点的方向!!!所以P(t)这个等式在这种情况下并不成立。

那怎么获得射线上的点呢,Unity3D里面有个刚刚好的接口,是Ray.GetPoint(t),这样得到的点即为射线上的点。

说回来,那怎么得到射线方向呢(世界坐标系下的)=>   direct=Ray.GetPoint(t)-Origin

这样就可以使用P(t)=Origin+t*direct这个公式了。

感觉自己绕了个圈圈,如果有更好的方法,欢迎留言。

相关文章

前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文...
前言 有时候我们希望公告牌跟随镜头旋转永远平行面向屏幕,同...
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行...
前言 在unity中我们常用的获取鼠标点击的方法有: 1、在3D场...
前言 在之前的例子中,我们都没有用到unity的精髓,例如地形...
这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...