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 4El 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.
Desafío
IntermedioColoca la comida en una celda aleatoria del tablero.
- En
GameManager, añadepublic Snake snake;,public GameObject foodPrefab;yprivate Transform food;(la escena enlaza los dos primeros). - En
Start(),food = Instantiate(foodPrefab).transform;, después llama aMoveFood(). void MoveFood(): coloca la comida en una posición x y z aleatorias, cada una desde-snake.edgehastasnake.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