UNITY El entorno de desarrollo

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

Introducción

  • En este punto vamos a explicar en que partes está dividida la interfaz del programa.
Unity3d interfaz 1.jpg


  • Estas son las partes principales en las que está dividida la interface del programa:
  • Parte izquierda: Hierarchy Window => Ventana jerárquica
  • Parte central:
  • Tool Bar => Barra de herramientas
  • Scene View => Vista de escena
  • Game Window => Ventana de juego
  • Parte derecha: Window Inspector => Ventana Inspector
  • Parte inferior:
  • Proyect Window => Ventana de proyecto.
  • Console => Ventana de consola.


  • Nota: Esta es la distribución por defecto, pero todas las ventanas pueden ser:
  • Movidas: Sobre la pestaña que representa la ventana, presionamos el botón izquierdo del ratón y sin soltar, arrastramos la ventana a cualquiera de las partes en las que está dividida la Interface.
  • Cerradas: Pulsando el botón derecho del ratón sobre la pestaña de la ventana que queremos cerrar y escogiendo la opción Close Tab.
  • Para añadir nuevas ventanas (o volver a visualizar una ventana previamente cerrada) podéis escogerlas en la opción de menú Window de Unity:
Unity3d entorno 1.jpg


  • Si queremos volver a dejar el entorno a su distribución inicial podemos pulsar la opción Window => Layouts => Default o también podemos ir por la ToolBar:
Como podemos observar en los menús anteriores, existen unas distribuciones de ventana ya prefijadas que podemos escoger o bien podemos crear nuestra propia distribución y guardarla para usarla cuando queramos.



Ventana jerárquica


  • En inglés: Hierarchy Window
Unity3d interfaz 2.jpg


  • En esta ventana van a aparecer todos los componentes que conforman nuestro juego.
Entre estos componentes tendremos:
  • Cámara.
  • Cualquier figura 3D que forma parte del juego (personajes, disparos, enemigos, terreno, casas,...)
  • Luces.
  • Sonidos.
  • Vídeos.
  • Y cualquier elemento que incorporemos a nuestro juego.
TODOS LOS COMPONENTES QUE APARECEN EN NUESTRO JUEGO CONFORMAN LA ESCENA.
  • A cada uno de los objetos que se encuentre en la ventana de jerarquía se denomina Game Object.
Los objetos van a aparecer situados de forma jerárquica de igual manera a como vemos los archivos de un Sistema Operativo por medio del programa explorador de windows, es decir, de forma jerárquica.


  • Inicialmente aparece un único gameobject que es la cámara 3D, denominada Main Camera.
Como vemos, la cámara se encuentra (en la jerarquía) dentro de un 'icono' con nombre Untiled.
Unity3d interfaz 3.jpg


  • Este icono representa una escena (scene) de nuestro juego.
¿ Y qué es una escena ?
Podemos definirla como un conjunto de objetos que conforman una fase de nuestro juego.
Imaginemos un juego:
  • El comecocos: Este juego tendría una única escena formada por el fondo, los fantasmas y el comecocos.
  • Una aventura gráfica: Este juego tendría varias escenas, una estaría en el interior de la nave. Otra escena sería en la superficie del planeta,....
También podríamos tener escenas por niveles del juego, en el que cada nivel aparezcan escenarios nuevos con nuevos enemigos.


  • Para crear nuevas escenas dentro de nuestro proyecto seleccionaremos la opción de menú File de Unity (o pulsamos la combinación de teclas Ctrl+N):
Unity3d interfaz 3b.jpg
Para cargar una escena podemos abrirla desde misma opción File de Unity o simplemente pulsamos dos veces sobre al escena la cual aparece en la Proyect Window (explicado a continuación).


  • Como paso inicial vamos a guardar nuestra escena con un nombre.


Nota: Si creamos nuevas escenas (Ctrl+N), tendremos que guardarlas de la misma forma. Al guardar una nueva escena se nos pedirá en que carpeta del S.O. debemos guardarla. Normalmente todas las escenas deberían guardarse en la carpeta Scenes.



  • Seguimos con la Hierarchy Window.
A parte de añadir los gameobjects de nuestro juego, como comentamos anteriormente, esta ventana permite tener una relación de jerarquía entre los objetos.
¿ Y para qué nos va a servir esto ?
Pues resulta que:
  • Vamos a poder realizar operaciones que van a afectar a todos los objetos de la jerarquía a la vez.
  • Nos permite establecer propiedades de los hijos con valores relativos con respecto a los valores que tenga un objeto padre.
Imaginemos un caso;
  • Un juego en el que queramos que delante de nuestra nave siempre se encuentren 4 escudos protegiéndola. Podemos crear los escudos 'dentro' de la nave en la jerarquía, de tal forma que su posición siempre será relativa a la nave. Si movemos la nave, se mueven los escudos.



Añadiendo objetos

  • Sobre esta ventana es donde vamos a añadir todos los componentes que conforman nuestro juego.
Unity permite añadir figuras 'básicas' de forma muy sencilla.



  • En nuestro ejemplo, vamos a añadir un Cubo (Cube) a la Scene de alguna de las formas anteriores.
Al hacerlo se visualizará un cubo en la ventana central (SceneView, que será explicada posteriormente).
Unity3d interfaz 7.jpg


  • Nota: Todos los GameObjects que se crean, tienen una 'propiedad' asociada que se denomina Transform.
Esta tiene tres elementos asociados:
  • Position: posición
  • Rotation: rotación
  • Scale: escala
Si ponemos un número en la posición estaremos cambiando de sitio el GameObject seleccionado.
Veremos más adelante como manejar dichas propiedades, pero en este punto indicar que podemos colocar cualquier GameObject en la posición (0,0,0) si pulsamos la opción Reset:
Unity3d interfaz 7a.jpg



  • La Hierarchy Window se comporta como un explorador de archivos de Windows con carpetas. Podemos tener GameObjects unos dentro de otros.
Si un GameObject está dentro de otro, el GameObject padre tendrá una flecha a su lado y si pulsamos sobre ella, los GameObjects hijos se ocultarán:
Unity3d interfaz 7e.jpg



Debéis fijaros en dos cosas:
  • El cubo, en la Hierarchy Window debe de estar dentro de la escena, pero a la misma altura que la cámara.
Si os aparece dentro de la cámara quiere decir que habéis creado el objeto pulsando el botón derecho del ratón sobre la cámara y no sobre la escena. Podéis corregirlo 'arrastrando' el cubo en la ventana de jerarquía (pulsando sobre él con el botón izquierdo y sin soltar) y situarlo encima de la cámara o arrastrarlo a la parte baja donde no haya ningún GameObject.
  • En la SceneView (ventana central) os debe aparecer el cubo con una perspectiva 3D. Si no es el caso aseguraros que en la parte superior de la ventana central (el marco) no esté seleccionado la opción 2D (está indicado en una imagen anterior).



Creando gameobjects vacíos

  • En Unity también vamos a poder crear GameObjects 'vacíos' que nos van a permitir agrupar otros GameObjects.
Por ejemplo, podría crear un GameObjet de nombre 'Muralla' y dentro del mismo tener a los GameObjects que conforman la muralla. De esta forma, podría, por ejemplo, hacer visible o invisible a toda la muralla activando o desactivando el gameobjet 'Muralla'.




Operaciones de visualización-selección

  • En la parte izquierda de cada GameObject aparecen dos iconos que podemos activar-desactivar:
  • Icono para visualizar: Si lo desactivamos el GameObject no aparece en la escena.
  • Icono para seleccionar: Si lo desactivamos, no podremos seleccionar el GameObject desde la Scene Window.





Otras operaciones sobre los gameobjects

  • Borrar un gameobject:
  • Tecla suprimir
  • Botón derecho del ratón sobre el mismo y escoger la opción Delete.
  • Duplicar un gameobject (crea otro igual con sus mismas propiedades):
  • Seleccionando el objeto, Ctrl+D.
  • Botón derecho del ratón sobre el mismo y escoger la opción Duplicate.
  • Cambiar el nombre:
  • Con el objeto seleccionado, pulsamos una vez sobre el mismo con el botón izquierdo del ratón.
  • Botón derecho del ratón sobre el mismo y escoger la opción Rename.



ToolBar

Unity3d ToolBar 1.jpg
  • Aquí se encuentran varios grupos de botones:
  • Los botones que nos van permitir aplicar diferentes transformaciones sobre los objetos 3D de la escena, como rotarlos, moverlos, escalarlos,...
  • Los botones que nos van permitir ver los ejes (x,y,z) de los objetos 3D individuales y agrupados.
  • Los botones para iniciar el juego, pausar, o pararlo (si está en ejecución).
  • Los botones que nos permiten identificarnos con una cuenta de Unity, crear capas y establecer el aspecto de ventanas del entorno de Unity.




Vista de Escena


  • En inglés Scene View.
Unity3d sceneview 1.jpg
Nota: Recordar que el icono '2d' de la parte superior no debe estar marcado.


  • Esta es una de las ventajas de utilizar un motor de juegos frente a un framework.
Vamos a poder ver en 'tiempo real' como queda la escena con todos los objetos del juego (gameobject).


  • Va a ver una relación directa entre esta vista y ciertas 'propiedades' de la ventana inspector (la ventana de la derecha).
Esto es así ya que vamos a poder:
  • Mover.
  • Rotar
  • Escalar
Todos los objetos que conforman la escena y lo vamos a poder realizar desde la 'Scene View' o desde la 'Window Inspector'.


  • Podéis consultar en este enlace las teclas y combinaciones de tecla-ratón que se pueden aplicar en esta vista.


  • Las más importantes que vamos a utilizar son las siguientes (siempre sobre la ventana de escena):
Nota: Estas combinaciones están probadas con un ratón de dos botones y una rueda. Con otras combinaciones consultar el enlace anterior.


  • Pulsando la rueda del ratón y sin soltar mover el ratón a izquierda-derecha, arriba-abajo: Nos movemos a izquierda-derecha y arriba-abajo pero sin rotar. Tener en cuenta que lo que movemos es la forma en cómo la persona que programa ve los objetos del juego. Pero recordar que como se va a visualizar la escena lo determina la cámara. Lo veremos después.
Fijarse que en la barra de herramientas se selecciona la mano:
Unity3d w escena 7.JPG
  • Movimiento con la rueda del ratón
  • Pulsamos la rueda del ratón y sin soltar...

  • Movemos a izquierda-derecha y arriba-abajo


    • Pulsa el botón derecho del ratón (o la tecla ALT y sin soltar el botón izquierdo del ratón) y sin soltar mover el ratón a izquierda-derecha, arriba-abajo: La vista 'rota' hacia la izquierda-derecha y arriba-abajo. Fijarse que el icono cambia por un ojo.
    Fijarse que en la barra de herramientas se selecciona un ojo:
    Unity3d w escena 8.JPG
  • Rotación con botón derecho de ratón
  • Pulsamos el botón derecho del ratón (o la tecla ALT y sin soltar el botón izquierdo del ratón) y sin soltar...

  • Movemos a izquierda-derecha y arriba-abajo provocando una rotación.


    • Pulsa la tecla ALT más el botón derecho del ratón y sin soltar mover el ratón a izquierda-derecha o arriba-abajo: Hacemos un zoom sobre la escena, acercándonos o alejándonos.
    Fijarse que en la barra de herramientas se selecciona una lupa:
    Unity3d w escena 10.JPG
    Este efecto también lo conseguimos moviendo la rueda del ratón.


  • Zoom pulsando la tecla ALT más el botón derecho del ratón
  • Pulsa la tecla ALT más el botón derecho del ratón y sin soltar...

  • Mover el ratón a izquierda-derecha o arriba-abajo.


    • Si al movernos o desplazarnos queremos situarnos rápidamente en el sitio donde se encuentra un 'gameobject', podemos:
    • Seleccionarlo en la 'ventana jerárquica' y situándonos sobre la 'ventana de escena' pulsar la tecla F
    • Pulsar dos veces seguidas sobra el gameobject en la Hierarchy Window.
  • Tecla F para situarnos en un objeto
  • Hemos perdido al objeto o queremos situarnos donde se encuentra.

  • Seleccionamos el objeto en la 'ventana jerárquica'.

  • Movemos el ratón sobre a 'ventana de escena' (pero sin pulsar el botón sobre ella) y pulsamos la tecla F.


    • Como comenté anteriormente, no tiene nada que ver la vista del desarrollador con la vista del juego. La vista del juego viene determinada por una cámara. La cámara está situada en una posición dentro de la escena, 'apuntando' hacia un lugar.
    Si en la 'ventana jerárquica' pulsáis sobre la cámara, podéis ver cual será la vista del jugador cuando comience el juego.
    Unity3d w escena 16.JPG
    Esta misma vista la podéis conseguir si pulsáis la 'pestaña' Game de la 'ventana de escena':
  • Mostrando la escena a partir de la cámara
  • Pulsamos sobre 'Game'.

  • Vemos como queda el juego desde el punto de vista de la cámara.


  • En otro punto hablaremos de la cámara, simplemente tened en cuenta que es como un gameobject con las propiedades de los mismos, como posición, rotación,...Podéis utilizar la tecla F para ver la posición de la cámara en la escena, como hicimos antes con el cubo:
    Unity3d w escena 19.JPG
    La 'pirámide' que sale de la cámara representa el área de visualización de la misma.


    • En el mundo 3D disponemos de tres ejes (X-Y-Z). El icono que está dentro de la 'vista de escena' permite visualizar un objeto situándonos en uno de esos tres ejes.
    Unity3d w escena 20.JPG
    Si pulsamos sobre uno de los ejes, nos situaremos en ese eje mirando hacia el objeto.
    • El eje X es el que va de derecha a izquierda.
    • EL eje Y es el que va de arriba a abajo.
    • El eje Z es el que va de dentro a fuera (como si saliera del monitor).
    En este caso no vais a notar la diferencia visualmente al pulsar ya que el cubo no tiene texturas para 'identificar' las caras del mismo. Simplemente veréis que vuestra perspectiva (la del programador) cambia.








    Ventana Inspector


    • En inglés Window Inspector.
    • En esta ventana vamos a poder:
    • Modificar la posición, rotación y escala de los gameobjets que conforman el juego.
    • Añadir script's (códigos de programación).
    • Añadir componentes como sonidos, efectos, detección de colisiones, gravedad,....


    Unity3d w inspector 1.JPG


    • Cada uno de esos elementos son Componentes que van a afectar al GameObject asociado.




    Vista de Juego


    • En inglés Game View.
    • A medida que vayamos desarrollando el juego querremos hacer pruebas sobre el mismo. Para poner el juego 'en marcha' debemos de pulsar el botón Play que se encuentra en la parte superior de la 'vista de escena'.
    Unity3d entorno jugar 0.jpg
    Si pulsamos el botón de 'play' pasaremos a estar en la pestaña de 'Game' y dentro del Game Window y el juego se estaría ejecutando (ahora mismo no pasa nada ya que no realizamos ninguna acción).
    • Si estamos en modo 'Play' podemos pausar el juego pulsando el botón a la derecha del mismo ('Pause').
    • Estando en modo 'Pause' podemos pulsar el botón siguiente ('Next Step') para 'avanzar' el juego y volver a estar en 'Pause'.


    • Fijarse que a pesar de estar en ejecución podemos modificar los valores de las variables de cualquier GameObject y este las aplicaría inmediatamente.
    Por ejemplo, modificar la posición en la 'ventana inspector' del cubo y veréis como se desplaza en la pestaña de 'Game' en la 'vista de escena'.
    Todas estas modificaciones en ejecución no se guardarán al parar el juego y volverán a sus valores originales.


    • Unity nos permite ejecutar el juego y estando en ejecución, modificar los valores de los GameObjets (cambiando su posición, escala, dando valores nuevos a los scripts (programas) asociados a los GameObjets,...). Si realizamos modificaciones estando en ejecución y paramos el juegos, cuando volvamos a ejecutarlo dichas modificaciones se pierden.
    Para distinguir cuando estamos en ejecución (muchas veces pasa que no nos damos cuenta, modificamos parámetros de los GameObjects y al parar volvemos a los valores anteriores) podemos hacer que el entorno nos señale que se encuentra en ejecución.
    Para ello seguimos estos pasos:




    Proyect Window / Console


    • En la parte inferior encontramos la Proyect Window.
    Unity3d entorno proy 1.JPG


    En esta ventana se encuentran todos los Assets (son los recursos que vamos a usar para el juego, como gráficos, animaciones, materiales, texturas, sonido,...) organizados como si fueran un sistema de archivos, en forma de carpetas.
    Excepto en algunos casos, podremos organizarlo como queramos, creando nuestras propias carpetas y añadiendo dentro de ellas los recursos que usaremos para desarrollar nuestro juego.
    • Para crear una carpeta haremos como si estuviéramos en un explorador de archivos, pulsando sobre una carpeta con el botón derecho del ratón y escogiendo la opción Create => Folder:
    Unity3d entorno proy 1b.JPG


    • Nuestro juego también va a tener asociado ciertos programas denominados scripts (normalmente crearemos una carpeta con ese nombre en el árbol del 'Proyect Window').
    Si alguno de esos scripts está mal programado, aparecerá el error correspondiente en la parte baja de dicha ventana.
    Unity3d entorno proy 1c.jpg


    • En la pestaña de Console aparecen los errores que pueda haber en los scripts y también los errores que se puedan producir durante la ejecución del juego.
    También sirve como recurso para los programadores para mostrar los valores de variables utilizadas dentro de los scripts.
    Unity3d entorno proy 1d.jpg



    Enlace a la página principal del curso





    -- Ángel D. Fernández González -- (2018).