<!-- css 字體設定 --> <style> .reveal { font-size: 24px; } </style> # 虛擬實境4-4 <!--放入主題照片 統一 =480x320 --> ![](https://i.imgur.com/Lftrjde.png =480x320) [原始課程 link](https://learn.unity.com/tutorial/lesson-4-4-for-loops-for-waves?uv=2019.3&projectId=5cf96846edbc2a2bcde6d0fc#5d1a6a2eedbc2a00247828ea) ###### tags: `虛擬實境AA` ---- ## 課程目標 - 學習利用其他常見的函式 - 學習使用多樣的Unity腳本 ---- ## 學習使用`for-loop`函式 製作多個回合 ---- ![](https://i.imgur.com/CkNgaSl.png =640x) 在`SpawnManager.cs`中修改製作多個敵人 ```csharp //void Start()中加上一個函式名稱 SpawnEnemyWave(); //在外面建立一個該名稱的函式 void SpawnEnemyWave(){ for (int i = 0; i < 3; i++){ Instantiate(enemyPrefab, GenerateSpawnPosition(), enemyPrefab.transform.rotation); } } ``` ---- ## 在函式中修改能增加的敵人數 ---- ![](https://i.imgur.com/DJkIjKq.png =640x) 打開`SpawnManager.cs` ```csharp //void Start()中的SpwanEnemyWave()修改為 SpawnEnemyWave(3); //void SpawnEnemyWave()修改為 void SpawnEnemyWave(int enemiesToSpawn){ for (int i = 0; i < enemiesToSpawn; i++){ Instantiate(enemyPrefab, GenerateSpawnPosition(), enemyPrefab.transform.rotation); } } ``` ---- ## 消滅敵人如果敵人掉下場景 ---- ![](https://i.imgur.com/uEdw1Mg.png =640x) 打開`Enemy.cs` ```csharp //void Update中加上if-state if(transform.position.y < -10) { Destroy(gameObject); } ``` ---- ## 在最後一個敵人被消滅後 生成一個新的回合 ---- ![](https://i.imgur.com/8Dxe4no.png =640x) 打開`SpawnManager.cs` ```csharp //命名一個變數 "敵人數量" public int enemyCount; //void Update()中加上 enemyCount = FindObjectsOfType<Enemy>().Length; if (enemyCount == 0){ SpawnEnemyWave(1); } ``` ---- ## 控制每個新的回合增加一個敵人 ---- ![](https://i.imgur.com/X8qKoPS.png =640x) 打開`SpawnManager.cs` ```csharp //命名一個變數 "回合數" public int waveNumber = 1; //在void Start()修改為 SpawnEnemyWave(waveNumber); //在void Update()修改為 enemyCount = FindObjectsOfType<Enemy>().Length; if (enemyCount == 0){ waveNumber++; SpawnEnemyWave(waveNumber); } ``` ---- ## 在新的回合開始時在場景生成一個效果 ---- ![](https://i.imgur.com/OEvdNyl.png =640x) 打開`SpawnManager.cs` ```csharp //命名一個新的變數 public GameObject powerupPrefab; ``` ---- ![](https://i.imgur.com/JvLKy2r.png =640x) 之後將之前存在`prefab`裡的效果移動入`Inspector`中的`powerup Prefab` ---- ![](https://i.imgur.com/SNB8Cac.png =640x) 將場景中的`Powerup`刪除 ---- ![](https://i.imgur.com/HgXuYXR.png =640x) 打開`SpawnManager.cs` ```csharp //在void Start()加上 Instantiate(powerupPrefab, GenerateSpawnPosition(), powerupPrefab.transform.rotation); //在void Update()的if(enemyCount == 0)裡加上 Instantiate(powerupPrefab, GenerateSpawnPosition(), powerupPrefab.transform.rotation); ``` ----
{"metaMigratedAt":"2023-06-15T17:33:02.481Z","metaMigratedFrom":"YAML","title":"虛擬實境4-4","breaks":true,"contributors":"[{\"id\":\"06326c0f-824e-4964-b604-fd9b52334bb2\",\"add\":2709,\"del\":133}]"}
    322 views