Having trouble with my Raycast. How do I fix it?

45 Views Asked by At

Can anyone show me what I need to do to fix the Raycast? I'm trying to get the enemy to shoot when they are behind the player. I wrote this but it's not working.

private void BackFlash()
{
    RaycastHit2D hit = Physics2D.CircleCast(transform.position, _rayCastRad, Vector2.up, _rayDistance, LayerMask.GetMask("Player"));

    if(hit.collider != null)
    {
        if(hit.collider.CompareTag("Player") && Time.time > _canFire)
        {
            Debug.DrawRay(transform.position, hit.point, Color.white);
            Debug.Log("Player Detected");
            FireFlashbagBackward();
        }
    }
    else
    {
        Debug.DrawRay(transform.position, transform.position + transform.right,              Color.red);
        Debug.Log("Player Not Detected");
    }
}

private void FireFlashbagBackward()
{
    _fireRate = Random.Range(3f, 7f);
    _canFire = Time.time + _fireRate;
    GameObject enemyFire = Instantiate(_enemyLaser, transform.position, Quaternion.Euler(transform.rotation.x, transform.rotation.y, 108.0f));
    Laser[] lasers = enemyFire.GetComponentsInChildren<Laser>();


    for (int i = 0; i < lasers.Length; i++)
    {
        lasers[i].AssignEnemyLaser();
    }
}
0

There are 0 best solutions below