Saltar al contenido principal

Objetos y escenas

Todo tu proyecto está hecho de objetos, y las escenas deciden cuándo aparecen. Aquí verás cómo encajan los objetos, los componentes y las escenas.

«Objeto» y «entidad» son lo mismo

El editor dice objeto. El motor y la API de scripts dicen entidad (entity). En esta documentación usamos entidad solo cuando hablamos de código.

De qué está hecho un objeto​

Un objeto contiene dos tipos de cosas:

  • Componentes: son sus ajustes. Deciden qué es el objeto: su nombre, dónde está, qué aspecto tiene y a qué reacciona. Un objeto solo puede tener un componente de cada tipo.
  • Objetos hijo: otros objetos colocados dentro de él. Cada hijo tiene sus propios componentes.

Esta es una lámpara con cuatro componentes:

Objeto  "Lámpara"
├── Meta su nombre, si está activado, si es visible
├── Transform dónde está, cómo está girado, qué tamaño tiene
├── Model qué modelo 3D se dibuja
└── Events a qué reacciona

Son los nombres del motor. El inspector muestra Meta como General.

Y esta es la misma lámpara con una bombilla dentro. La bombilla es un objeto aparte, con sus propios componentes:

Objeto  "Lámpara"
└── Objeto "Bombilla" ← un objeto aparte
├── Transform ← con sus propios componentes
└── Light

Una escena real tiene este aspecto. Detrás de cada nombre van sus componentes, y los hijos aparecen sangrados debajo de su padre:

Objeto  "Salón"       ◆ Anchor          ← una escena: tiene un ancla
│
├── Objeto "Lámpara" ◆ Transform ◆ Model ◆ Events
│ └── Objeto "Bombilla" ◆ Transform ◆ Light
│
└── Objeto "Mesa" ◆ Transform ◆ Model ◆ RigidBody ◆ Collider

Todo lo que ves en este esquema es un objeto. Sus componentes deciden si es una escena, una lámpara o un cuerpo físico.

¿Componente u objeto hijo?

Usa un componente para una propiedad de este objeto. Usa un objeto hijo para algo independiente que debe moverse con él.

Si mueves la lámpara, la bombilla se mueve con ella, porque está dentro. Si quitas el componente de modelo de la lámpara, la bombilla no desaparece.

Crea objetos combinando componentes​

No hay una lista de tipos de objeto entre los que elegir. Combinas componentes hasta tener lo que necesitas:

Si le das a un objeto……obtienes
geometría + materialuna forma visible
una referencia a un modeloun modelo 3D importado
un componente de luzuna luz
un componente de textoun texto
un cuerpo rígido + un colisionadoralgo que la física puede mover
un anclauna escena
un script o un patchalgo con comportamiento

Por ejemplo, así se crea una pelota que rebota:

  1. Añade una geometría de esfera y un material. Ya puedes ver la pelota.
  2. Añade un cuerpo rígido y un colisionador. Ahora cae y rebota.
  3. Añade un script. Ahora puede hacer algo al tocar el suelo.

Cada componente añade una capacidad. Si quitas el componente, la capacidad se va con él.

Escenas, objetos y lógica del espacio​

Te vas a encontrar con tres tipos de objetos. Parecen distintos, pero todos son objetos con componentes diferentes:

Qué esTieneNo tiene
Una escenaun ancla e hijostransform
Un objeto normalun transform y lo que necesiteancla
Comportamiento del espacioun script o un patch, y ningún padretransform ni ancla

Una escena no tiene transform porque su posición viene del objeto real al que está anclada. El comportamiento del espacio no tiene transform porque no está colocado en el mundo. Es solo lógica que sigue funcionando.

Un componente de cada tipo

¿Necesitas tres materiales en un modelo? Usa los slots de su componente de material. ¿Necesitas dos de cualquier otra cosa? Usa objetos hijo. Una lámpara con dos bombillas es un objeto lámpara con dos hijos.

Además, cada objeto tiene un nombre para que puedas encontrarlo, y puede tener un padre: el objeto dentro del que está.

Activado y visible​

Estos dos interruptores se parecen en el inspector, pero hacen cosas distintas.

  • Desactivado saca el objeto de la experiencia. No se dibuja y no se puede tocar. Sus scripts se detienen y sus eventos no se disparan. Es como si el objeto no existiera.
  • Invisible solo hace que el objeto no se dibuje ni se pueda tocar. Sigue ahí: sus scripts siguen funcionando y, si tiene colisionador, la física sigue chocando con él (consulta qué cuenta como sólido).

Por ejemplo:

  • Una pared que no se ve pero sigue bloqueando al jugador: hazla invisible.
  • Un premio que aparece más tarde: déjalo desactivado hasta que lo necesites.

Padres e hijos​

Los objetos forman un árbol. Cuando mueves un padre, sus hijos se mueven con él y mantienen su posición respecto a él. Así se construye cualquier cosa con piezas: la carrocería de un coche con cuatro ruedas dentro se mueve como un solo coche.

Al borrar un objeto se borra todo lo que tiene dentro

También se borran sus hijos, y los hijos de sus hijos. Si quieres conservar alguno, arrástralo fuera antes.

No puedes meter un objeto dentro de algo que ya está dentro de él. El editor no lo permite.

Una escena es la raíz de su árbol. Todos los objetos que añades a una escena están dentro del objeto de la escena, directamente o dentro de otro objeto. Cualquier otro objeto sin padre no está en ninguna escena. Pertenece a todo el espacio, como se explica más abajo en Lógica para todo el espacio.

Escenas y anclas​

Una escena es un objeto con un ancla. El ancla decide cuándo aparece la escena:

AnclaTu escena aparece cuando…
imagela cámara reconoce una imagen impresa
qrse escanea un código QR
geoel visitante está en un lugar concreto
facese detecta una cara
surfaceel visitante la coloca en un suelo, una pared, un techo o una mesa
panoramase abre un entorno de 360°
3dde inmediato: una escena 3D normal, sin AR
VPS es una opción del ancla de superficie

VPS coloca el contenido con un mapa escaneado de un lugar real. No es un tipo de ancla aparte. Configura una escena de superficie y activa VPS.

Varias escenas en un mismo marcador​

Las escenas con el mismo disparador (la misma imagen, el mismo código QR o el mismo lugar) forman un grupo. En un grupo solo se muestra una escena cada vez.

Úsalo para contar una historia. El mismo póster abre el primer capítulo y, más adelante, el segundo. Solo cambias qué escena del grupo está activa.

El editor añade dos eventos para mostrar y ocultar una escena: on-detect la muestra y on-lost la oculta. Son eventos normales, así que puedes cambiarlos. Por ejemplo, puedes dejar el contenido en pantalla cuando el marcador sale del encuadre de la cámara. Los visitantes suelen preferirlo, porque si no, el contenido desaparece en cuanto les tiembla la mano.

Ajustes de una escena de superficie​

Las escenas de superficie tienen tres ajustes independientes. Es fácil confundirlos:

  • Qué superficies se aceptan: suelo, pared, techo, mesa.
  • Cómo se coloca el contenido: automáticamente sobre una superficie detectada o donde toque el visitante.
  • Qué motor de seguimiento se usa: solo importa en la web. En las apps nativas, este ajuste no tiene efecto.

Lógica para todo el espacio​

Un objeto con comportamiento y sin padre no pertenece a ninguna escena. Pertenece a todo el espacio. Sigue funcionando mientras las escenas aparecen y desaparecen, y recibe todos los eventos de cualquier parte del espacio.

Úsalo para un marcador de puntos, un controlador general o para recordar qué eligió el visitante. Un script dentro de una escena se detiene en cuanto esa escena se detiene.

Cómo etiqueta el editor los objetos​

El editor muestra etiquetas como model, primitive o text. Elige la etiqueta a partir de los componentes del objeto y los comprueba en este orden:

splat reference                → splat
model + skinning → animated model
model → static model
video → video ← se comprueba antes que geometry
text → text
audio → audio
light → light
geometry → primitive
anything else → object

Por eso un plano que reproduce un vídeo aparece como video y no como primitive. Solo puedes editar el material y la geometría en las primitivas y en los modelos estáticos.


Siguiente: Componentes: qué controla cada componente.