Conviene haber comprendido Fundamentos de C# para gameplay.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar Inicialización y activación con Frames, física y colisiones y resolver un caso nuevo.
Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.
Instala Unity Hub, una versión LTS compatible y un IDE con integración para C#. Conserva un proyecto de laboratorio separado.
Abrir la guía de herramientas →Diagnóstico rápido: ¿cómo se relacionan Inicialización y activación y Frames, física y colisiones? +
No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.
Aprende el tema paso a paso
Organizarás inicialización, actualización, física, activación y tareas temporales según el momento exacto en que Unity las ejecuta.
- Awake prepara el componente y OnEnable abre su participación
- Update, FixedUpdate y LateUpdate responden a relojes distintos
- Corrutinas coordinan frames; no crean un hilo nuevo
Awake prepara el componente y OnEnable abre su participación
Awake prepara referencias y estado propio. Start ocurre antes del primer frame habilitado. OnEnable y OnDisable forman una pareja natural para registrar y retirar eventos; OnDestroy reserva la limpieza definitiva.
No supongas un orden entre objetos sin diseñarlo.
Suscribir y retirar en callbacks simétricos evita duplicados.
Desactivar no equivale a destruir.
¿Qué síntoma produce suscribirse cada vez que un panel se activa y nunca retirarse?
Mostrar respuesta +
El mismo evento puede ejecutar el callback varias veces y conservar referencias innecesarias, generando actualizaciones duplicadas y fallos difíciles de reproducir.
Update, FixedUpdate y LateUpdate responden a relojes distintos
Update o los callbacks del paquete Input System sirven para capturar intención; FixedUpdate para fuerzas y cambios de Rigidbody; LateUpdate para tareas posteriores como una cámara. deltaTime convierte una velocidad por segundo en desplazamiento por frame. Collider, Rigidbody, capas y modo Trigger determinan los callbacks de contacto.
Declara si el proyecto usa Input Manager clásico o Input System y aísla esa lectura del movimiento.
Aplica fuerzas en FixedUpdate y no multipliques Force por deltaTime sin motivo.
No mezcles callbacks 2D y 3D.
¿Un Trigger atraviesa todo sin emitir mensajes?
Mostrar respuesta +
No necesariamente. Un trigger no resuelve el contacto como obstáculo sólido, pero puede emitir OnTriggerEnter, Stay y Exit cuando la configuración de colliders, rigidbodies y capas lo permite.
Corrutinas coordinan frames; no crean un hilo nuevo
Una corrutina usa IEnumerator y yield para pausar y continuar una secuencia. Invoke puede servir para una llamada sencilla, pero una corrutina o temporizador explícito hace visible la cancelación y el estado en flujos complejos. OnBecameVisible depende de cámaras de render y no prueba por sí solo lo que ve la persona.
Conserva una referencia si necesitas detener una corrutina concreta.
Al cancelar, deja la UI y el estado en una condición coherente.
Decide si el tiempo debe obedecer o ignorar timeScale.
¿Cuándo usarías WaitForSecondsRealtime en vez de WaitForSeconds?
Mostrar respuesta +
Cuando la espera debe continuar aunque timeScale sea cero, por ejemplo en ciertos menús o tiempos de interfaz durante una pausa.
Tu recorrido en tres ideas
- Awake prepara el componente y OnEnable abre su participación
- Update, FixedUpdate y LateUpdate responden a relojes distintos
- Corrutinas coordinan frames; no crean un hilo nuevo
Traza el ciclo de un controlador estable
Conecta entrada, tiempo por frame, física, cámara, activación y cancelación en un solo flujo observable.
Un jugador se mueve a distinta velocidad según los FPS, la cámara vibra y una cuenta regresiva continúa después de cerrar el panel.
Procedimiento
- Registra el orden y frecuencia de Update, FixedUpdate, LateUpdate, OnEnable y OnDisable.
- Separa captura, física, cámara y corrutina; añade cancelación simétrica.
- Prueba a 30 y 120 FPS, cambia fixedDeltaTime y activa el panel cinco veces.
Evidencia mínima
- Cronología de callbacks y responsabilidad asignada.
- Distancia recorrida por segundo bajo dos FPS.
- Una sola suscripción y cero corrutinas residuales.
Mostrar razonamiento modelo +
Update conserva la entrada más reciente; FixedUpdate actúa sobre Rigidbody; LateUpdate sigue el resultado; OnEnable inicia participación y OnDisable la cierra. La comprobación compara magnitudes por segundo, no cantidad de llamadas.
Para ir más lejos¿Qué cambiaría si el juego pudiera pausar con timeScale = 0?
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Mover un Rigidbody desde Update o leer entrada exclusivamente en FixedUpdate.
Suscribirse al activar y no retirarse al desactivar, acumulando callbacks.
Ahora hazlo sin guía
Construye un objeto con entrada, movimiento físico, cámara posterior y una cuenta regresiva cancelable; dibuja el orden de sus callbacks.
Mostrar pauta de corrección +
- Cada responsabilidad vive en el callback adecuado.
- La velocidad por frame y la física usan el tiempo con criterio.
- Activar, desactivar y reactivar no duplica eventos ni deja corrutinas incoherentes.
