Also habe ich das eine Weile gegoogelt, aber ich weiß nicht wirklich, wonach ich suchen soll, also werde ich euch alle nette Leute um Hilfe bitten.Einheit: Feinde auf einer prozedural generierten Karte erscheinen
Ich arbeite an einem prozeduralen Level Creator für mein erstes Spiel. Ein Teil des Codes ist durch das Tutorial hier inspiriert, aber ich versuche so viel wie möglich alleine zu machen. Wie auch immer, hier ist der Code, den ich mit Hilfe benötigen, die wahrscheinlich hässlich wie die Hölle ist, und ich werde erklären, was ich brauche Hilfe mit nach:
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);
}
}
Also, was ich brauche, ist für „Vector3 enemySpawn“ wählen eine Kachel innerhalb der angegebenen Parameter, die jedoch noch nicht von der Instanziierung von unpassierbaren Objekten in der SceneSetup-Funktion verwendet wird. Alles funktioniert auf dem Laichteil, aber meine "Tomcats" spawnen manchmal auf unpassierbaren Objekten. Ich habe versucht, die RandomPosition() -Methode auf verschiedene Arten zu integrieren, war aber nicht wirklich erfolgreich.
Wenn Sie weitere Informationen benötigen, wie meine Variablen, lassen Sie es mich wissen! Ich bin nicht wirklich sicher, wie viel benötigt wird, da ich noch ein Anfänger bin.
Jeder Ratschlag wird sehr geschätzt.
Joel Crosby.
Wenn meine Antwort hilft bitte vergessen Sie nicht, es als akzeptiert zu markieren, wenn nicht, lassen Sie mich wissen, und ich werde –
Ich habe nicht und werde es nicht vergessen. Ich will nur, dass es richtig funktioniert, damit ich meine Lösung zur gleichen Zeit posten kann. Dein Post hat mir gerade genug Perspektive gegeben, um es selbst auszuarbeiten, also danke ich dir dafür. –