Unity3D的射线检测Physics.Raycast

本文介绍了Unity3D中Physics.Raycast的使用,包括检测摄像机是否能直达Player且不受墙壁阻挡,以及RaycastAll方法用于获取所有碰撞物体。此外,还提到了Camera.ScreenPointToRay方法,用于将屏幕点击位置转换为射线,结合Physics.Raycast实现屏幕点击交互,例如控制角色行走。
摘要由CSDN通过智能技术生成

官方示例中使用Physics.Raycast检测摄像机有没有找到Palyer,并且中间没有被墙挡住的方法:
使用:public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo);
这里写图片描述
上面使用的Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo);会将第一个碰撞到的物体通过out参数hitInfo传送出来。
如果需要检测所有碰撞到的物体,可以使用public static RaycastHit[] RaycastAll(Ray ray);
还有各种重写方法可以设定距离,方向,layermask。
关于类Ray,它的构造函数Ray(Vector3 origin, Vector3 direction);表明其他它就代表一个射线源的坐标和一个方向向量。

除了名称空间UnityEngine中含有的物理类的方法可以如上使用外,摄像机也有类似的方法,主要用来处理触屏的点击事件。
Camera.ScreenPointToRay 屏幕位置转射线
返回一条射线从摄像机通过一个屏幕点。产生的射线是在世界空间中,从相机的近裁剪面开始并穿过屏幕position(x,y)像素坐标(position.z被忽略)。屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight)。

if(Input.tou
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值