Esempio n. 1
0
    /// <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;
    }