Diferencia entre revisiones de «Unity Manejo de Objetos Gráficamente»
(No se muestran 3 ediciones intermedias del mismo usuario) | |||
Línea 64: | Línea 64: | ||
=Jerarquía de objetos= | =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. | ||
+ | <gallery caption="Creando un Empty GameObject" widths="350" heights="300px" perrow="2"> | ||
+ | Image:Unity3d_gameobjects_11.jpg| Podemos pulsar el botón derecho del ratón sobre la Hierarchy Window. | ||
+ | Image:Unity3d_gameobjects_12.jpg| Podemos presionar el botón '''Create''' de la misma ventana. | ||
+ | Image:Unity3d_gameobjects_12.jpg| O a través del menú principal. | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | * Una vez creado podemos hacer que se visualice el nombre del GameObject con un color: | ||
+ | <gallery caption="Cambiando el color a un Empty GameObject" widths="350" heights="300px" perrow="2"> | ||
+ | Image:Unity3d_gameobjects_14.jpg| Con el Empty GameObject seleccionado, presionamos en el icono del cubo de la ventana Inspect Window. | ||
+ | Image:Unity3d_gameobjects_15.jpg| Escogemos el color que queramos que tenga el nombre del GameObject. | ||
+ | Image:Unity3d_gameobjects_16.jpg| Podemos cambiar el texto asociado al gameobject que pasa a tener el color seleccionado. | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | |||
+ | <br /> | ||
* Pivot - Rotación - Traslación | * Pivot - Rotación - Traslación | ||
− | |||
Línea 73: | Línea 99: | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | =Diferencia entre Assets/GameObjects= | ||
+ | |||
+ | * Yo lo comenté anteriormente, pero recordar que los Assets <u>no tienen componente transform</u> 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. | ||
Revisión del 18:10 20 ene 2019
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).
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
- 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).