Introducción a los Scripts en Unity: Ciclo de vida y métodos

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

Resumen

¿Cómo se integran los comportamientos en los videojuegos mediante scripts?

Cuando jugamos juegos como Witcher o Cult of the Lamp, los personajes y eventos parecen tener una lógica interna que los hace mucho más atractivos. Esto es posible gracias a los scripts, los cuales permiten automatizar tareas y dar vida a comportamientos complejos en los videojuegos.

¿Qué es un script y cuál es su ciclo de vida?

Un script en el contexto del desarrollo de videojuegos es un componente esencial para definir comportamientos dentro del entorno de juego. Es, en esencia, un archivo de código escrito en C#, que se compila en un archivo binario manejado por Unity.

  • Asset y componente: Los scripts pueden existir como un asset, es decir, un archivo de código en el proyecto, o como un componente que se adiciona a un GameObject.

  • Comportamiento similar a objetos en OOP: Cuando un script se añade a un GameObject, se convierte en un componente con propiedades y métodos propios, funcionando como una clase e instancia al mismo tiempo.

¿Cómo interactúan los scripts con los GameObjects?

Cuando un script es parte de un GameObject, recibe mensajes constantes que indican varias acciones o cambios de estado, haciendo posible la gestión de sucesos durante el juego. Algunos de los mensajes más relevantes que los programadores deben conocer son:

  • onEnabled y onDisabled: Envían señales cuando un GameObject se activa o desactiva.
  • Start y Destroy: Start se ejecuta cuando el objeto es activado por primera vez, mientras que Destroy se usa cuando el objeto es destruido.
  • Awake: Sucede antes de Start, preparándose para su ejecución.
  • OnMouseDown: Requiere un collider y se activa cuando el usuario hace clic sobre el GameObject.
  • Reset: Solamente tiene lugar durante la fase de edición.

¿En qué orden se ejecutan los mensajes en Unity?

El orden de ejecución de los mensajes es crucial para definir el comportamiento y la gestión correcta de los GameObjects en tiempo de ejecución. En general, el ciclo sigue esta secuencia:

  1. Cuando el juego se inicia, y si el GameObject está activado, los mensajes se ejecutan en este orden: Awake, onEnabled, y finalmente Start.

  2. Durante la ejecución del juego, el mensaje Update se ejecuta constantemente antes de que cada frame sea renderizado, lo que se traduce en una serie de acciones ágiles y temporales en el juego.

  3. onMouseDown, un método crucial para interacciones basadas en el usuario, también se ejecuta antes de renderizar un frame siempre que el GameObject sea clicado.

  4. Al detener el juego o cuando un GameObject se destruye, se gestionan los mensajes onDisable y onDestroy en ese orden.

¿Cómo crear y gestionar scripts en Unity?

Existen varios métodos para crear scripts en Unity, cada uno con su propio beneficio para mantener la estructura y organización del proyecto.

  • Creación directa en el proyecto: Usando la opción "Create" -> "C# Script", se asigna un nombre, creando así un nuevo script.
using UnityEngine;

public class HolaMundo : MonoBehaviour
{
    void Start()
    {
        Debug.Log("Hola, desperté");
    }
    
    void OnEnable()
    {
        Debug.Log("Me activé");
    }
    
    void Update()
    {
        Debug.Log("Spam");
    }
}
  • Directamente como componente de un GameObject: Añadiendo el script desde el GameObject, se configura como un nuevo componente.

Este enfoque permite que los desarrolladores integren interactividad y automatización eficazmente, transformando la lógica escrita en vibrantes comportamientos de juego. A medida que exploras más sobre scripts y C#, recuerda que la práctica constante y la experimentación son clave para una mayor comprensión y habilidad. ¡Sigue aprendiendo y crea experiencias de juego inolvidables!