Cibo
Lezione 5 di 14 del corso Gioco in Unity: Snake 3D di Coddy.
Il cibo si trova su una cella casuale. Le celle sono numeri interi, quindi scegli x e z con la versione int di Random.Range. Con gli int, il massimo è escluso: Random.Range(1, 7) lancia un dado, da 1 a 6, mai 7. Per includere un numero, chiedi il numero successivo.
Con argomenti float, Random.Range restituisce un numero qualsiasi compreso nell'intervallo, come 3.62, che non è il centro di una cella, quindi il serpente non incontrerebbe mai il cibo. Un forziere su una griglia 10 per 10 con celle da 0 a 9:
int row = Random.Range(0, 10); // da 0 a 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);La griglia contiene un solo cibo alla volta, quindi il gioco lo crea una volta, in Start(), e lo sposta ogni volta che gli serve una nuova posizione. GameManager gestisce il cibo e legge le dimensioni della griglia dal campo edge del serpente tramite un campo snake.
Sfida
MedioCompleta GameManager. La scena imposta il suo snake sullo Snake della testa e il suo foodPrefab su una sfera rossa.
- Aggiungi
public Snake snake;,public GameObject foodPrefab;eprivate Transform food;. - In
Start(), istanziafoodPrefab, conserva il suo Transform infoode chiamaMoveFood(). - Scrivi
void MoveFood(): posizionafoodsu una cella casuale, con x e z ciascuno compreso tra-snake.edgeesnake.edge, e y uguale a 0.
Premi Play e trova il cibo sulla scacchiera, poi premi Check.
Provalo tu
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Gestisce il gioco: il cibo, il punteggio e la fine della partita. Il capitolo 2 lo completa.
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.