示例#1
0
	void SpawnEnemy()
	{
		if (currentEnemy != null)
		{
			Debug.LogWarning("Trying to spawn a second enemy to scene!");
		}

		EnemyConfig enemyToSpawn = currentState.Enemy;


		switch (enemyToSpawn.Type)
		{
			case EnemyType.DRAGON:
				Debug.Log("Spawning Dragon");
				currentEnemy = GameObject.Instantiate(dragonPrefab1).GetComponent<EnemyController>();
				break;
            case EnemyType.DRAGON2:
                Debug.Log("Spawning Dragon");
                currentEnemy = GameObject.Instantiate(dragonPrefab1).GetComponent<EnemyController>();
                break;
            case EnemyType.LIZARD:
				Debug.Log("Spawning Lizard");
				currentEnemy = GameObject.Instantiate(lizardPrefab1).GetComponent<EnemyController>();
				break;
            case EnemyType.LIZARD2:
                Debug.Log("Spawning Lizard");
                currentEnemy = GameObject.Instantiate(lizardPrefab1).GetComponent<EnemyController>();
                 break;
            case EnemyType.BOSS:
                Debug.Log("Spawning Boss");
                currentEnemy = GameObject.Instantiate(bossPrefab1).GetComponent<EnemyController>();
                break;
            case EnemyType.BOSS2:
                Debug.Log("Spawning Boss");
                currentEnemy = GameObject.Instantiate(bossPrefab1).GetComponent<EnemyController>();
                break;
            case EnemyType.IMP:
				Debug.Log("Spawning Imp Boss");
				currentEnemy = GameObject.Instantiate(defaultEnemyPrefab).GetComponent<EnemyController>();
				break;
			default:
				Debug.LogWarning(string.Format("Couldn't find enemy type {0}", enemyToSpawn.Type));
				break;
		}

		currentEnemy.Config = enemyToSpawn;
		currentEnemy.OnSequenceChanged += EnemyController_OnSequenceChanged;
		currentEnemy.OnEnemyDefeated += CurrentEnemy_OnEnemyDefeated;
		currentEnemy.EnterGameArea();
	}