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 4Auf 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.
Aufgabe
MittelPlatziere das Essen auf einer zufälligen Zelle des Spielfelds.
- Füge in
GameManagerpublic Snake snake;,public GameObject foodPrefab;undprivate Transform food;hinzu (die Szene verknüpft die ersten beiden). - Weise in
Start()food = Instantiate(foodPrefab).transform;zu und rufe anschließendMoveFood()auf. void MoveFood(): Platziere das Essen an zufälligen x- und z-Koordinaten, jeweils von-snake.edgebissnake.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