Creando movimiento independiente del framerate

Clase 15 de 24Curso de Introducción a Unity: Scripting

Resumen

¿Cómo impacta el frame rate en el desarrollo de un juego?

El desarrollo de un videojuego requiere entender cómo funciona el frame rate, ya que es fundamental para asegurar un movimiento fluido de los objetos en pantalla. El frame rate es la cantidad de imágenes que se renderizan por segundo y es vital para la experiencia del usuario. Si tu código depende del frame rate, puedes enfrentar problemas cuando los recursos del sistema son limitados.

¿Qué sucede al implementar un script de lag?

Un script de lag simula una computadora lenta, permitiendo observar cómo el juego se comportaría en diferentes condiciones de rendimiento. Al ajustar este script, conseguimos que la computadora finja tener un bajo frame rate, evaluando así cuán independiente es nuestro código de este factor.

  • Precaución: Aumentar demasiado los parámetros del script puede congelar la computadora.

¿Cómo se mueven los objetos con y sin delta time?

Para entender el impacto del frame rate en el movimiento de objetos, es importante conocer cómo utilizar delta time en Unity. La diferencia entre mover un objeto utilizando o no delta time es crucial para asegurar un movimiento constante independientemente de los recursos del sistema.

Mover objetos sin delta time

Al mover un objeto sin delta time, el desplazamiento se realiza por frame. Esto significa que la distancia recorrida depende directamente del frame rate:

public class SinDeltaTime : MonoBehaviour
{
    public float speed = 0.05f; // 5 centímetros por frame

    void Update()
    {
        transform.Translate(0, 0, speed);
    }
}
  • Consecuencia: Si el frame rate baja, el objeto parece moverse más lentamente.

Mover objetos con delta time

Usar delta time asegura que el espacio recorrido por un objeto sea constante por segundo, no por frame, independientemente del frame rate:

public class ConDeltaTime : MonoBehaviour
{
    public float speed = 5f; // 5 metros por segundo

    void Update()
    {
        transform.Translate(0, 0, speed * Time.deltaTime);
    }
}
  • Beneficio: Mantiene un movimiento constante sin importar la velocidad de procesamiento del sistema.

¿Por qué es crucial entender la teoría detrás de estos conceptos?

Comprender los fundamentos teóricos detrás del movimiento a través de delta time es esencial, no solo porque mejora el desarrollo de juegos, sino porque también se aplica a escalas, crecimientos y en muchos otros aspectos de la programación y animación en Unity.

Aplicaciones prácticas de delta time

  • Escenarios: Controlar el crecimiento de un objeto, como un globo que aumenta su tamaño en un 10% cada segundo, asegurando el incremento proporcional al tiempo transcurrido.
  • Consistencia: Garantizar que las animaciones y movimientos sean coherentes en cualquier dispositivo o condición limitada de hardware.

A través de estos conceptos, no solo desarrollamos habilidades para crear un juego, sino que fortalecemos el entendimiento necesario para innovar y crear sin depender de guías o ejemplos preexistentes. El conocimiento teórico te equipara para ver más allá y construir con confianza cualquier mecánica en un ambiente virtual.