所以我一直在谷歌搜索了一段時間,但我真的不知道要尋找什麼,所以我會問問你們所有的好人尋求幫助。團結:在程序生成的地圖上產生敵人
我正在爲我的第一場比賽是程序級別的創造者。代碼的一部分受到了這裏的教程的啓發,但我盡我所能去做我自己的事情。不管怎麼說,這是我需要,這可能是因爲所有的地獄醜陋幫助的代碼,我會解釋什麼,我需要後幫:
Vector3 RandomPosition()
{
int randomIndex = Random.Range (0, gridPositions.Count);
Vector3 randomPosition = gridPositions [randomIndex];
gridPositions.RemoveAt (randomIndex);
return randomPosition;
}
void LayoutObjectAtRandom (GameObject[] tileArray, int minimum, int maximum)
{
int objectCount = Random.Range (minimum, maximum);
for (int i = 0; i < objectCount; i++)
{
Vector3 randomPosition = RandomPosition();
GameObject tileChoice = tileArray [Random.Range (0, tileArray.Length)];
Instantiate (tileChoice, randomPosition, Quaternion.identity);
}
}
void spawnTomcats() // Figure out a way to use the RandomPosition to exclude used tiles in enemySpawn
{
int enemyCount = (int)Mathf.Log (level, 2f);
for (int i = 0; i < enemyCount; i++)
{
Vector3 enemySpawn = new Vector3 (columns + (Random.Range (0, 5)), rows - (Random.Range (7, 14)), 0f);
GameObject tileChoice = enemyTiles [Random.Range (0, enemyTiles.Length)];
Instantiate (tileChoice, enemySpawn, Quaternion.identity);
}
public void SceneSetup (int level)
{
BoardSetup();
InitialiseList();
spawnTomcats();
LayoutObjectAtRandom (impassableObjects, impassableCount.minimum, impassableCount.maximum);
Instantiate (heatCat, new Vector3 (columns - 8, rows - (Random.Range(7, 14)), 0f), Quaternion.identity);
}
}
所以,我需要的是一個「的Vector3 enemySpawn」選擇指定參數中的一個圖塊,但尚未在SceneSetup函數中通過實例化impassableObjects使用。一切都可以在產卵部分工作,但是我的「雄貓」有時會在不可見物體上產卵。我試過幾種方法來整合RandomPosition()方法,但還沒有真正成功。
如果您需要了解更多信息,像我的變量,讓我知道!我還不確定需要多少錢,因爲我還是個初學者。
每一條建議將不勝感激。
喬爾·克羅斯比。
如果我的答案有幫助,請不要忘記標記爲已接受,如果沒有,請告訴我,我會詳述 –
我沒有也不會忘記。只是想讓它正常工作,以便我可以同時發佈我的解決方案。你的文章給了我足夠的觀點,可以自己解決,所以我非常感謝你。 –