Introducción
En este artículo vamos a hablar sobre qué es MonoBehaviour en Unity, primero desde el punto de vista práctico para saber en términos generales de qué se trata y qué funciones cumple concretamente y luego desde el punto de vista de la programación.
¿Qué necesitamos saber sobre MonoBehaviour para trabajar en Unity?
Cuando creamos un nuevo Script en Unity, junto al nombre que le dimos aparece la palabra «MonoBehaviour», esto en términos simples nos está diciendo que el Script que hicimos se comportará como un MonoBehaviour.
Esto quiere decir que Unity se encargará de ejecutar ciertas funciones automáticamente. Para entender el concepto de función en programación te invito a leer este artículo o ver el video que lo resume.
Por ejemplo la función «Start» se ejecutará cuando el GameObject al cual asignamos nuestro Script aparezca en la escena (al comenzar el juego o cuando lo instanciemos).
Otra función que se ejecuta automáticamente es «Update», la cual se ejecuta antes de mostrar cada frame del juego, por lo cual es una función que nos permite actualizar el estado del juego y producir la dinámica.
Esas dos funciones vienen definidas por defecto cuando creamos un nuevo Script en Unity, pero además hay otras funciones que podemos definir y se ejecutarán automáticamente en determinado momento del tiempo de vida de un MonoBehaviour. Leer más sobre la función Update.
Una función útil que no viene definida por defecto es la función «FixedUpdate», la cual es similar a Update, pero se ejecutar de manera equiespaciada en el tiempo con una frecuencia por defecto de 20 milisegundos. Esto nos permite lograr cambios en el juego que deban ocurrir de manera regular en el tiempo, por ejemplo el movimiento de objetos.
Otras funciones útiles son «Awake», «LateUpdate», «OnDestroy», «OnEnable», «OnDisable»,
¿Qué es MonoBehaviour desde la programación?
Mono Behaviour es una «Clase de Programación», esto quiere decir que es un conjunto de variables, objetos y funciones que cumplen una determinada función.
Para saber más sobre qué es una clase y objeto en programación puedes consultar este artículo o también ver este video.
Cuando creamos un nuevo Script en Unity, lo que se hace de fondo es crear una nueva clase de programación que tendrá el mismo nombre que le dimos al Script y que además extenderá de MonoBehaviour, es decir que heredará su comportamiento de la clase MonoBehaviour. Esa es la razón por la cuál los métodos «Start», «Update» o »FixedUpdate» son ejecutados automáticamente cuando el juego empieza a correr.