Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Completa GameManager. La scena imposta il suo snake sullo Snake della testa e il suo foodPrefab su una sfera rossa.

  1. Aggiungi public Snake snake;, public GameObject foodPrefab; e private Transform food;.
  2. In Start(), istanzia foodPrefab, conserva il suo Transform in food e chiama MoveFood().
  3. Scrivi void MoveFood(): posiziona food su una cella casuale, con x e z ciascuno compreso tra -snake.edge e snake.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.
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Gioco in Unity: Snake 3D