UNITY Creando scripts
Revisión del 11:29 24 jul 2018 de Wiki (discusión | contribuciones)
Introducción
- Información sobre la creación y uso de scripts en este enlace
- A pesar de lo potente que es Unity y de las facilidades que nos ofrece, va a ser necesario realizar al menos ciertas tareas de programación, para gestionar los diferentes eventos que se producen en un juego, movimientos,acciones,...
- Esto se consigue con la ejecución de ciertos 'scripts' asociados a cada uno de los GameObjets que conforman el juego.
- Para comprender este punto se debe tener conocimientos de programación en algún lenguaje de programación orientado a objetos y tener claros los conceptos de la POO (herencia, polimorfimo y encapsulación).
- Disponéis en esta misma WIKI de un curso de JAVA, en la sección de Programación.
- Unity hace uso del framework MONO para implementar la parte de programación de scripts dentro de su programa.
- Además al estar integrado en dicho programa, es posible definir variables (en MONO) que tendrán un reflejo gráfico en el entorno de Unity.
- Variable de Mono visible en Unity
- Unity soporta de inicio dos tipos de lenguajes de programación de scripts:
- C# (C-Sharp)
- Unity Script (parecido a Javascript), pero este lenguaje se recomienda ya no usarlo a partir de la versión 2017.
Creando scripts
- Los scripts van a ser archivos con extensión .cs que se van a guardar físicamente en la carpeta Assets de nuestor proyecto.
- Gráficamente podemos gestionar las carpetas donde se van a guardar los scripts y moverlos de unas a otras arrastrándolos dentro de Unity.
- La organización de los mismos es cosa nuestra.
- Normalmente, dentro de 'Assets' crearemos una carpeta Scripts:
Nota: Podemos hacer los mismo si estando situados sobre la carpeta 'Assets' (pulsar una vez con el botón izquierdo sobre la carpeta 'Assets') vamos a la opción de menú Assets:
Nota: Podemos crear las carpetas-subcarpetas que queramos.
- Una vez situados en la carpeta, presionamos el botón derecho del ratón (o ir al menú superior de 'Assets') y escogemos la opción 'Create' => 'C# Script' dándole un nombre:
- Los scripts van estar asociados a diferentes GameObjects.
- Para asociar un script a un gameobject podemos hacerlo de varias formas:
- Arrastrando el script al objeto:
- Arrastrando el script a las propiedades (ventana de inspector) del GameObject (tiene que estar previamente seleccionado el GameObject):
- En la ventana Inspector del GameObject, presionamos el botón Add Component y escribimos el nombre del script a asociar. Como se puede observar también se puede crear un script y asociarlo directamente al GameObject en un solo paso escogiendo la última opción al presionar 'Add Component'.
- IMPORTANTE:: Podemos tener varios scripts asociados al mismo gameobject. Estos se van a ejecutar en orden de 'arriba-abajo' en la ventana de inspector. Podemos arrastrar dichos scripts para cambiar el orden de ejecución.
- Más información sobre el orden de ejecución de los scripts en este enlace.
- Si quisiéramos crear un 'Unity Script' (cosa no aconsejable) podemos hacerlo de la forma siguiente:
<
- Avanzado (solo para información): A partir del Unity-2018, permite realizar un diseño de programación 'orientado a los datos' denominado ECS (Entity Component System).
- Hasta hora (y es lo que veremos) cada gameobject tiene 'asociado' diferentes componentes que le permiten:
- Renderizarse (dibujarse)
- Aplicar motor de físicas (si añadimos el componente rigidbody, lo veremos más adelante)
- Moverse (trasalación, rotación.escalado)
- En el tipo de enfoque ECS, se basa en crear 'entidades'. Cada una de ellas puede englobar a múltiples componentes.
- Cada componente tiene datos (por ejemplo, el componente Transform guarda información sobre la posición, el componente Renderer, sobre los materiales,...)
- Cada uno de esos componentes estará asociado a un sistema que lo gestionará.
- Más información: