/// <summary> /// Shoot a projectilePrefab from firePoint to target in order to do damage onHit /// </summary> /// <param name="projectilePrefab"></param> /// <param name="firePoint"></param> /// <param name="target"></param> /// <param name="damage"></param> IEnumerator Shoot(GameObject projectilePrefab, Transform firePoint, Transform target, int damage) { GetComponent <EnemyMovement>().agent.isStopped = true; GetComponent <Enemy>().isAttacking = true; transform.LookAt(target.position); yield return(new WaitForSeconds(GetComponent <Animator>().GetCurrentAnimatorStateInfo(0).length / 4)); GameObject projectile = (GameObject)Instantiate(projectilePrefab, firePoint.position, firePoint.rotation); EnemyShot enemyShot = projectile.GetComponent <EnemyShot>(); if (enemyShot != null) { enemyShot.Initialise(target.position, damage, bulletSpeed); } yield return(new WaitForSeconds((GetComponent <Animator>().GetCurrentAnimatorStateInfo(0).length * 3) / 4)); GetComponent <EnemyMovement>().agent.isStopped = false; GetComponent <Enemy>().isAttacking = false; }