Menu
CoddyTech

Cibo

Lezione 5 di 14 del corso Gioco 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 per interi di Random.Range. Con gli interi il valore massimo è escluso: Random.Range(1, 7) simula il lancio di un dado, da 1 a 6. Per includere un numero, chiedine uno più grande. Con i numeri in virgola mobile restituisce valori come 3.62, non il centro di una cella.

Su una tavola con lato 4, le colonne vanno da -4 a 4:

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

La tavola contiene un solo cibo alla volta, quindi il gioco lo crea una volta in Start() e lo sposta ogni volta che serve un nuovo posto. GameManager legge le dimensioni della tavola da edge del serpente tramite il suo campo snake.

challenge icon

Sfida

Medio

Posiziona il cibo su una cella casuale della scacchiera.

  1. In GameManager, aggiungi public Snake snake;, public GameObject foodPrefab; e private Transform food; (la scena collega i primi due).
  2. In Start(), scrivi food = Instantiate(foodPrefab).transform;, poi chiama MoveFood().
  3. void MoveFood(): posiziona il cibo su coordinate x e z casuali, ciascuna da -snake.edge a snake.edge, con y pari a 0.

Premi «Gioca»: una sfera rossa si trova su una cella, in una posizione diversa ogni volta. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Gestisce il gioco: il cibo, il punteggio e la fine della partita. Il capitolo 2 ne completa l'implementazione.
}

Tutte le lezioni di Gioco Unity: Snake 3D

Esercitati da solo: Playground Unity