Saltar al contenido principal

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 Action desde un Button de UGUI (evaluaciones, menús, formularios en pantalla).
  • Para disparar una Action desde un Collider (por ejemplo OnTriggerEnter llamando a OnTriggerAction()).
  • Para disparar una Action desde un callback externo (lector de códigos QR, plugin nativo, evento de otro sistema) usando OnTriggerAction(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

PropiedadTipoDescripción
_uidstringUID 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");
}
}

Ver también