Unity Manejo de Objetos Gráficamente
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;
- Todo GameObject debe de tener un componente Transform.
- Además, un GameObject puede tener componentes asociados al mismo y una jerarquía:
- 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.
- 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,...
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).
- Componentes de un GameObject
En el ejemplo se añadió dentro de la categoría Phisics => Box Collider. Vemos que dicho componente tiene unas propiedades que podemos modificar y además dispone de un checkbox el cual indica si queremos habilitar o no dicho componente. Al estar habilitado, un box-colider crear una 'caja' que rodea la figura 3D.
Los componentes pueden ser cambiados de orden 'arrastrando' el componente al lugar que queramos o pulsando sobre la rueda dentada y escogiendo la opción 'Move Up' o 'Move Down'. En la imagen podemos ver como el RigidBody está antes del BoxColider al cambiarlo de sitio. El orden en principio no importa salvo en dos casos: Image Effect Components y el orden de ejecución de los scripts (si tenemos varios) ya que irán en orden de arriba-abajo.
Jerarquía de objetos
- Pivot - Rotación - Traslación
- Establecer color y nombre a un Empty GameObject
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.
- Los assets están situados en el Project Window.
-- Ángel D. Fernández González -- (2018).