从一个问题开始:我们遇到过点击游戏屏幕然后角色让我们点击的位置移动的游戏,那么问题来了,这个功能是怎么实现的呢?
其实这个功能实现的原理就是射线检测
1.首先我们点击的是游戏画面,而我们看到的游戏画面都是从摄像机那获取的
在大平面 和小平面之间的所有游戏物体和我们准许拍摄的天空盒等等都会以投影的方式投到小平面上,此时在小平面上通过投影形成的画面就是我们看到的游戏画面
现在我们想要实现一个功能:就是当我们点击游戏画面中的某处的时候会向着我们点击的位置移动
翻译过来就是:当我们在游戏画面中点击某个位置的时候,我们要找到游戏场景中的对应点,并让我们的游戏角色在游戏场景中移动到这个点
那么最关键的技术问题就是:当我们在游戏画面中点击某个位置的时候,我们如何找到游戏场景中的对应点呢?
解决这个技术问题的技术就是:射线检测
这个射线检测中的射线是从摄像机中的小平面发出的(前面有说我们看到的游戏画面就是这个小平面上的画面,当我们在游戏画面上点击的时候,其实就相当于在小平面上点击)
要知道所有的游戏画面都是通过投影的方式投到小平面上的,也就是说这些游戏游戏也可以沿着投影路径重新投影回去
那么我们点击画面上的某个位置的时候,在这个位置上发出一条射线,沿着投影路径射回游戏场景,然后通过这条射线我们可以检测它碰撞到的位置,碰撞到的物体
这样我们不仅可以获取游戏角色在场景中要移动的位置,还可以获取到要移动的位置的信息