2. Del Requisito a la Mecánica (Scripting Básico)
Conectando con el Requisito (RA2)
Si el documento de requisitos (Sprint Backlog) dice: "El usuario debe poder mover la nave hacia arriba apretando la barra espaciadora", ha llegado el momento de codificarlo.
C# para No Programadores: Start vs Update
Al crear un Script MonoBehaviour (clase base de Unity), te aparecerán dos métodos automáticos principales:
void Start(): Se ejecuta una sola vez cuando el objeto "nace" en la pantalla. Útil para: dar puntos de vida iniciales, cargar referencias a la UI.void Update(): Se ejecuta cada frame (fotograma) constante. Si el juego va a 60 FPS, se llama 60 veces por segundo. Útil para: leer si se está apretando un botón, mover un personaje, chequear si cayó por un barranco.
Variables y [SerializeField] en el Inspector
Uno de los poderes del Prototipado Ágil en equipos mixtos (Programadores + Diseñadores) es permitir que los diseñadores cambien variables (la gravedad, la velocidad) ¡Sin rescribir código ni compilar!
// Mala práctica para prototipado en equipo:
private float speed = 5.0f; // Está oculto y fijo.
// Buena práctica:
[SerializeField] private float speed = 5.0f; // Se ajusta visualmente en el Inspector de Unity.
Con [SerializeField], tu variable privada en C# generará una cajita en la interfaz gráfica de Unity que otro compañero podrá alterar probando en vivo (Play Mode).
Input System clásico: Detectar Teclas
En el Update(), puedes preguntar al sistema si ocurrió un evento físico.
void Update() {
// Si presiono una vez la barra espaciadora
if (Input.GetKeyDown(KeyCode.Space)) {
// Hago que mi personaje salte aquí
}
} Así implementamos los verbos de los requisitos funcionales ("saltar", "disparar", "pausar").