【Unity3D】射线碰撞检测

射线碰撞检测在游戏开发中至关重要,常用于UI交互和人物移动等场景。基本实现包括生成射线和进行碰撞检测两步骤,是多数鼠标点击功能的基础。
摘要由CSDN通过智能技术生成

射线碰撞检测是游戏中使用频率非常高的一种碰撞检测,常见应用场景有UI交互、人物移动等。

几乎可以说,所有通过鼠标点击实现的功能都依赖于射线碰撞检测。

//声明射线ray,ScreenPointToRay方法返回一条以主摄像机为起点,以方法参数为终点的射线
Ray ray  = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Input.GetMouseButtonDown(0))
{
    //ray射线检测到碰撞,则Raycast方法返回true,同时将与射线发生碰撞的物体的属性值赋值给变量hit
    if (Physics.Raycast(ray, out RaycastHit hit))
    {
        //打印碰撞物体的坐标
        print(hit.point);
    }
}

从上述代码可以看出,实现一个简单的射线碰撞检测,关键代码只有两行。

①生成一条射线

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

②检测碰撞,获取碰撞物体的信息

Physics.Raycast(ray, out RaycastHit hit)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cimoon_

一分也是爱,用钱砸我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值