Unity Manejo de Objetos Gráficamente

De MediaWiki
Saltar a: navegación, buscar

Introducción

  • Un GameObject es cualquier elemento (asset) que se encuentre dentro de nuestra escena.
A nivel de programación (scripts) podemos referenciar cualquier objeto con el tipo de dato: public GameObject miGameObjet;


Unity3d gameobjects 1A.jpg
  • Todo GameObject debe de tener un componente Transform.
Además, un GameObject puede tener componentes asociados al mismo y una jerarquía:
Unity3d gameobjects 2.jpg


  • Un Asset es la representación de cualquier elemento que pueda ser utilizado en nuestro juego.
Un Asset puede obtenerse de un fichero creado fuera de Unity como un modelo 3D, un archivo de audio, una imagen o cualquier otro recurso que Unity sea capaz de importar al proyecto.
Ciertos Assets pueden ser creados directamente por Unity como los Animator Controller (para controlar diferentes animaciones), Audio Mixer (para gestionar diferentes fuentes de audio) o Render Texture (para visualizar cámaras o vídeos en una textura).
Fijarse que digo Asset y no GameObject. Un Asset non tiene componente transform, no ha sido añadido a nuestra escena.
Unity3d gameobjects 3.jpg
En la imagen se puede ver como el modelo 'Jupiter' tiene unas propiedades en la Ventana Inspector entre las que no se encuentra el componente 'Transform'.
Cuando arrastramos el modelo a la Scene, creamos un GameObject basado en el modelo.


  • Unity incorpora unos gameobjects denominados Unity-Native GameObjects.
Estos son:
  • Básicos 3D (3D Primitives)
  • Básicos 2D (2D Primitives)
  • Luces (Lights)
  • Terrenos (Terrain): Usado para crear terrenos con elevaciones del mismo.
  • Sistema de partículas (Particle Systems): Usado para crear efectos como rayos, nieve, humo y otros muchos
  • Fuentes de audio (Audio Sources): Música y efectos de sonido.
  • Zonas de reverberación (Reverb Zones): Efecto de reverberación (por ejemplo al entrar en una cueva).
  • Elementos de Interface de Usuario (UI Elements): Por ejemplo botones, cajas de texto,...


Unity3d gameobjects 1.jpg



Componentes

  • Los componentes van a estar asociados a los GameObjects.
Es una forma que tiene Unity de realizar una programación modular, reutilizando componentes (como los scripts).




Jerarquía de objetos

  • Comenté anteriormente la conveniencia/necesidad de utilizar GameObjects vacíos.
  • Conveniente ya que de esta forma podemos disponer en la escena de multitud de GameObjects agrupados en algún tipo de jerarquía que nos permita trabajar adecuadamente.
  • Necesario ya que al agrupar a los gameobjects del juego como 'hijos' de una gameobject, vamos a poder:
  • Activarlos / desactivarlos juntos.
  • Realizar operaciones de traslación-rotación-escalado que afectarán a todos los hijos a la vez.
  • Sirven como un recurso para referenciar a otros gameobjects de nuestra escena. Por ejemplo, puedo colocar un gameobject vacío como 'hijo' de un gameobject basado en un modelo importado y después colocarlo a cierta distancia. Podría hacer que la cámara siguiera a este gameobject 'vacío' para que siempre esté situado detrás del gameobject basado en el modelo.


Recordar que un gameobject vacío (empty gameobject) solo lleva un componente transform, no lleva ningún componente Mesh ya que no 'dibuja' ninguna figura.


  • Una vez creado podemos hacer que se visualice el nombre del GameObject con un color:



  • Pivot - Rotación - Traslación





Diferencia entre Assets/GameObjects

  • Yo lo comenté anteriormente, pero recordar que los Assets no tienen componente transform asociado.
  • Un asset es cualquier elemento que pueda ser utilizado en nuestro juego.
Un asset puede provenir de un modelo 3D creado con una herramienta externa a Unity, como Blender, un fichero de audio, una imagen, o cualquier otro tipo de recurso que pueda ser incorporado por Unity al juego. Unity también permite crear ciertos assets propios como el AnimatorController o el AudioMixed.
Los assets están situados en la Project Window.


  • Un GameObject es un asset situado en la escena.




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