Unity --- 射线检测

从一个问题开始:我们遇到过点击游戏屏幕然后角色让我们点击的位置移动的游戏,那么问题来了,这个功能是怎么实现的呢?

其实这个功能实现的原理就是射线检测

1.首先我们点击的是游戏画面,而我们看到的游戏画面都是从摄像机那获取的

在大平面 和小平面之间的所有游戏物体和我们准许拍摄的天空盒等等都会以投影的方式投到小平面上,此时在小平面上通过投影形成的画面就是我们看到的游戏画面

现在我们想要实现一个功能:就是当我们点击游戏画面中的某处的时候会向着我们点击的位置移动

翻译过来就是:当我们在游戏画面中点击某个位置的时候,我们要找到游戏场景中的对应点,并让我们的游戏角色在游戏场景中移动到这个点

那么最关键的技术问题就是:当我们在游戏画面中点击某个位置的时候,我们如何找到游戏场景中的对应点呢?

解决这个技术问题的技术就是:射线检测

这个射线检测中的射线是从摄像机中的小平面发出的(前面有说我们看到的游戏画面就是这个小平面上的画面,当我们在游戏画面上点击的时候,其实就相当于在小平面上点击)

要知道所有的游戏画面都是通过投影的方式投到小平面上的,也就是说这些游戏游戏也可以沿着投影路径重新投影回去

那么我们点击画面上的某个位置的时候,在这个位置上发出一条射线,沿着投影路径射回游戏场景,然后通过这条射线我们可以检测它碰撞到的位置,碰撞到的物体

这样我们不仅可以获取游戏角色在场景中要移动的位置,还可以获取到要移动的位置的信息

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值