Skip to content

Creación de scripts en Unity

En este tutorial vamos a explicar cómo podemos crear scripts propios en Unity y asignarlos a cualquier GameObject de la escena. Además veremos algunos de los métodos y secuencias de comandos más utilizados, y cómo acceder a los diferentes componentes de un GameObject.

Recordemos que un script no es más que un archivo de texto plano, formado por una serie de procedimientos y órdenes que proporcionan una funcionalidad específica. Mediante componentes de tipo Script, Unity coordina el código del videojuego con los modelos. Al tratarse de una pieza de código, esta puede asignarse a uno o varios GameObjects como si tratara de un componente más, posibilitándonos un abanico inmenso de variantes para el desarrollo de un juego.

Ya vimos que Unity admite de forma nativa tres lenguajes de programación: C# (muy similar a Java), UnityScript (variación de Javascript) y Boo (derivado de Python, aunque descontinuado en las nuevas versiones de Unity). Además, dentro de las posibilidades que ofrece Unity, es posible utilizar otros lenguajes .NET, para lo que sólo será necesario poder compilar una DLL compatible.

Creación de script

Para la creación de un nuevo script para utilizar en cualquier GameObject al que se desee implementar una determinada lógica (por ejemplo la inteligencia artificial de un enemigo), se podrá realizar de la siguiente forma:

  1. Con el botón derecho del ratón sobre cualquier carpeta de la ventana «Project», y seleccionando la ruta Create > Javascript, C# Script o Boo Script (también es posible acceder a esta opción a través de la ruta Assets > Create).
  2. Otra posibilidad, es seleccionando el botón «Add Component» situado al final de la ventana «Inspector» del GameObject seleccionado, y pulsando sobre la opción New Script (a continuación se deberá indicar el nombre del script y el lenguaje de programación en el que se desea programar):

Pantalla creación script en Unity

Estructura básica de un script (C#)

Al crear un nuevo script, bastará con realizar doble clic para acceder al editor de texto, que en el caso de Unity utiliza MonoDevelop.

Dentro de la estructura básica al crear un script, se puede apreciar como hereda de la clase MonoBehaviour ( public class MainPlayer : MonoBehaviour ), que es la clase base de la que derivan todos los scripts, y excepto en C#, no es necesario escribirla para llamar a cualquiera de sus funciones. Además se pueden diferenciar dos métodos:

  • Método Update(), que implementa el código que se actualizará por cada fotograma del videojuego, en tiempo de ejecución
  • Método Start(), que será invocado antes del inicio del juego, y donde se deberán realizar las inicializaciones para los elementos declarados en el script.

También comentar el método Awake(), que será invocado justo un fotograma antes que Start(), por lo que también es práctico para inicializar variables, sobretodo variables que puedan tener conflictos de tiempo con Start().

Otra de las particularidades que proporciona Unity, y más concretamente en la declaración de variables dentro de un script, es la posibilidad de poder acceder a los valores de cualquier variable desde el propio editor de Unity (ventana Inspector).

Para acceder a dichos valores, en el caso de Boo Script y C# Script deberán declararse como «public» (pública, accesible desde otras clases). En el caso de UnityScript, no será necesario indicar el modificador de acceso de forma explícita, ya que son de tipo «public» por defecto. Esta opción proporciona un mayor control sobre los valores iniciales que se establecen en el juego, e inclusive poder realizar modificaciones durante el desarrollo del mismo.

En el supuesto de crear un script directamente en una carpeta, y querer asignarlo a un GameObject ya creado, sólo será necesario seleccionar y arrastrar el script al GameObject donde se desee añadir.

Acceso a componentes de un GameObject

Una de las tareas básicas, y muy común en el desarrollo de un script, es el acceso a diferentes componentes situados dentro del mismo GameObject. Esta opción permite variar los valores de las propiedades establecidas en el «Inspector» del GameObject, y por ejemplo cambiar la posición de un elemento en pantalla.

Para ello bastará con utilizar la función getComponent , que permitirá obtener una referencia a la instancia del componente. Posteriormente, será posible acceder a las propiedades del componente y asignar un nuevo valor. Otra de las posibilidades, que no se puede realizar desde la ventana «Inspector«, es la llamada a las diferentes funciones que se pueden encontrar a partir de la instancia del componente:

Nota: Es posible acceder a otro script utilizando la función getComponent, e indicando el nombre de la clase o archivo.

Acceso a GameObject

Otra de las opciones que es posible que resulten de gran utilidad a la hora del desarrollo de un script, es el acceso a otros objetos definidos en la escena. Para acceder a otro GameObject, será necesario declarar una variable de este tipo, estableciendo su modificador de acceso en «public», para posteriormente desde el editor de Unity, arrastrar el objeto ya construido como inicialización del GameObject:

Ejemplo Script GameObject

En el siguiente tutorial veremos un ejemplo básico de uso de GameObjetcs y Prefabs en Unity, y cómo podemos crear y asociarles scripts para que tengan funcionalidades concretas dentro de nuestro videojuego

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad