Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance, int layerMask);
参数1:Ray,射线的起点坐标和方向向量
Vector3 RayDir = m_OwnerPlayer.transform.forward;
Ray ray = new Ray(m_OwnerPlayer.transform.localPosition, RayDir);
主要说说Ray构造函数的参数2,是单位向量,切记,单位向量。可以用transform.forward,也可以用 (m_OwnerPlayer.transform.localPosition - LastPosition).normalized 。
参数2:碰撞物体的返回信息
参数3:射线的距离
参数4:过滤层,如果层是Default,那么写法是 1<<0
下面是例子:
1 Vector3 RayDir = m_OwnerPlayer.transform.forward; 2 Ray SceneRay = new Ray(m_OwnerPlayer.transform.localPosition, RayDir); 3 //加射线 4 RaycastHit SceneHit; 5 if (Physics.Raycast(SceneRay, out SceneHit, 5000, 1)) 6 { 7 if (null == SceneHit.collider || 8 null == SceneHit.collider.gameObject) 9 { 10 return; 11 } 12 if (SceneHit.collider.gameObject.name == "wushi_3_SnakeBody") 13 { 14 } 15 }
参考帖子:
Transform.Forward和Vector3.Forward的正确使用方法_linuxheik的专栏-CSDN博客_transform.forward