Diferencia entre revisiones de «UNITY Creando scripts»
Ir a la navegación
Ir a la búsqueda
Presionar el botón derecho del ratón sobre la carpeta Assets
| Línea 28: | Línea 28: | ||
* Unity soporta de inicio dos tipos de lenguajes de programación de scripts: | * Unity soporta de inicio dos tipos de lenguajes de programación de scripts: | ||
:* C# (C-Sharp) | :* C# (C-Sharp) | ||
| − | :* Unity Script | + | :* Unity Script (parecido a Javascript), pero este lenguaje se recomienda ya no usarlo a partir de la versión 2017. |
| + | |||
| Línea 34: | Línea 35: | ||
<br /> | <br /> | ||
| − | =Creando | + | =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''': | ||
| + | |||
| + | [[Imagen:Unity3d_scripts_3.JPG|500px|center]] | ||
| + | <center><small>Presionar el botón derecho del ratón sobre la carpeta '''Assets'''</small></center> | ||
| + | |||
| + | |||
| + | <u>Nota:</u> 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''': | ||
| + | [[Imagen:Unity3d_scripts_4.JPG|300px|center]] | ||
| + | |||
| + | |||
| + | <u>Nota:</u> 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: | ||
| + | [[Imagen:Unity3d_scripts_5.JPG|500px|center]] | ||
| + | |||
| + | |||
| + | * 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: | ||
| + | [[Imagen:Unity3d_scripts_6.JPG|300px|center]] | ||
| + | :* Arrastrando el script a las propiedades (ventana de inspector) del GameObject (tiene que estar previamente seleccionado el GameObject): | ||
| + | [[Imagen:Unity3d_scripts_7.JPG|300px|center]] | ||
| + | :* 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'. | ||
| + | [[Imagen:Unity3d_scripts_8.JPG|300px|center]] | ||
| + | |||
| + | |||
| + | |||
| + | *'''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 [https://docs.unity3d.com/Manual/class-MonoManager.html en este enlace]. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <br /> | ||
| + | * Si quisiéramos crear un 'Unity Script' (cosa no aconsejable) podemos hacerlo de la forma siguiente: | ||
| + | [[Imagen:Unity3d_scripts_9.JPG|400px|center]] | ||
| + | |||
| + | |||
| + | |||
| + | <<br /> | ||
| + | * '''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' <u>diferentes componentes</u> 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: |
| + | :* [https://unity3d.com/es/learn/tutorials/topics/scripting/introduction-ecs Vídeo Explicativo] | ||
| + | :* [https://blogs.msdn.microsoft.com/uk_faculty_connection/2018/05/08/entity-component-system-in-unity-a-tutorial/ Ejemplo de uso]. | ||
Revisión del 11:29 24 jul 2018
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: