Menu
CoddyTech

Comida

Lección 5 de 14 del curso Juego de Unity: Serpiente 3D de Coddy.

La comida aparece en una celda aleatoria. Las celdas son números enteros, así que elige x y z con la versión int de Random.Range. Con valores int, el máximo queda excluido: Random.Range(1, 7) simula un dado, del 1 al 6. Para incluir un número, pide uno más. Con valores float devuelve números como 3.62, no el centro de una celda.

En un tablero con borde 4, las columnas van de -4 a 4:

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

El tablero contiene una comida a la vez, así que el juego la crea una vez, en Start(), y la mueve cada vez que necesita una nueva ubicación. GameManager lee el tamaño del tablero a partir de edge de la serpiente, mediante su campo snake.

challenge icon

Desafío

Intermedio

Coloca la comida en una celda aleatoria del tablero.

  1. En GameManager, añade public Snake snake;, public GameObject foodPrefab; y private Transform food; (la escena enlaza los dos primeros).
  2. En Start(), food = Instantiate(foodPrefab).transform;, después llama a MoveFood().
  3. void MoveFood(): coloca la comida en una posición x y z aleatorias, cada una desde -snake.edge hasta snake.edge, y en y 0.

Pulsa «Jugar»: una esfera roja aparece en una celda, en un lugar distinto cada vez. Después, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // Controla el juego: la comida, la puntuación y el fin de la partida. El capítulo 2 completa esta clase.
}

Todas las lecciones de Juego de Unity: Serpiente 3D

Practica por tu cuenta: Playground de Unity