Exemplo n.º 1
0
 IEnumerator spawnEnemies()
 {
     while (true)
     {
         GameObject currentEnemie = enemies[Random.Range(0, enemies.Length)];
         setPath      = currentEnemie.GetComponent <AiUnitScript>();
         setPath.path = spawnPath;
         GameObject enenmieClone = Instantiate(currentEnemie, transform.position, Quaternion.identity);
         enenmieClone.transform.SetParent(parentEnemies.transform);
         yield return(new WaitForSeconds(respawnTime));
     }
 }
Exemplo n.º 2
0
    //this wil shoot projectile towards an enemy
    private IEnumerator ProjectileLerp(Transform projectile, Transform enemy, AiUnitScript enemyStat)
    {
        float speed = 0;

        while (speed < 1)
        {
            projectile.position = Vector2.Lerp(projectile.position, enemy.position, 0 + speed);
            speed += 0.01f;
            yield return(new WaitForSeconds(projectileSpeed / 10));
        }
        if (true)
        {
            Destroy(projectile.transform.gameObject);
        }
        Debug.Log(enemyStat.getHealth);
        enemyStat.getHealth = -towerDamage;
        if (enemyStat.getHealth < 0 || enemyStat.getHealth == 0)
        {
            Destroy(enemy.transform.gameObject);
        }
        doIt = true;
    }
Exemplo n.º 3
0
    //this wil shoot at the closest target given with use of the checkforenemys function
    private IEnumerator ShootAtTarget()
    {
        GameObject        currentTarget   = CheckForEnemys()[0];
        List <GameObject> allBullets      = new List <GameObject>();
        float             distanceToEnemy = Vector2.Distance(transform.position, currentTarget.transform.position);
        AiUnitScript      enemyStat       = currentTarget.GetComponent <AiUnitScript>();

        while (distanceToEnemy < detectRange)
        {
            currentTarget = CheckForEnemys()[0];
            allBullets.Add(Instantiate(bulletType, transform.position, Quaternion.identity));
            doIt = false;
            for (int i = 0; i < allBullets.Count; i++)
            {
                if (allBullets[i].transform.position != currentTarget.transform.position)
                {
                    StartCoroutine(ProjectileLerp(allBullets[i].transform, currentTarget.transform, enemyStat));
                }
                allBullets.RemoveAt(i);
            }
            yield return(new WaitForSeconds(attackSpeed));
        }
    }