// Update is called once per frame void Update() { CheckVision(); SetAlertionIndicator(); if (targetInVision) // if enemy can see target { if (headScript.isRotated) { //check if target can be fired by bullet and only then here disallow moving Debug.DrawLine(transform.position + head.transform.right * widthOfFirePathChecker, (Vector2)transform.position + (Vector2)head.transform.right * widthOfFirePathChecker + directionToPlayer * distanceToPlayer, Color.blue); Debug.DrawLine(transform.position - head.transform.right * widthOfFirePathChecker, (Vector2)transform.position - (Vector2)head.transform.right * widthOfFirePathChecker + directionToPlayer * distanceToPlayer, Color.blue); if (!Physics2D.Raycast(transform.position + head.transform.right * widthOfFirePathChecker, directionToPlayer, distanceToPlayer, obstacleMask) && !Physics2D.Raycast(transform.position - head.transform.right * widthOfFirePathChecker, directionToPlayer, distanceToPlayer, obstacleMask)) { ai.canMove = false; firearm.Shoot(); } else { ai.canMove = true; } } } else { BechaviourIfCantSeePlayer(); } }