我想從 50 多個不同的位置生成敵人。
我嘗試使用此代碼生成 15 個位置,但我可以為 100 個位置做什么?有什么捷徑嗎?我嘗試使用 s[randomIndex] 但它沒有定義所以我得到了一個錯誤。
`
switch (randomIndex)
{
case 0:
spawnedEnemy.transform.position = s0.position;
break;
case 1: spawnedEnemy.transform.position = s1.position;
break;
case 2: spawnedEnemy.transform.position = s2.position;
break;
case 3: spawnedEnemy.transform.position = s3.position;
break;
case 4: spawnedEnemy.transform.position = s4.position;
break;
case 5:
spawnedEnemy.transform.position = s5.position;
break;
case 6:
spawnedEnemy.transform.position = s6.position;
break;
case 7:
spawnedEnemy.transform.position = s7.position;
break;
case 8:
spawnedEnemy.transform.position = s8.position;
break;
case 9:
spawnedEnemy.transform.position = s9.position;
break;
case 10:
spawnedEnemy.transform.position = s10.position;
break;
case 11:
spawnedEnemy.transform.position = s11.position;
break;
case 12:
spawnedEnemy.transform.position = s12.position;
break;
case 13:
spawnedEnemy.transform.position = s13.position;
break;
case 14:
spawnedEnemy.transform.position = s14.position;
break;
`
uj5u.com熱心網友回復:
我認為您可能正在以非以 Unity 為中心的方式處理此問題。
讓我們想想你想要做什么。似乎您需要一堆生成點,然后隨機選擇其中一個。然后在該位置生成一個敵人。
我將創建一個非常簡單的 MonoBehaviour,我們將其用作基本上只是一個標簽。這是一個名為 SpawnPoint 的空 Monobehaviour 腳本。
現在,讓我們通過在場景中創建一個空的游戲物件并將我們的新腳本添加到其中來創建一個生成點。把它做成一個預制件,這樣你就可以重復使用它。
復制它 100 次,然后在場景中將它們移動到正確的位置。
現在您有了生成點,我們需要將它們收集到一個串列中,然后隨機選擇一個。以下是偽代碼,但應該足以讓您入門:
public class RandomSpawner() : Monobehaviour {
List<SpawnPoint> _spawnPoints;
void Awake() {
// Gathers all spawn points in your scene. There are more optimized ways to do this. but this is a good start.
_spawnPoints = FindObjectsOfType<SpawnPoint>();
}
public void Spawn() {
// generate some random index from your list
SpawnPoint randomSpawnPoint = _spawnPoints[index];
GameObject enemy = Instantiate(enemyPrefab);
enemy.transform.position = randomSpawnPoint.transform.position;
}
}
希望能幫助您入門。
根據我的經驗,如果你使用 switch 陳述句并且有超過 4 個選項,這通常意味著你需要以不同的方式考慮問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/525152.html
上一篇:Z軸上的Unity2d旋轉
