物理系统——射线检测

这篇博客详细介绍了在Unity引擎中如何进行射线检测,包括从起点和方向创建射线、摄像机射线以及如何进行碰撞检测,强调了射线检测在物体相交判断中的作用,特别是在FPS游戏中的应用。同时,提到了RaycastHit类用于获取碰撞信息,并提醒在使用时要注意射线检测的参数设置,如距离和层级。
摘要由CSDN通过智能技术生成

1、射线检测

目前物体相交的判断:

  • 碰撞检测必备条件:刚体,碰撞器
  • 范围检测必备条件:碰撞器

如果想要鼠标选择场景上的一物体,或者FPS游戏中无弹道,不产生实际的子弹对象进行移动的情况下,需要判断一条线和物体的碰撞情况,即通过射线检测,可以在指定点发射一个指定方向的射线,判断该射线与哪些碰撞器相交,得到相应对象

2、射线对象

(1)3D世界中的射线

假设有一条起点为坐标(1,0,0),方向为世界坐标z轴正向的射线。

// 参数一:起点
// 参数二:方向向量
Ray r = new Ray(Vector3.right, Vector3.forward);

// Ray中的参数
print(r.origin);        // 起点
print(r.direction);     // 方向

 (2)摄像机发出的射线

得到一条从屏幕位置作为起点,摄像机视口方向的射线

Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);

注意:单独的射线没有实际的意义,需要结合物理系统进行射线碰撞判断 

3、碰撞射线检测

Physics类中提供了很多进行射线检测的静态函数,有很多重载类型,只需要掌握几个核心常用的函数即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值