El comportamiento de los GameObjects es controlado por los Components que están adjuntos. Aunque los Componentes integrados de Unity pueden ser muy versátiles,usted va a ver que va a necesitar ir más allá de lo que estos pueden proporcionar para implementar las características propias de su juego. Unity le permite a usted crear su propio Componente utilizando scripts. Estos le permite a usted trigger (activar/desactivar) eventos de su juego, modificar propiedades del Componente en el tiempo y responder al input del usuario de la forma que usted quiera.
Unity supports the C# programming language natively. C# (pronounced C-sharp) is an industry-standard language similar to Java or C++.
In addition to this, many other .NET languages can be used with Unity if they can compile a compatible DLL - see here for further details.
Aprender el arte de programar y el uso de estos lenguajes en particular, va más allá del alcance de esta introducción. Sin embargo, hay muchos libros, tutoriales y otros recursos para aprender cómo a programar con Unity. Vea la Learning section de nuestra página web para más detalles.
Unlike most other assets, scripts are usually created within Unity directly. You can create a new script from the Create menu at the top left of the Project panel or by selecting Assets > Create > C# Script from the main menu.
El nuevo script será creado en la carpeta que usted haya seleccionado en el Panel del Proyecto. El nuevo nombre del archivo script será seleccionado, pidiéndole a usted que ingrese otro nuevo nombre.
Es una buena idea ingresar el nombre del nuevo script en este punto en vez de editarlo después. El nombre que usted ingrese será utilizado para crear el texto inicial dentro del archivo, como es descrito abajo.
When you double-click a script Asset in Unity, it will be opened in a text editor. By default, Unity will use Visual Studio, but you can select any editor you like from the External Tools panel in Unity’s preferences (go to Unity > Preferences).
Los contenidos iniciales del archivo se verán algo como esto:
using UnityEngine;
using System.Collections;
public class MainPlayer : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Un script hace sus conexiones con el funcionamiento interno de Unity al implementar una clase que deriva desde la clase integrada llamada MonoBehaviour. Usted puede pensar una clase como un tipo de plano (blueprint) para crear un nuevo tipo de Component que puede ser adjuntado a GameObjects. Cada vez que usted adjunte un componente script a un GameObject, éste crea una nueva instancia del objeto definido por el plano. El nombre de la clase es tomado desde el nombre que usted proporciona cuando el archivo se crea. El nombre de la clase y el archivo se debió suministrar cuando el archivo fue creado. El nombre de la clase y el archivo debe ser el mismo para permitirle al componente script en ser adjuntado al GameObject.
La primera cosa para tener en cuenta son dos funciones definidas dentro de la clase. La función Update es el lugar para colocar el código que se encargará de la actualización por frame para el GameObject. Este puede incluir movimiento, acciones de trigger y responder al input del usuario, básicamente cualquier cosa que necesite ser manejado en el tiempo durante el gameplay. Para que la función Update haga su trabajo, a veces es útil configurar variables, leer preferencias y hacer conexiones con otros GameObjects antes de que cualquier acción del juego tome lugar. La función Start va a ser llamada por Unity antes de que el gameplay comience (ie, antes de que la función Update sea llamada por la primera vez) y es un lugar ideal para hacer cualquier inicialización.
Recomendación para programadores con experiencia: Usted puede sorprenderse que la inicialización de un objeto no es hecho utilizando una función constructora. Esto se debe a que la construcción de los objetos es manejado en el editor y no toma lugar al comienzo del gameplay como usted podría suponer. Si usted intenta definir un constructor para un componente script, éste va a interferir con la operación normal de Unity y puede causar problemas mayores con el proyecto.
Como es dicho arriba, un script solo define un plano para un Component por lo que nada de su código será activado hasta que una instancia del script es adjuntada al GameObject. Usted puede adjuntar un script arrastrando el script asset a un GameObject en el panel de la jerarquía o al inspector del GameObject el cual está actualmente seleccionado. También hay un sub-menú de Scripts en el menú del Componente que va a contener todos los scripts disponibles en el proyecto, incluyendo aquellos que usted ha creado usted mismo. La instancia de script se ve mucho como cualquier otro Componente en el Inspector:
Una vez adjuntado, el script va a comenzar a funcionar cuando usted presione Play y corra el juego. Usted puede revisar esto al agregar el siguiente código en la función Start:-
// Use this for initialization
void Start ()
{
Debug.Log("I am alive!");
}
Debug.Log is a simple command that just prints a message to Unity’s console output. If you press Play now, you should see the message at the bottom of the main Unity editor window and in the Console window (menu: Window > General > Console).
2018–03–19 Page amended
MonoDevelop replaced by Visual Studio from 2018.1