Estados
Los estados te permiten guardar distintos aspectos de un objeto y cambiar entre ellos. Úsalos para un interruptor de luz, una puerta, un resaltado o un producto en varios colores.
Un estado es una copia guardada de los ajustes del objeto: dónde está, su color, si es visible, qué animación tiene seleccionada. Cambia a un estado y el objeto recupera ese aspecto.
Cuándo usar un estado
| Lo que quieres | Qué usar |
|---|---|
| Un interruptor de luz: encendido y apagado | estados |
| Una puerta: cerrada, abierta, bloqueada | estados |
| Un producto en tres colores | estados |
| Un personaje que camina por una ruta | animación |
| Algo que cambia en una cantidad calculada | un patch o un script |
Una regla sencilla: un conjunto fijo de situaciones con nombre es trabajo para los estados. Todo lo que cambia de forma continua es trabajo para la animación.
Crear estados
- Selecciona el objeto.
- En el inspector, haz clic en + new component y elige States. El primer estado, Default, guarda el objeto tal como está ahora.
- Haz clic en + add state. El estado nuevo queda seleccionado.
- Cambia el objeto: muévelo, cámbiale el color, ocúltalo. El estado seleccionado va guardando tus cambios.
- Repite los pasos 3 y 4 para cada estado que necesites.
Para ver cómo queda un estado, haz clic en él en la lista.
Al editar el objeto cambias el estado seleccionado, no el objeto en sí. Es lo que quieres mientras creas estados. Pero si olvidas que hay un estado seleccionado, puede parecer que tu cambio «no se guarda» cuando cambias de estado.
Cambiar de estado
En un evento, usa el paso Set state. Elige el estado y, si quieres, una duración y un easing.
Con una duración, el cambio es suave. El objeto pasa poco a poco de donde está al aspecto guardado, sin saltos. Tienes una animación sin tener que crearla.
| Cambiar desde | Cómo |
|---|---|
| Un evento | el paso Set state |
| Un patch | el nodo set_states |
| Un script | escribe activeStateId en el componente States |
Reaccionar a un cambio de estado
Hay dos disparadores que se activan en el objeto cuyo estado ha cambiado:
| Disparador | Se dispara cuando |
|---|---|
| State active | el objeto ha entrado en el estado que elegiste |
| State inactive | el objeto ha salido de ese estado |
Cada evento vigila un estado, que eliges en su campo State. Así un objeto puede reaccionar de forma distinta a cada estado. Por ejemplo, una puerta puede mostrar un cartel al abrirse y otro al cerrarse, sin condiciones.
Un cambio de estado no llega a los padres del objeto, a diferencia de un toque.
Cambiar algunas cosas sin crear un estado
A veces quieres «como ahora, pero en rojo» sin crear un estado completo. Usa el paso Override properties. Aplica unos pocos valores una vez, como un estado temporal. Tiene los mismos ajustes de duración y easing.
Úsalo para un resaltado rápido al pasar el cursor o un destello cuando algo recibe un golpe. Reserva los estados de verdad para las situaciones que el objeto tiene realmente.
Qué guarda un estado
Un estado guarda los componentes del objeto. La posición, la rotación, la escala, el material, la visibilidad y todo lo demás cambian a la vez.
No guarda los hijos del objeto. Para cambiar un grupo, dale a cada objeto sus propios estados. Después cámbialos todos desde un mismo evento: el campo Target object del paso acepta una lista.
A qué prestar atención
- Un estado que se ha quedado seleccionado en el editor recibe tus cambios. Si un objeto vuelve una y otra vez a un aspecto antiguo, comprueba qué estado está seleccionado.
- Los estados y la animación en el mismo objeto entran en conflicto. Usa una cosa o la otra.
- Si quitas un componente, también desaparece de todos los estados.
- Si el estado seleccionado ya no existe, se usa el primer estado.
Siguiente: Patches — lógica que construyes con nodos.