private IEnumerator InvokeEnemy(EnemyConfiguration enemyConfiguration) { var enemy = Instantiate(enemyConfiguration.Enemy, enemyConfiguration.Points()[0].transform.position, Quaternion.identity); enemy.GetComponent <Enemy>().EnemyConfiguration = enemyConfiguration; yield return(new WaitForSeconds(enemyConfiguration.TimeBreakBeetwenEnemies * Random.Range(0.5f, 1f))); }
void SpawnNextBiome() { terrainMap.DisplayNextBiome(); nextBiomeTimer = nextBiomeTimeDelay; EnemyConfiguration nextEnemyType = enemyTypes[UnityEngine.Random.Range(0, enemyTypes.Length)]; GameObject newEnemy = (GameObject)Instantiate(nextEnemyType.Prefab); newEnemy.GetComponent <NavMeshAgent>().speed = nextEnemyType.speed; newEnemy.transform.position = terrainMap.GetRandomTileOnCurrentBiome().transform.position; newEnemy.transform.parent = this.gameObject.transform; newEnemy.name = nextEnemyType.name; newEnemy.GetComponent <Enemy>().Health = 10; }
/// <summary> /// spawn the enemy /// </summary> /// <param name="enemyconfig">怪</param> /// <param name="node">出怪点</param> protected virtual void SpawnEnemy(EnemyConfiguration enemyconfig, Node node) { Vector3 spawnPosition = node.transform.position; var poolable = Poolable.TryGetPoolable <Poolable>(enemyconfig.EnemyPrefab.gameObject); if (poolable == null) { return; } var enemyInstance = poolable.GetComponent <Enemy>(); enemyInstance.transform.position = spawnPosition; enemyInstance.Initialize(); enemyInstance.SetNode(node); enemyInstance.transform.rotation = node.transform.rotation; }