0% encontró este documento útil (0 votos)
4 vistas

resumen unity

Cargado por

jgabriele.uade
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas

resumen unity

Cargado por

jgabriele.uade
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

Unidad 1: concepto básicos

Variables
Son los contenedores de los valores que almacena y utiliza la computadora/programa. Es
un contenedor donde guardo el dato.
En C y C# hay 3 características:
- nombre (identificador)
- tipo (entero, caracter, string, bool o número real)
- valor (contenido)

Nombre: los nombres siguen ciertas reglas:


- Pueden contener minúsculas, mayúsculas, números y _
- Debe empezar con una letra minúscula (pq con mayúscula es para objetos).
- El guión bajo es un carácter.
- Las minúsculas y mayúsculas son considerados distintos a≠A.
- El nombre de una variable solo se escribe todo en mayúscula cuando es una clase.
BUENA PRÁCTICA: utilizar nombres representativos.

Declaración de variable:
Declaración: tipo nombre
Inicializarla: tipo nombre = valor
Asignación de valor a una variable: nombre = valor
LAS VARIABLES SÓLO TIENEN UN VALOR, SE TOMA EL ÚLTIMO VALOR

Todas las variables tienen parámetros que se ponen entre (). Si se pone la variable y ()
vacío, es porque no tiene parámetros.

int = tipo de dato numérico entero


float = números con coma (real también, pero no se usa)
unsigned se agrega para cuando es una variable sin signo (osea solo positivos)
long = tiene más memoria/espacio
short = tiene 4 bits (4 espacios/caracteres) sin signo
char = caracter
string = cadena de caracteres, se hace entre comillas “” o ‘’

tipos de variables: Públicas


Una variable declarada como Pública está disponible para todos los recursos después de su
creación. Todos los datos que pasan de una función a otra o de un script a otro deben
declararse como una variable pública

tipos de variables: Privadas


Una variable declarada como Private es visible sólo para el recurso en el que se crea. Por lo
tanto, si se crea una variable en un script o una función, solo se puede usar dentro de ese
recurso y no en ningún otro que pueda ser llamado por el recurso.

1
tipos de variables: DIFERENCIA
La diferencia entre una variable pública y una privada es que la primera es accesible desde
cualquier lugar del código, mientras que la segunda sólo es accesible dentro de la misma

Palabras reservadas
Hay un grupo de palabras que están reservadas y preasignadas para realizar determinada
tarea. No voy a poder nombrar una variable con estas palabras.
Suelen ser pocas (no mucho más de 50).

Comentarios
El programador/a querrá incluir en su código algunas palabras que puedan ser interpretadas
por otro humano pero no por el compilador.
El lenguaje C++ soporta 2 manera de insertar comentarios:
- Comentarios en una única línea: // comment
- Bloque de comentario: /* comment */

Tipos de datos numéricos

El tipo de dato le indica al compilador cuál será el dominio de una variable (todos los valores
posibles que podrá almacenar).
En particular, el tipo numérico es el conjunto de todos los valores numéricos.
Estos pueden representarse en dos formas distintas:
-Tipo numérico entero (integer)
-Tipo numérico real (real / float)

tipo de dato numérico: Números enteros

Los números enteros se pueden representar en 8, 16 o 32 bits, e incluso 64 bits, y eso da


origen a una escala de enteros cuyos rangos dependen de cada máquina

-Enteros cortos: –128 a 127


-Enteros: –32.768 a 32.767
-Enteros largos: –2147483648 a 2147483647

Además de los modificadores corto y largo, se pueden considerar sin signo (unsigned) y con
signo (signed).
-Sin signo: 0 .. 65.535 || 4294967296

tipo de dato numérico: Números reales

Los números reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un
número real consta de un entero y una parte decimal.

2
Ejemplos: 0.08 –52.321

3739.41 3.7452

–8.12 5.0

tipo de dato numérico: Notación científica

Existe un tipo de representación denominado notación exponencial o científica y que se


utiliza para números muy grandes o muy pequeños. Por ejemplo...

3000000000 m/s se puede representar como 3 x 108, que en C + + se escribe: 3E8.

Tipos de datos numéricos


float a = 9.7;
int b = 50;
unsigned int c= 30000;
unsigned short int d = 22;
long int e = -50000;
int speedOfLight = 3E8;

Operadores aritméticos
Un operador es un símbolo utilizado por un lenguaje de programación para operar valores.
Por ejemplo el operador de asignación es el signo “=”.
ESTA PARTE ES SUMA(+) / RESTA(-) / DIVISIÓN(/) / MULTIPLICACIÓN(*)

División por cero


Dividir un número por cero está estrictamente prohibido. En caso de estar escrito en nuestro
código, este no podrá ser compilado. En caso de ser el resultado de una operación en
runtime, esta operación ilegal, resultará en una exception.

Paréntesis
Prioridades
Al igual que en las ciencias matemáticas, en programación la multiplicación y la división es
prioritaria por sobre la suma y resta.
E.g.: 2 + 3 * 5 = ?
Paréntesis
El uso de paréntesis, permite priorizar que sub-expresiones son calculadas primero.
E.g.: (2 + 3) * 5 = ?

3
Tipos de datos de carácter y de cadena

tipos de datos: carácter


El tipo carácter es el conjunto finito y ordenado de caracteres que la computadora reconoce.
Un dato tipo carácter contiene un solo carácter.
Los caracteres que reconocen las diferentes computadoras no son estándar; sin embargo, la
mayoría reconoce los siguientes caracteres alfabéticos y numéricos:
- Caracteres alfabéticos (A, B, C, ..., Z) (a, b, c, ..., z)
- Caracteres numéricos (1, 2, ..., 9, 0)
- Caracteres especiales (+, -, *, /, ^, ., ;, <, >, $, ...)

tipos de datos: cadena

Una cadena (string) de caracteres es una sucesión de caracteres que se encuentran


delimitados por una comilla (apóstrofo) o dobles comillas, según el tipo de lenguaje de
programación. La longitud de una cadena de caracteres es el número de ellos comprendidos
entre los separadores o limitadores.

Ejemplos:
-'Choose your destiny!'
-'6 de Noviembre de 1985'
-“Sr. Ramirez”

Tipos de datos en C#
Existen varios tipos de datos más a los primitivos originales (no se llaman así, es para
distinguirlos de los que aparecieron en C original) que fueron agregados a C# para
complementar los faltantes en la lógica moderna.

Variables “Nullable” En C#, los tipos de valor no pueden ser null por defecto. Sin embargo,
usando el operador ?, puedes hacer que un tipo de valor sea nullable

int? edad = null;

Tipos Numéricos integrales

-byte: 8 bits sin signo (0 a 255)


-sbyte: 8 bits con signo (-128 a 127)
-short: 16 bits con signo (-32,768 a 32,767)
-ushort: 16 bits sin signo (0 a 65,535)
-Int: 32 bits con signo (-2,147,483,648 a 2,147,483,647)
-uint: 32 bits sin signo (0 a 4,294,967,295)
-long: 64 bits con signo (-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807)
-ulong: 64 bits sin signo (0 a 18,446,744,073,709,551,615)
-char: 16 bits para caracteres Unicode (0 a 65,535)

4
Tipos Punto flotante

float: 32 bits con signo, precisión simple


double: 64 bits con signo, precisión doble

Otros tipos Numéricos

decimal: 128 bits con signo, para cálculos financieros o monetarios

Tipo Booleanos

bool: Puede ser true o false

Tipo Valor especial

enum: Define un conjunto de constantes integrales

Tipos Referencia comunes

string: Una secuencia de caracteres Unicode


object: El tipo base para todos los tipos en C#. Cualquier tipo puede ser tratado como un
object.
class: Define una clase, que es un tipo de referencia que puede contener métodos,
propiedades, y otros miembros.
interface: Define un contrato que las clases o structs pueden implementar.
delegate: Representa un puntero a un método, es decir, una referencia a un método.

Otros Tipos de referencia

array: Un conjunto de elementos, todos del mismo tipo.


dynamic: Un tipo que permite el cambio de tipo dinámico, evaluado en tiempo de ejecución.
null: Un valor especial que indica que una variable de tipo de referencia no hace referencia a
ningún objeto.

ASCII CODE
La computadora guarda los caracteres como números.
A cada caracter le corresponde un número y viceversa.
En general, las computadoras utilizan un estándar denominado ASCII (American Standard
Code for Information Interchange). El código ASCII provee de 256 caracteres, pero nos
vamos a interesar en los primeros 128.
En particular, en este estándar las letras están ordenadas de la misma manera que el
Alfabeto Latino.
ASCII es extendido por otro estándar internacional denominado UNICODE.

5
Escape characters
Las secuencias de escape, o “escape characters”, son caracteres que tienen funcionalidades
especiales dentro de una cadena. El más utilizado es \n que nos permite realizar un salto de
línea:
#include <iostream>
int main()
{
std : : printf ("Iniciando programa...\n¡Bienvenido!\nHola Mundo");
}

El programa nos mostrará por pantalla:


Iniciando programa…
¡Bienvenido!
Hola Mundo

Indentación
Indentación se refiere al uso de espacios, tabuladores y saltos de línea para hacer que la
lectura del código sea más sencilla, y por consiguiente la capacidad de comprensión y
mantenimiento de este.
Es una excelente práctica para facilitar la lectura del código por OTRO/A PROGRAMADOR/A.

Code Styling
Un estilo de código o Code Style, es una serie de reglas o guías para la escritura de código.
Son convenciones que pueden ser propuestas por un lenguaje, tecnología, framework o
grupo de trabajo para facilitar la lectura del código y su comprensión.
Convenciones para nombres de variables y funciones (Naming convention):
-Camel Case: myCustomVariable
-Pascal Case: MyCustomVariable
-Hungarian Notation: nMyCustomVariable

Code Styling consejos

-Elegir y adoptar un code styling. Preferentemente utilizar el ya utilizado mayormente en el


lenguaje, tecnología o framework que estemos utilizando en ese momento.
-No escribir más de una instrucción por línea.
-Evitar más de 80 caracteres en una misma línea de código.
-Indentar el código.
-Utilizar llaves en todos los bloques de código, incluso aquellos de una sola línea.
-Hacer uso de todos los paréntesis que sean necesarios para hacer más claro el código.
-Está permitido el uso de espacio en blanco para alinear código.
-Usar comentarios cortos.
-Utilizar nombres descriptivos para las variables y funciones.

6
Unidad 2: funciones condicionales. Entrada y salida de datos

Funciones
Matemáticamente una función es una operación que toma uno o más valores llamados
argumentos y produce un valor denominado resultado:

En los lenguajes de programación, una función es una estructura de código o subprograma,


la cual tiene un nombre, puede o no tomar argumentos y retornar un resultado.
Cuando se programa una función a los argumentos se los denomina parámetros.

funciones Declaración

[modificador de acceso] tipo nombreFuncion([tipo nombreParámetro],...]) {


return valor;
}
funciones Invocación

nombreFuncion([nombreArgumento], [nombreArgumento]...]);

funciones Modificador de acceso


- public: Accesible desde cualquier lugar.
- private: Accesible solo desde dentro de la clase.
- protected: Accesible desde la clase y clases derivadas.
- internal: Accesible desde cualquier lugar en el mismo ensamblado.

Procedimientos
Un procedimiento o subrutina es un subprograma que ejecuta un proceso específico.
Ningún valor está asociado con el nombre del procedimiento, por consiguiente, no puede
ocurrir en una expresión.
Cuando se invoca el procedimiento, los pasos que lo definen se ejecutan y a continuación se
devuelve el control al programa que le llamó.

7
Librerías
Las funciones pueden encontrarse en librerías o formar parte de nuestro código, es decir,
podemos programar nuestras propias funciones.
Cada lenguaje ofrece un conjunto de librerías con funciones para hacer diversas tareas
(librería matemática, de entrada/salida, de strings, etc.).
Una librería es un conjunto de implementaciones funcionales y ya codificadas que ofrece
una interfaz para la funcionalidad que se invoca.
Permiten hacer nuestros programas más modulares y reutilizables, facilitando además
crear programas con funcionalidades complejas en pocas líneas de código.

Librería Incorporar
using <nombreLibrería>;

Ejemplo:
using System;
using System.Collections.Generic;

Entrada y salida de datos


Enviar información por parte del humano hacia un programa de computadora se denomina
input.
En la dirección opuesta, es decir cuando la computadora le da información al humano, se
denomina output.

Output
Una vez procesada una cierta información (el resultado del cálculo, el puntaje de un usuario,
un “frame” de video de la escena de un juego), necesitamos un canal que envíe esta
información al usuario en algún periférico asociado, como por ejemplo una pantalla o un
parlante.
Console.WriteLine() en particular, es un canal que nos permite mostrar valores por consola.
Console.WriteLine() se encarga de dos tareas:
-Convertir los valores de un determinado tipo a una representación que sea aceptable para el
humano.
-Transferir los valores convertidos a la pantalla.
int edad = 35;
Console.WriteLine(edad);

Input
Console.ReadLine(); es el método que nos provee la STL para el ingreso de variables por
consola. Se utiliza de la siguiente manera:
int edad;
Console.WriteLine("Por favor ingrese su edad: ");
// Se asigna el valor ingresado a la variable “edad”
edad = Console.ReadLine();

8
Propiedades estáticas
Puedes usar propiedades estáticas para encapsular acceso y modificación de valores:
public class ConfiguracionGlobal
{
public static string NombreAplicacion { get; set; } = "MiApp";
public static int Version { get; set; } = 1;
}

Condicionales
Un programador escribe un programa que hace preguntas. La computadora ejecuta el
programa y dará una respuesta.
Las computadoras conocen solo 2 tipos de respuestas: verdadero o false (true / false).
Para realizar estas preguntas, C# provee de una serie de operadores. El resultado de esta
operación, devolverá una variable del tipo “booleano”, que se corresponde al tipo “bool”.

Operador ternario
El operador ternario nos permite dada una condición devolver resultados distintos si esta es
verdadera o falsa.
condicion ? resultado_verdadero : resultado_falso

Operadores Incremento y decremento

En numerosas ocasiones necesitaremos incrementar o decrementar valores para realizar


ciertas operaciones o control de flujos.
Dichos operadores son “++” y “--”.

Ejemplos de uso:
contadorDeOvejas++;
diasParaElProximoFeriado--;

9
Unidad 3: Herramientas

Motores graficos: Unity, Unreal, Godot

¿Qué es un motor de juego?


-Facilita la creación de aplicaciones

- Parte de librerías de código prearmado

- Permite integrar los procesos de diseño a la implementación técnica

- Gestiona los gráficos, sonido, interactividad (scripts), física

Unity
•Basado en componentes

•Se usa mucho para juegos móviles, AR/VR, proyectos indies

•Ventajas: Intuitivo, muchos recursos, comunidad activa

•Desventajas: Difícil optimización en proyectos grandes

2D y 3D

Unreal Engine

•Gráficos de alta calidad

•Programación visual en nodos

•Se usa mucho para juegos AAA, simulaciones, medios

•Ventajas: Gráficos realistas, herramientas integradas

•Desventajas: Más demandante de hardware, más difícil de aprender, Sólo 3D

Godot

•Open source, gratuito, comunidad

•Se usa mucho para juegos indie, prototipos, experimentales

•Ventajas: No se instala, ultraliviano, muy rápido

•Desventajas: Menos documentado, menos flexible para gran escala

2D y 3D

10
Modelado 3D: Blender, 3D Studio max, Maya, Cinema 4D, ZBrush, Houdini

Blender: Puede hacer un poco de todo.


Modelado
Texturizado
Iluminación
Renderizado
Animación
Esculpido
Nodos
Simulaciones

3D Studio Max: Especializado en renderizado de arquitectura / interiores.


Modelado
Texturizado
Renderizado (Corona, Arnold, VRay)

Cinema 4D: Animación


Motion Graphics
Simulaciones de física
Integración con After Effects
Renderizado (Redshift, Octane)

ZBrush: Escultura. Es el mejor por lejos en esto porque optimiza bien el manejo de muchos
polígonos.

Maya: animación, personajes, rigging

Houdini: Efectos especiales


Simulación de física
Partículas
Fuego, agua, explosiones, etc.

Texturizado: Substance painter, Quixel Mixer

AR/VR: Vuforia, Spark, Spatial.

¿Por que no usar IA Generativa para modelados?


Hay algo en 3D llamado topología, la topología determina cómo se estructura y organiza la
geometría de un objeto en 3D.
Superficies NURBS, Estas superficies se crean mediante curvas suaves que generan
geometrías minimalistas y sin irregularidades.
Las mallas están hechas de polígonos, que son planos de geometría con tres o más lados
que conforman las caras de un objeto, compuestos por vértices.
Las IA generativas de 3D generan mallas densas y desprolijas.
¿Se pueden usar? Sí.
Pero con precaución.

11
Unidad 4. Herramientas de 3D - Texturas y geometria

Las texturas son imágenes, usualmente cuadradas.


Los materiales contienen a las texturas y tienen muchas propiedades configurables.
También llamados Shaders. Los Shaders son Assets que contienen código e instrucciones
para que la tarjeta gráfica ejecute. Materials referencia shaders, y configuran sus parámetros
(texturas, color, y demás).

Unity contiene algunos shaders integrados que siempre están disponible en su proyecto (por
ejemplo, el Standard shader).

Nodo difuso: un mapa difuso contiene la información del color de la textura. Define qué
color original tendrá la textura en una cierta posición. Usualmente es mate.

Nodo especular: un mapa especular define cuán fuerte brillará la superficie de la textura en
una cierta posición. La mayoría de los motores de render utilizan esta información para
definir la apariencia de los reflejos especulares. Sería como el sombreado.

Nodo displacement: Los mapas de desplazamiento son similares a los mapas de relieve
(bump), pero almacenan información de altura y generan profundidad real al añadir
geometría cuando se renderiza.

El mapeo de desplazamiento (displacement) es un método de texturización que se


diferencia del mapeo de paralaje (parallax), del mapeo normal (normal) y del mapeo en
relieve (bump) en que utiliza un desplazamiento de puntos (malla) en la superficie
texturizada para crear un efecto de profundidad y relieve. Es un desplazamiento real de los
vértices de la malla poligonal del objeto 3D sobre base de color (gradaciones de color gris)
de la textura. Los vértices se desplazan sea para arriba (con las degradaciones más claras
de color gris) sea para abajo (con las degradaciones más oscuras de color gris). Esto crea el
relieve real en la superficie del objeto.

Ambient occlusion:La oclusión ambiental es un método para aproximar qué tan brillante
debería ser la luz que incide sobre una parte específica de una superficie. Se utiliza para
simular sombras suaves en áreas donde la luz llega menos. En Photoshop, se coloca sobre
la capa difusa en "modo multiplicar" para integrarlo con el color base de la textura.

12
La oclusión ambiental es un método de iluminación y renderizado que se utiliza en escenas
3D para calcular la exposición de un punto en la escena, como sería el mapa de un juego, a
la iluminación ambiental. De este modo, la oclusión ambiental sirve para calcular las
sombras “globales” que surgirían de cualquier otro método de iluminación global que se
utilice en la misma escena, proporcionando un sombreado base sobre el que trabajar.

Normal: Los canales rojo, verde y azul de la imagen se utilizan para controlar la dirección de
la normal de cada píxel. El "normal wrap" simula tanto la dirección en la que la normal está
orientada como la altura, lo que proporciona un efecto más realista en la superficie, ya que
añade detalles en la forma en que la luz interactúa con la textura.

Caracteristicas shaders:
Diffuse: color base.
Roughness: aspereza. Menos roughness más “metalico”.
Normal: fingir relieve.

Mapa UV
Se “desdobla” la figura 3D sobre un plano 2D, y así se proyecta la textura.El mapeo UV es el
proceso de proyectar la topologia de una malla de un modelo 3D a un espacio 2D para
texturizar aún más el modelo
Si tuviera que aplicar una imagen a las UV y luego renderizar, la textura no se mostraría de
forma predeterminada. Entonces, para renderizar una imagen, debe:

Crear un Material para el objeto.

Indicar a Blender que use las texturas UV en caras cuando renderice.

Para crear un Material, debe hacer click en Agregar Nuevo Material en el contexto de
Sombreado.

Hay dos formas de decirle a Blender que use la textura UV al renderizar; la manera rápida y
la manera correcta.

La forma rápida es usar las coordenadas UV generadas. Las coordenadas generadas se


utilizan de forma predeterminada en todos los nodos de Textura, con la excepción de las
texturas de imagen que utilizan coordenadas UV de forma predeterminada. Para utilizar las
coordenadas generadas para las imágenes, utilice también la salida Generada del nodo
Coordenadas de Texturizado.

La forma correcta es usar Desplegar UV para generar manualmente las coordenadas UV.
Para usar el mapeo UV, use el Nodo Coordenadas de Texturizado (salida UV) o el Nodo
Mapa UV y seleccione el mapa UV a usar, «UVMap» por defecto.

Blender
Modo objeto: permite seleccionar cada objeto por separado.
Modo edicion: permite editar el objeto seleccionado.

Transformaciones basicas: mover (g), Rotar ®, Escalar (S)

Subidivision: permite generar más geometria y curvar la malla, partiendo de una malla de
pocos poligonos.

13
La clave en el 3D es optimizar, Para videojuegos / interactivos, es fundamental mantener una
cantidad baja de polígonos. Para dispositivos móviles, en algún punto entre 300 y 1500
polígonos por mesh va a dar buenos resultados, dónde para plataformas de escritorio el
rango ideal está cerca de 1500 a 4000.

Tipos de poligonos

El número de polígonos (polycount) es el número de superfecies, o caras, que tienen los


objetos 3D. Las versiones antiguas de Blender sólo soportaban objetos hechos de “quads”
(cuadriláteros — polígonos hechos de cuatro puntos) y “tris” (triángulos — polígonos hechos
de tres puntos).

En general, lo más conveniente es utilizar Quads (4). Los videojuegos los transforman a Tris
(3), pero es fundamental partir de una buena topología. Evitar N-gons(5)

ctrl f vs ctrl j

J -> crea aristas sobre caras existentes.

F -> crea caras entre aristas vacias y aristas entre vertices.

Merge: une vertices duplicados.

P: separa las mallas.

Unidad 5. Introduccion a Unity

¿Que es unity?

Unity es un motor de desarrollo de videojuegos y entornos interactivos que permite crear

14
experiencias en 2D y 3D.

Ofrece una plataforma versátil y potente para diseñar y programar juegos, simulaciones y
aplicaciones en realidad aumentada y virtual. Su popularidad proviene de su facilidad de
uso, flexibilidad y soporte multiplataforma.

Unity destaca en AR por su integración con Vuforia, facilitando el desarrollo de aplicaciones


de realidad aumentada.

Ofrece una interfaz accesible y un ecosistema amplio, en contraste con Unreal, que está
más centrado en gráficos avanzados y no tiene una integración AR tan fluida.

¿Que es vuforia?

Vuforia es una plataforma de desarrollo de realidad aumentada (AR) que permite


superponer contenido digital sobre el mundo real. Ofrece herramientas para crear
aplicaciones AR interactivas utilizando reconocimiento de imágenes, objetos y entornos.
Integrado con Unity, facilita la implementación de experiencias AR avanzadas.

Un SDK (Software Development Kit) es un conjunto de herramientas, bibliotecas y


documentación que permite a los desarrolladores crear aplicaciones para una plataforma
específica. Facilita la integración de funcionalidades y servicios en el software, como APIs,
controladores y ejemplos de código.

Como instalar unity

Descargar Unity Hub: Visita el sitio web oficial de Unity y descarga el instalador de Unity
Hub.

Ejecutar el instalador: Abre el archivo descargado y sigue las instrucciones en pantalla para
instalar Unity Hub en tu computadora.

Iniciar Unity Hub: Una vez instalado, abre Unity Hub y crea una cuenta o inicia sesión con tu
cuenta existente.

Agregar versiones de Unity: Dentro de Unity Hub, puedes instalar diferentes versiones de
Unity según tus necesidades para comenzar a trabajar en tus proyecto.

Se puede configurar la licencia gratuita (Unity Personal) poniendo que tus ingresos son
menores a 100.000 USD.

Build SupportUna build es nuestra aplicación ejecutable. Hacer builds de Android es más
fácil que iOS, ya que esta última opción requiere utilizar una Mac para completarla.

Para crear un proyecto en Unity, abrí Unity Hub y seleccioná "Nuevo Proyecto". Elegí la
plantilla según el tipo de desarrollo, como 2D o 3D. Poné un nombre al proyecto y elegí la
ubicación donde lo querés guardar. Finalmente, hacé clic en "Crear" para generar el entorno
de trabajo adecuado. Nosotros usaremos 3D.

15
Nota: Esta cuenta no es una nube, los proyectos se guardan localmente. Para transportarlos,
se puede usar un disco externo, un pendrive con bastante espacio, o bien exportar pequeños
paquetes con algunos objetos para abrirlos desde una computadora que ya tenga el
proyecto (lo vemos más adelante).

UNITY

Jerarquía

El panel de Jerarquía en Unity muestra todos los objetos presentes en tu escena. Acá podés
ver y organizar los objetos en una estructura de árbol, lo que permite agruparlos y gestionar
su relación.
Los objetos pueden ser “hijos” unos de otros. Es decir, que si su objeto padre se mueve, ellos
también.
El panel de Proyecto tiene todos nuestros assets. Esto incluye modelos 3D, texturas,
materiales, etc.

Escena

Acá visualizamos nuestro espacio 3D.

Nota: En Unity, el eje Y es el vertical.


Podemos orientarnos en modo Global o Local.
Shading Mode: Usaremos shaded.
Visibilidad de elementos.
Acá podemos activar o desactivar la skybox, niebla, y otros efectos.
Cada escena de Unity (como por ejemplo, los niveles de un videojuego) son archivos aparte.

Inspector
Contiene todas las propiedades y parámetros que modificaremos, así como los
componentes.

Game View
Es una pestaña al lado de Scene, y nos muestra la visión de la cámara.

Game objects

Todos los elementos de nuestra escena son GameObjects. Podemos agregar objetos
básicos para prototipar.

16
Escenas
Cada escena de Unity (como por ejemplo, los niveles de un videojuego) son archivos aparte.

Exportar desde blender

Formato FBX funciona bien.


Usar estas configuraciones.

Recordar aplicar escalas y usar medidas reales.


Si traemos un archivo .blend, lo editamos en blender y repercute en Unity en tiempo real

Importar
Podemos arrastrar nuestro archivo fbx al panel de proyecto. Si traemos un archivo .blend, lo
editamos en blender y repercute en Unity en tiempo real

Import settings

Cuando traemos un asset, nos deja configurar muchas cosas.

Podemos remapear los materiales según los que trajo, reemplazandolos por materiales de
Unity.
También podemos extraer los que trajo y utilizarlos.

Navegacion y herramientas principales

Mover: W. se puede mover como un juego con wasd y el mouse para girar la camara.
Rotar, E
Escalar: R.
Enfocar objeto: F para encuadrar en el viewport y Ctrl + Shift + F hace que el objeto camara
lo enfoque.
Orbitar objeto: alt + arrastrar.

Componentes
Transformar:
Define la Posición, Rotación y Escala del objeto. Tiene en cuenta su Origen.

Chequear que la escala esté en 1,1,1

Mesh renderer

Configura su visibilidad en cámara y su interacción con la iluminación.

Animator

Se le pone a un objeto para que sea animado.

Requiere de un Animator Controller, que dentro tendrá los Animation Clips (Lo veremos más
adelante)

17
Material
Al aplicarlo a un material aparece como un componente.

Otros componentes
Collider:
Crea una caja (u otra figura) que marca un límite a su alrededor.

Esto hace que nos choquemos con ese objeto, o bien que al atravesarlo ocurra algo (Este
segundo caso es que sea Trigger)

Audio source
Podemos configurarlo para que los objetos emitan sonidos.

Va acompañado de un Audio Listener en la cámara.

Script
Cuando creemos scripts, se pondrán al objeto como componentes.

Nuestras variables públicas (ya vamos a verlo) aparecerán como propiedades.

Materiales

Crear materiales:
Podemos crear materiales o usar los extraídos del modelo.

Siempre conviene rearmar los materiales en Unity, así es más controlable.

No suelen venir iguales del software de 3D que utilicemos.

Propiedades: Acá podemos poner los mapas de textura que ya estuvimos trabajando.

Para colocar materiales tuyos tenes que tener el albedo, metallic, normal, height y ambient
oclussion. estos mapas se colocan y activamos el normal map, Hace falta marcar la imagen
como tal, seleccionandola en el panel de Proyecto y viendo su inspector.

Animación

Blender

Ventajas: Blender es una herramienta poderosa para crear animaciones complejas y


detalladas. Ofrece un control exhaustivo sobre los movimientos, deformaciones y detalles
de la animación.

Unity

Ventajas: Unity permite crear animaciones básicas directamente dentro del motor, lo cual
puede ser conveniente para animaciones simples o ajustes rápidos. También es útil para
animaciones que deben integrarse estrechamente con la lógica del juego o la interacción en
tiempo real.

18
para sacar la ventana d animacion ponemos CTRL 6

Crear animation clip: es donde se guardan los keyframes. Con él se crea el animation
controller
Hay que seterar eso en el componente como un animator.

¿Qué pasa dentro del animation controller?


Es lo que se llama máquina de estados

El rectángulo naranja contiene la animación.

En las flechas podemos definir un flujo, con condiciones.

Estas condiciones dependen de triggers y otras configuraciones que veremos más adelante.

Por el momento solo usaremos una.

¿Y si animo en Blender?
Se sincronizará acá. Puedo usar este clip, y crear el animation controller y el componente
animator a mano.

APK son las siglas de Android Application Package y es uno de los términos que más se
repiten en cualquier proyecto de apps. Se trata de un archivo ejecutable que contiene todos
los datos que se necesitan para instalar y hacer funcionar una aplicación Android.

19

También podría gustarte