Tips y buenas practicas sobre Unity (Parte 2)

unity tips

11.Si arrastramos un objeto encima de otro en la vista de jerarquía (Hierarchy) esto establece un vinculo. Si un objeto esta vinculado a otro significa que es el padre o el hijo de ese objeto. El objeto arrastrado siempre quedará como hijo. Cuando un objeto es movido , rotado o escalado también sus hijos sufren estas modificaciones.

Podemos arrastrar un hijo y dejarlo arriba en la vista de jerarquía para desvincular este objeto.

12.Podemos organizar nuestra vista de jerarquía con objetos vacíos (empty gameObjects) como si fueran carpetas, colocamos una serie de objetos dentro de estos objetos , lo cual provocará una serie de hijos para este objeto vacío, esto nos permite colapsarlo en la vista de jerarquía. Recuerde cuando un objeto se convierte en hijo de otro sus transformaciones están sujetas a las del padre. Es por lo cual se recomienda poner el objeto vacío en posición 0,0,0.

Es una muy buena práctica organizar nuestra jerarquía, sobre todo cuando hay muchos objetos en la escena.

13.Las variables publicas son expuestas en el inspector, en donde podrás ajustar el valor en su propio componente después de haberlo agregado a un objeto. Esto se conoce como serializar el valor porque Unity guarda el estado modificado de la variable.

Si una variable es pública también puede ser accedida por otros scripts.

14.Un vector es un almacenamiento de multiples valores como una unidad.Por ejemplo un vector3 son 3 números flotantes (etiquetados x,y,z). Esto permite manejarlo como una única variable en vez de utilizar una variable para cada valor.

Algo similar ocurre con la utilización de arrays.

15.Es común colocar los controles de teclado y mouse en un mismo script, esto resulta más cómodo pero no es para nada flexible. Unity tiene un maravilloso sistema de componentes que debería aprovecharse. Para aprovechar la flexibilidad de este sistema debemos tratar de hacer scripts separados.

Al utilizar scripts separados podemos otorgar o denegar un determinado comportamiento a un objeto mediante el sistema de componentes.

16.Un ray es una imaginaria o invisible línea en la escena que comienza en un punto de origen y se extiende en una determinada dirección.

Esto se utiliza cuando utilizamos el Raycast u otros métodos similares.

17.Coroutines es la forma de ejecutar tareas sin que el programa espere hasta que estas sean finalizadas. Es decir se ejecuta el programa principal y la coroutina en simultáneo.

Esto seria como poner una tarea en segundo plano.

18.Render es la acción de la computadora que dibuja los píxeles de una escena 3D. Nuestro monitor es 2D es decir tiene x,y , pero lo que muestra es en 3D, lo que quiere decir que tiene x,y,z. Cuando el algoritmo que hace posible esto se está ejecutando , a esa acción se denomina rendering.

19.Finite State Machine (maquina de estado finito) es una estructura de código en la cual el estado actual de un objeto es seguido. Existen transiciones bien definidas entre los estados , y el código se comporta de manera diferente en base al estado.

Esto lo usamos en el sistema de animaciones Mecanim.

20.Un asset es cualquier archivo que se puede mostrar en la vista de proyecto; estos pueden ser imágenes 2D , modelos 3D, archivos de código, escenas y mucho más.

De ahi el nombre de su tienda Asset Store.

Si aún no has visto la edición anterior de esta saga has click aquí.

¿Buscas aprender más sobre desarrollo de videojuegos con Unity?

curso sobre desarrollo de videojuegos en unity
Pulsa en la imagen para ir al curso.

Tips y buenas practicas sobre Unity (Parte 1)

unity tips

1.Muchos desarrolladores se centran demasiado en el editor visual ; pero Unity tiene una limitación con este editor , ya que no permite editar código. Aunque Unity permite la conexión a cualquier IDE Externo como Monodevelop, Eclipse , Visual Studio, entro otros.

Personalmente como siempre trabajo con C#, utilizo Visual Studio.

 

2.Un objeto malla es un objeto visual en 3D. Las visuales en 3D son construidas por lineas y caras que forman a una maya. Para poder unir las lineas con las caras se utilizan vértices , los cuales contienen información sobre la posición , normales , UV , entre otras cosas.

Aclaración la líneas no pueden ser formadas sin vértices , y las caras no pueden ser formadas sin líneas, pero toda la información esta guardada en los vértices.

 

3.Unity permite que al darle “Play” en el editor el juego se ejecute , en realidad esto es un sistema de debug para que veamos si posee fallos nuestro trabajo , no solo que podemos ejecutarlo y probarlo ,sino también podemos ir a la pestaña de escena (scene) , seleccionar cualquier objeto de la escena y mirar en el inspector el comportamiento que esta teniendo en tiempo real.

Advertencia, todos los cambios realizados en la escena mientras estas en modo Play, no serán guardados.

 

4.La dificultad con los sistemas de control de versión (Tales como Subversion, Git y Mercurial) solían ser una debilidad importante, pero con la versión más reciente de Unity, eso ya no es problema. Es posible encontrar recursos de hace tiempo atrás, diciendo que Unity no funciona con control de versiones, pero los recursos más nuevos mencionan a los archivos de metadatos (Son el mecanismo que Unity introdujo para trabajar con sistemas de control de versión) y a cuales carpetas del proyecto se debe o no incluir en el repositorio.

Si no están familiarizados con los comandos de Git pueden usar un software llamado SourceTree. En mi caso yo utilizo los repositorios de Bitbucket.

 

5.Unity permite utilizar los 3 botones del mouse para un manejo mas fluido en la pestaña de escena (scene) , el primer botón se utiliza para seleccionar un objeto , el segundo se utiliza para orbitar en la escena y el botón central activa la herramienta “Pan”(Mano). Ademas en la pestaña de jerarquía (hierarchy) y proyecto (project) se utiliza el primer botón para seleccionar y el segundo para abrir opciones como si fuera Windows.

Además, con q,w,e,r ,t puedes cambiar el tipo de herramienta entre selección , traslación , rotación , escala , herramienta 2D.

 

6.En la pestaña de proyecto (project) existen carpetas y recursos que visualizamos. Estos archivos están directamente vinculados a la carpeta Assets de nuestro proyecto en el disco duro , por lo cual si agregamos archivos a esta carpeta Unity los sincronizara y si borramos también los borrara. Tener mucho cuidado de no borrar o mover esta carpeta porque su proyecto se puede quedar inutilizable.

Es común sincronizar esta carpeta assets para hacer los backups de tu proyecto.

 

7.Un frame es un solo ciclo del bucle principal del juego. Casi todos los videojuegos son construidos en base a un bucle en el núcleo del videojuego , en donde el código es ejecutado en ciclos mientras el juego corre. Cada ciclo incluye el dibujado de la pantalla.

FPS significa frames por segundo.

 

8.Monodevelop organiza los archivos en grupos llamado soluciones y genera una solución donde están todos los scripts ; usualmente no tienen que preocuparse por ello.

Esto mismo sucede con el IDE Visual Studio.

 

9.Los números de posición pueden ser cualquier unidad que desee. Siempre y cuando sean compatibles en toda la escena. La elección mas común para las unidades son metros y es lo que generalmente se escoje; pero aveces se suele usar “pies” como unidad, aunque hay muchos que también usan las “pulgadas”.

Tener en cuenta la unidad de medida ya que afecta directamente a la física del juego.

 

10.Siempre que perdemos de vista un objeto en la pestaña de escena (scene) , para encontrarlos debemos seleccionar nuestro objeto en jerarquía (hierarchy) y luego colocamos el mouse encima de la pestaña de escena (scene) y pulsamos “F” (focus) . Lo que hará es llevar nuestra vista de escena hacia el objeto que estamos buscando.

En caso de no encontrarlo en la vista de jerarquía tenemos un buscador en esta vista.

 

¿Buscas aprender más sobre desarrollo de videojuegos con Unity?

curso sobre desarrollo de videojuegos en unity
Pulsa en la imagen para ir al curso.