TriggererAction
Resumen
Namespace Imova.Flux. Clase TriggererAction : MonoBehaviour. Es un componente de escena (no un singleton): se agrega a cualquier GameObject que deba producir un disparo de Action dentro del flujo.
Es el punto de entrada principal para conectar la interacción del jugador —clicks de UI, colliders físicos, callbacks de un lector QR, botones de debug, etc.— con el sistema de flujos, invocando internamente Action.TriggerAction con el UID configurado. Permite integrar el sistema en una escena sin escribir código adicional: basta con arrastrar el componente, asignar un UID en el Inspector y conectar un evento (por ejemplo Button.onClick) al método correspondiente.
Cuándo usarla
- Para disparar una
Actiondesde unButtonde UGUI (evaluaciones, menús, formularios en pantalla). - Para disparar una
Actiondesde unCollider(por ejemploOnTriggerEnterllamando aOnTriggerAction()). - Para disparar una
Actiondesde un callback externo (lector de códigos QR, plugin nativo, evento de otro sistema) usandoOnTriggerAction(string uidCustom). - Para construir botones de debug/skip que avanzan el flujo sin conocer de antemano el UID correcto del paso activo, usando
OnTriggerActionFromCurrentStep().
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
_uid | string | UID de la Action a disparar, configurable desde el Inspector. Es el valor que usa OnTriggerAction() por defecto. |
Métodos
void SetUID(string uid)
Asigna en tiempo de ejecución el UID de la Action que este componente disparará por defecto, sobrescribiendo el valor configurado en el Inspector.
string GetUID()
Devuelve el UID actualmente configurado en este componente.
virtual void OnTriggerAction()
Dispara Action.TriggerAction(_uid) usando el UID configurado en el Inspector (o asignado previamente con SetUID). Es el método pensado para conectarse directamente a eventos de Unity como Button.onClick o UnityEvents de colliders.
virtual void OnTriggerAction(string uidCustom)
Dispara Action.TriggerAction con un UID explícito, ignorando el valor de _uid. Útil cuando el UID a disparar se conoce recién en tiempo de ejecución (por ejemplo, el contenido leído de un código QR).
virtual void OnTriggerActionFromCurrentStep()
Trigger action from current step. IMPORTANT: Take the first trigger correct.
Dispara el primer trigger correcto del paso activo (FluxManager.Instance.CurrentStep), ignorando el UID configurado en el componente. Es útil para construir botones de debug o "skip" genéricos que no necesitan conocer el contenido del paso actual, pero asume que el paso tiene exactamente un trigger correcto: si el paso define varios, solo se dispara el primero de la lista.
Ejemplo de código
Conexión sin código desde el Inspector: agregar TriggererAction a un GameObject, asignar el UID de la acción en el campo _uid, y en el Button de UGUI correspondiente, en la lista OnClick(), arrastrar el GameObject y seleccionar TriggererAction.OnTriggerAction().
Alternativa por código, disparando un UID explícito:
public class QRCallbackHandler : MonoBehaviour
{
[SerializeField] private TriggererAction _triggerer;
public void OnQRCodeScanned(string qrContent)
{
_triggerer.OnTriggerAction("uid_custom");
}
}