Menu
CoddyTech

Essen

Lektion 5 von 14 im Kurs Unity-Spiel: 3D-Snake von Coddy.

Das Futter liegt auf einer zufälligen Zelle. Zellen haben ganzzahlige Koordinaten, also wähle x und z mit der int-Version von Random.Range. Bei ints ist der Höchstwert ausgeschlossen: Random.Range(1, 7) würfelt eine Zahl von 1 bis 6, niemals 7. Um eine Zahl einzuschließen, gib eine um eins höhere Zahl an.

Bei float-Argumenten gibt Random.Range eine beliebige Zahl dazwischen zurück, zum Beispiel 3.62. Diese liegt nicht in der Mitte einer Zelle, daher würde die Schlange das Futter niemals erreichen. Eine Truhe auf einem 10-mal-10-Raster mit Zellen von 0 bis 9:

int row = Random.Range(0, 10);      // 0 bis 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);

Auf dem Spielfeld gibt es jeweils nur ein Futterstück, daher erzeugt das Spiel es einmal in Start() und bewegt es, wenn es einen neuen Platz benötigt. GameManager verwaltet das Futter und liest die Größe des Spielfelds über ein snake-Feld aus dem edge der Schlange aus.

challenge icon

Aufgabe

Mittel

Vervollständige GameManager. Die Szene weist snake die Snake des Kopfes und foodPrefab eine rote Kugel zu.

  1. Füge public Snake snake;, public GameObject foodPrefab; und private Transform food; hinzu.
  2. Erzeuge in Start() eine Instanz von foodPrefab, speichere dessen Transform in food und rufe MoveFood() auf.
  3. Schreibe void MoveFood(): Die Methode platziert food auf einer zufälligen Zelle, wobei x und z jeweils von -snake.edge bis snake.edge reichen und y 0 ist.

Drücke Play und suche das Essen auf dem Spielfeld. Drücke dann Check.

Probier es selbst

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Steuert das Spiel: das Futter, den Punktestand und das Spielende. In Kapitel 2 wird das ergänzt.
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unity-Spiel: 3D-Snake