15
Álvaro Holguera – CIFP José Luis Garci (Madrid) UD2 HERRAMIENTAS BÁSICAS DE UNITY

UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

Álv

aro

Hol

guer

a–

CIF

P Jo

sé L

uis

Gar

ci (M

adrid

)

UD2 HERRAMIENTAS BÁSICAS DE UNITY

Page 2: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

Este documento está bajo una licencia de Creative Commons

Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional

Page 3: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

ÍNDICE

1. Game Objects

2. Prefabs

3. Luces y cámaras

4. Materiales

Page 4: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

UNITY DOCS

¡ Antes de comenzar, debes saber que toda la información relativa a la utilización de Unity la tienes en la página de Unity Docs:

https://docs.unity3d.com/Manual/index.html

Page 5: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

GAME OBJECTSCREAR OBJETOS Y AÑADIRLOS A LA ESCENA

Page 6: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

PRIMITIVAS EN UNITY

¡ Aunque lo normal es importar a Unity elementos elaborados en otros programas (modelos, animaciones, materiales y texturas, terrenos, etc.), Unity nos permite crear una serie de objetos 3D sencillos, así como otros elementos, disponibles en el menú Game Object (así como pinchando con el RMB en la ventana de Jerarquía)

¡ Podemos crear:¡ Objetos vacíos

¡ Objetos 3D: cubos, esferas, cápsulas, planos o incluso terrenos

¡ Objetos 2D: sprites y mallas

¡ Efectos, como sistemas de partículas que veremos

¡ Luces

¡ Audio y vídeo

¡ Elementos de Interfaz de Usuario (UI) como botones, textos, etc.

¡ Cámaras.

¡ Cada objeto creado, tendrá en la ventana de inspector sus datos básicos:¡ Nombre y casilla para desactivar (imprescindible nombrarlos correctamente)

¡ Etiquetas. Hay algunas disponibles, pero podemos crear nuevas

¡ Capa en la que se sitúa

¡ En el caso de prefabs, aparecerán otras opciones propias que veremos más adelante

Page 7: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

DISPONER LOS OBJETOS

¡ Todos los objetos tienen un componente llamado Transform, que determina las coordenadas en las que se ubica

¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena. Algunas opciones útiles:

¡ Se ubicará en la posición hacia la que mira la vista. Podemos moverlo de nuevo mediante Gam Object ->Move toView (Ctrl. + Alt. + F)

¡ También podemos mover y orientar el objeto con la vista (muy útil para luces y cámaras): Game Object -> Align withView (Ctrl. + Shift. + F)

¡ Si pulsamos Ctrl. al mover/escalar/… se hará en unidades absolutas

¡ Podemos duplicar cualquier objeto con las teclas Ctrl + D

¡ Una costumbre muy buena es nombrarlos correctamente, y si es necesario añadirles "tags", ya que nos serán de utilidad durante el juego (por ejemplo, para las colisiones)

Podremos cambiar su ubicación y forma a través de la ventana de propiedades o moviéndolo/rotándolo/escalándolo (W/E/R/T) directamente en la escena

Es importante especificar si las modificaciones se hacen respecto a los ejes locales del objeto, o del mundo, y si se usa su punto de pivote o el centro (si tiene hijos, será el centro de todos)

Page 8: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

LA JERARQUÍA

¡ Uno de los aspectos que debemos comprender de los objetos del proyecto es la jerarquía

¡ Un objeto puede tener uno o varios hijos

¡ Podemos arrastrar uno dentro de otro o bien seleccionar varios y en Game Object->Make Parent

¡ La opción inversa para eliminar la jerarquía (Game Object -> Clear Parent)

¡ Se pueden crear varias jerarquías, con varios hijos dependiento unos de otros

¡ De esta forma, si aplicamos cualquier modificación al padre, se trasladará al hijo

¡ Pero si modificamos el hijo, no afecta al padre

¡ Tendremos que tener en cuenta el punto de anclaje

¡ Veremos que esta forma de funcionar es muy útil en los objetos prefabricados

Uno tipo de objeto tremendamente útil son los objetos vacíos. Podemos crearlo directamente, o crear un objeto vacío hijo.

No tienen ninguna utilidad en sí mismos, pero nos permiten un gran número de cosas:

• Aplicar scripts que no estén vinculados a un GameObject en concreto

• Agrupar un gran nº de GameObjects a un mismo padre, para poder controlarlos a todos a través del elemento vacío, como si fuera una carpeta.

• Añadir componentes propios de otros objetos más complejos

Page 9: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

PREFAB

¡ Un prefab es un Objeto del Juego, con sus propios componentes y propiedades, que puede ser reutilizado en cualquier momento (instanciado)

¡ Se almacenan en la ventana de Proyecto¡ Cualquier elemento que creemos directamente en nuestro escenario puede ser añadido como prefab, si lo copiamos en

el proyecto (cambiará de icono a un cubo que indica que es un prefab)

¡ Lo ideal, crear una carpeta que almacene los prefabs

¡ Una vez añadido como prefab, podemos borrar el original del escenario, ya que podemos instanciarlo mediante código

¡ La gran ventaja, es que cualquier modificación que hagamos sobre él se trasladará a todas las instancias

¡ Podemos modificar el prefab directamente al abrirlo con un doble click (o pulsando la flecha que aparece en la ventana de jerarquía)-> se abrirá una nueva ventana en la escena

¡ Podemos aplicar las modificaciones del prefab a todas las instancias, en el desplegable Override

¡ Si modificamos una instancia, en cualquiera de sus componentes, podemos resetearlo o aplicarlo al prefab pulsando en el icono de configuración de ese comonente -> Modified component (o en el menú Game Object

¡ También podemos desvincularlo del Prefab en el menú Game Object

¡ Para editar las características del prefab, haremos doble click sobre él. En la parte superior de nuestra escena veremos que estamos dentro de un prefab, y para volver a la escena tenemos que hacer click sobre ella

¡ Podemos duplicar un prefab pulsando con el botón derecho y pulsando en “Create->PrefabVariant”

Estos botones solo aparecen en la ventana de inspector cuando lo seleccionado es un prefab.

Page 10: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

INSTANCIAR UN PREFAB

¡ Aunque lo veremos más adelante, es importante saber cómo se crean instancias de un prefab mediante código

¡ Para hacerlo, deberemos usar el métdo de "instanciar":

¡ Instatiate(Objeto, posición padre opcional, rotación opcional)

¡ La rotación es obligatoria si se indica la posición de un objeto padre

¡ Una opción es dar una rotación por defecto mediante "Quaternion.identity)

¡ Previamente deberemos crear una variable pública de tipo GameObject donde arrastraremos el prefab que queremos instanciar

¡ public GameObject myPrefab;

¡ Podemos crear tantas instancias como queramos, en la posición que queramos.

¡ En el script de la derecha, se crean 10 instancias a la derecha de un objeto de referencia,

¡ Además, podemos asignar esas instancias a una variable de tipo GameObject, lo que nos será muy útil

public GameObject myPrefab;public Transform referenceObject;

// Start is called before the first frame updatevoid Start(){

//Crea una instancia en la coordenadas 0,0,0Instantiate(myPrefab);

//Crea una instancia en la posición del objeto de referencia

Instantiate(myPrefab, referenceObject.position, Quaternion.identity);

//Crea 10 instancias, cada una de ellas en una nueva posición desplazada 10 en X

for (int i = 0; i < 10; i++){

Vector3 newPosition = referenceObject.position + new Vector3(i + 10, 0, 0);

Instantiate(myPrefab, newPosition, Quaternion.identity);

}}

Page 11: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

LUCES Y CÁMARAS

Page 12: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

CÁMARAS

¡ Lo que se muestra en el juego es lo que capta la cámara (o las cámaras).

¡ Por defecto siempre habrá una cámara en la escena, pero podemos crear más (debemos asignar un "display" a cada cámara, que será lo que se renderice al jugar)

¡ Al seleccionarlas, se mostrará un trapecio que muestra su campo de visión

¡ Una técnica muy útil es organizar los elementos en la escena, y una vez hecho, seleccionar la cámara y pinchar en Game Object -> Align withView

¡ La cámara tiene propiedades propias de una cámara:

¡ Projection: ortográfica o con perspectiva. Cada opción activará unas propiedades y desactivará otras

¡ Field of View: campo de cobertura, que nos permite que sea más angular o menos.. En caso de cámara ortográfica se corresponde con el Size

Page 13: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

CÁMARAS II

¡ Las cámaras no solo se usan para mostrar el juego, también pueden capturar lo que graban y proyectarlo sobre otro punto

¡ Esto puede ser útil para crear efectos como los de un espejo, un retrovisor o incluso cámaras de vigilancia

¡ Para crearlas, debemos capturar lo que captan y plasmarlo en un objeto vacío

¡ Otra opción es la de usar cámaras a pantalla partida

¡ En el inspector, tenemos la opción de Viewport Rect, que indica desde qué coordenadas de la pantalla renderiza

¡ Por defecto aparece que empieza a renderizar desde X=0, Y=0 (es decir, desde la esquina superior izquierda), y cubre el total del ancho (W=1) y el total del alto (H=1). Variando esos parámetros podemos conseguir una pantalla partida

Page 14: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

LUCES

¡ Las luces se encargan de dotar de personalidad a una escena.

¡ Existen 4 tipos de luces:

¡ Directional Light: Luz direccional que simula la luz proyectada por el sol.

¡ Point Light: Luz de punto que simula la luz emitida por una bombilla. Emite la luz en forma de esfera.

¡ Spot Light: Luz de foco que simula la luz de una linterna. Emite la luz en forma de cono.

¡ Area Light: Emite luz en un área rectangular. Es el tipo menos usada porque consume una gran cantidad de memoria

¡ Para añadir una luz, iremos al menú Game Object->Light y elegiremos el tipo de luz

¡ En el menú Window->Rendering podemos abrir la ventana de control de luces y la de Oclusión Culling

Page 15: UD2 Unity parte2 - Álvaro Holguera...coordenadas en las que se ubica ¡ Los datos de su ubicación, rotación o escala los podemos cambiar en esa ventana o manualmente en la escena

¡ En la ventana de inspector encontraremos las propiedades, las cuales dependerán del tipo de luz elegida.