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();
}
}