Physics.Raycast方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Physics.Raycast方法相关的知识,希望对你有一定的参考价值。

参考技术A 为实现鼠标控制人物转向,必须用到Ray相关函数,其中Physics.Raycast方法用途如下:

Physics.Raycast(ray , out rayHit , 100 , LayerMaskFloor);

//该方法return一个bool值。ray代表射线,out rayHit为射线碰撞点,100为射线长度,LayerMaskFloor为检测碰撞层(int 值),下面就开始创造这些参数

private int LayerMaskFloor;//定义一个int变量

LayerMaskFloor = LayerMask.GetLayer("Floor");//LayerMask.GetLayer返回一个int值,即为Floor层所在的数字,至此LayerMaskFloor创建完毕

Ray ray = Camera.Main.ScreenPointToRay(Input.mouseposition);//用于获取鼠标在世界坐标中的位置(屏幕坐标),ray获取完毕

RaycastHit rayHit;//用于获取射线的点的信息,rayHit获取完毕

下面可以对碰撞进行判断

if (Physics.Raycast(ray , out rayHit , 100 , LayerMaskFloor))



Vector3 lookAtPoint  = rayHit.point;

transform.LookAt = lookAtPoint;

以上是关于Physics.Raycast方法的主要内容,如果未能解决你的问题,请参考以下文章

Unity Physics.Raycast 射线投射

Unity Physics.Raycast 似乎无法正确检测到它击中的对象

带有 LayerMask 的 Unity Physics.Raycast 不会检测图层上的对象。使用了位移,尝试了反相层,仍然没有任何效果

[小巩u3d] 关于Raycast对BoxCollider和BoxCollider2d的碰撞监测规则

Unity3D_(API)射线检测

unity区分点击在3D物体还是2D UI上