Unity实用功能之射线检测详解 |
您所在的位置:网站首页 › unity判断碰撞体接触点 › Unity实用功能之射线检测详解 |
这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战 概述射线检测在Unity中属于最常见的功能之一,其作用也是非常大的。在unity中射线检测的应用范围非常的广泛, 多用于碰撞检测比如:在游戏中,开枪射击时,需要判断击中的物体,子弹击中的位置,还有的时候要用到鼠标来控制物体的移动或是鼠标拾取某个物体等等,这些都需要Physics.Raycast和ray。可见他们的重要性。接下来就一起来看一下在Unity中射线检测是如何使用的。 射线射线,顾名思义,在数学中射线是指由线段的一端无限延长所形成的直的线。射线仅有一个端点,无法测量长度(它无限长)。 在unity中,射线检测,就是从一个固定的点,沿着一个特定的方向,发射一条射线,当和物体发生碰撞后,返回碰撞信息。 详解及用法在官方API中,我们会发现Ray是一个结构体()
Camera.main.ScreenPointToRay和Camera.main.ViewportPointToRay 这两个射线检测跟好理解,直接就是以摄像机为起始,然后发射一条射线,其中的参数Vector3 pos就是射线要发射的方向。 一般常用的是向鼠标点击的位置发射一条射线,多用于射击等游戏 Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出一条射线,到点击的坐标 复制代码RaycastHit和bool Physics.Raycast 在项目中,只发射一条射线还不行,发射射线了,我们还要知道,射线碰撞到了什么物体,所以就用到了Physics.Raycast
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |