zoukankan      html  css  js  c++  java
  • Physics.Raycast参数说明

    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

    当怀疑函数有问题时,请打印自己的射线,用函数 Debug.DrawRay,参数与 RayCast类似

    下面是例子:

    Vector3 RayDir = m_OwnerPlayer.transform.forward;
    //打印射线
    Debug.DrawRay(m_OwnerPlayer.transform.localPosition, RayDir, Color.red);
    Ray SceneRay = new Ray(m_OwnerPlayer.transform.localPosition, RayDir);
    //加射线
    RaycastHit SceneHit;
    if (Physics.Raycast(SceneRay, out SceneHit, 5000, 1))
    {
        if (null == SceneHit.collider ||
            null == SceneHit.collider.gameObject)
        {
            return;
        }
        if (SceneHit.collider.gameObject.name == "wushi_3_SnakeBody")
        {
        }
    }

    参考帖子:

    Transform.Forward和Vector3.Forward的正确使用方法_linuxheik的专栏-CSDN博客_transform.forward

    Unity Physics.Raycast 深入理解_pdw_jsp的专栏-CSDN博客

  • 相关阅读:
    [SDOI2016]排列计数
    Broken robot
    环路运输
    naptime
    Accumulation Degree
    选课
    没有上司的舞会
    金字塔
    Polygon
    石子合并
  • 原文地址:https://www.cnblogs.com/workharder/p/15139049.html
Copyright © 2011-2022 走看看