Esempio n. 1
0
    IEnumerator IE_LinkSpawn()
    {
        while (_baseEnemy.gameObject.activeInHierarchy == false)
        {
            yield return(new WaitForSeconds(_spawnDelay));
        }

        for (int i = 0; i < _spawnCount; i++)
        {
            // Instantiate
            GameObject obj = (GameObject)Instantiate(_baseEnemy.gameObject, transform.position, Quaternion.identity);
//            Debug.Log("~~~~~~ _baseEnemy " + i);
            wt_PathMover mov = obj.GetComponent <wt_PathMover>();
            mov.enabled = true;
            yield return(new WaitForSeconds(_spawnDelay));

            mov.PlayPath();

            Enemy en = obj.GetComponent <Enemy>();
            if (en)
            {
                _WaveNode._lstChildEnemy.Add(en);
            }
        }

        _baseEnemy.enabled = true;
        yield return(new WaitForSeconds(_spawnDelay));

        _baseEnemy.PlayPath();
    }
Esempio n. 2
0
    public void PlayNode()
    {
        _isPlay = true;
        foreach (Enemy en in _lstChildEnemy)
        {
            if (en)
            {
                en.transform.parent = null;
                GameWorld.SetActiveRecursively(en.gameObject, true);

                wt_PathMover path = en.GetComponent <wt_PathMover>();
                if (path)
                {
                    if (path.enabled == true)
                    {
                        StartCoroutine(DelayAction(0.1f, () =>
                        {
                            path.PlayPath();
                        }));
                    }
                }
            }
        }

        if (_SpawnerLink)
        {
            _SpawnerLink.StartSpawn();
        }
    }
Esempio n. 3
0
    void Spawn()
    {
        if (GamePlayManager.Instance._State == E_PlayState.GamePlaying &&
            _isStop == false
            )
        {
            // Instantiate a random enemy.
            int        enemyIndex = Random.Range(0, enemies.Length);
            GameObject obj        = (GameObject)Instantiate(enemies[enemyIndex], transform.position, transform.rotation);

            _enBoss = obj.GetComponent <Enemy>();
            if (_enBoss._EnemyType == E_EnemyType.champ)
            {
                ChildNoSpawn_Random();
            }
            _IsBossSpawn = true;

            wt_PathMover mover = obj.GetComponent <wt_PathMover>();
            mover._arrPath = _arrPath;
            float r = Random.Range(0f, 1f);
            if (r < 0.5f)
            {
                mover._RandomType = E_PathRandomType.List;
            }
            else
            {
                mover._RandomType = E_PathRandomType.RandomList;
            }
            mover.PlayPath();
        }
    }