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(); }
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(); } }
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(); } }