射线检测

指定点发射一条射线,判断射线与哪些碰撞器相交,得到相交的对象
注意:检测对象需要有碰撞器

  1. Ray 射线
    参数一:射线的起点
    参数二:射线的方向
    Ray ray=new Ray(起点,方向);
  2. 摄像机发射射线
    屏幕位置为起点,摄像机视口方向作为射线方向
    Ray r=Camera.main.ScreenPointToRay(屏幕上的点);
    例如:
    Ray r2=Camera.main.ScreenPointToRay(Input.mousePosition);
  3. 射线检测函数
    射线检测是瞬时的,执行代码进行一次射线检测
  4. Physics.Raycase(射线,检测距离,检测层级,全局设置/使用触发器/忽略触发器)
    返回bool 真:检测到 假:没有检测到
  5. 获取一个检测对象信息
    RaycastHit :检测对象的信息
    RaycastHit hit;
    Physics.Raycast(射线,out hit,检测距离,层级,全局设置/使用触发器/忽略触发器);
  6. 获取多个检测对象信息
    RaycastHit[] hits=Physics.RaycastAll(射线,检测距离,检测层级,全局设置/使用触发器/忽略触发器);
  7. 获取检测对象的数量
    Physics.RaycastNonAlloc(射线,RaycastHit数组,检测距离,层级,全局设置/使用触发器/忽略触发器);
    返回int 检测到的对象数量
  8. RaycastHit
    hit.collider 获取检测对象的碰撞器
    hit.point 射线与碰撞器相交的点
    hit.normal 相交点在碰撞器上的法线
    hit.transform 检测对象的位置信息
    hit.distance 检测到的对象与自己的距离
  9. 注意:距离参数后面是层级参数,两者都是int类型的参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值