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. Um eine Zahl einzuschließen, gib eine Zahl an, die um eins größer ist. Bei floats gibt die Funktion Zahlen wie 3.62 zurück, nicht die Mitte einer Zelle.

Auf einem Brett mit einer Kantenlänge von 4 reichen die Spalten von -4 bis 4:

int x = Random.Range(-4, 5);   // -4 bis 4

Auf dem Brett befindet sich jeweils nur ein Futterstück. Daher erzeugt das Spiel es einmal in Start() und bewegt es, wenn es einen neuen Platz braucht. GameManager liest die Größe des Bretts über sein Feld snake aus dem Wert edge der Schlange aus.

challenge icon

Aufgabe

Mittel

Platziere das Essen auf einer zufälligen Zelle des Spielfelds.

  1. Füge in GameManager public Snake snake;, public GameObject foodPrefab; und private Transform food; hinzu (die Szene verknüpft die ersten beiden).
  2. Weise in Start() food = Instantiate(foodPrefab).transform; zu und rufe anschließend MoveFood() auf.
  3. void MoveFood(): Platziere das Essen an zufälligen x- und z-Koordinaten, jeweils von -snake.edge bis snake.edge, bei y 0.

Drücke auf „Spielen“: Auf einer Zelle liegt eine rote Kugel, und bei jedem Durchlauf an einer anderen Stelle. Drücke anschließend auf „Prüfen“.

Probier es selbst

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Steuert das Spiel: das Futter, den Punktestand und das Spielende. In Kapitel 2 wird die Klasse mit Inhalt gefüllt.
}

Alle Lektionen in Unity-Spiel: 3D-Snake

Übe selbstständig: Unity-Playground