UNITY Creando scripts

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción



  • 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.


  • 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:
Unity3d scripts 3.JPG
Presionar el botón derecho del ratón sobre la carpeta Assets


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:

Unity3d scripts 4.JPG


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:
Unity3d scripts 5.JPG


  • 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:
Unity3d scripts 6.JPG
  • Arrastrando el script a las propiedades (ventana de inspector) del GameObject (tiene que estar previamente seleccionado el GameObject):
Unity3d scripts 7.JPG
  • 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'.
Unity3d scripts 8.JPG


  • 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:
Unity3d scripts 9.JPG


<

  • 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: