unity3d 利用光线投射检测播放器

lvjbypge  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(117)

我有一个问题,在光线投射,我的光线不能检测到球员,即使我做了layermask,去绘制光线和所有其他的东西。但它仍然不工作。

下面是我的代码:

RaycastHit2D raycastHit2D = Physics2D.Raycast(enemyEyes.transform.position, new Vector2(directionOfRay, 0), LayerMask.GetMask("Player"));

    if(raycastHit2D.collider != null )
    {
        if (raycastHit2D.collider.gameObject.tag=="Player")
        {
            Debug.Log("Hit Hit");
        }
    }
  
    Debug.DrawRay(enemyEyes.transform.position,new Vector3(directionOfRay , 0,0)  , Color.red);

问题是控制台中未显示HIT HIT。
光线投射问题,我的光线无法检测到我的球员。

5vf7fwbs

5vf7fwbs1#

玩家必须有指定的对撞机。试试这个:

RaycastHit2D hitObstacle = Physics2D.Raycast (obstacleRayObject.transform.position, Vector2.right, obstacleRayDistance, layerMask);

    if (hitObstacle.collider != null) {

        Debug.DrawRay (obstacleRayObject.transform.position, Vector2.right * hitObstacle.distance * new Vector2 (characterDirection, 0f), Color.red);
        Debug.Log ("Object Detected");
    } else {
        Debug.DrawRay (obstacleRayObject.transform.position, Vector2.right * obstacleRayDistance * new Vector2 (characterDirection, 0f), Color.green);

    }

相关问题