Saltar al contenido principal

Guía de Inicio Rápido

Esta guía te lleva paso a paso desde cero hasta tener una secuencia del Sistema de Flujos Imova corriendo en tu escena de Unity.

Paso 1: Requisitos

Antes de empezar, asegúrate de tener instaladas estas dependencias en tu proyecto:

  • DOTween: es usado internamente por StepChecker para su chequeo con delay. Es una dependencia obligatoria — sin ella el proyecto no compila.
  • SDK de Firebase: según la plataforma objetivo, tienes dos opciones:
    • El SDK oficial (Firebase, Firebase.Auth, Firebase.Database) para builds Android/iOS.
    • SimpleFirebaseUnity (basado en REST) para WebGL.
Versión recomendada

Según Packages/Firebase_SDK_12.3.0/README.txt, la versión recomendada actualmente es 12.3.0 para Android (probada también en versiones 9.1.0 hasta 9.6). La validación en iOS con 12.3.0 aún está pendiente.

Paso 2: Explora las escenas de demostración primero

Antes de crear tus propios assets, te recomendamos abrir y jugar las escenas de demo incluidas en el proyecto, ubicadas en Assets/_FluxSystemImova/Demo/Scenes/:

  • FluxWEB_Test.unity y FluxMobile_Test.unity: ejemplos en modo Secuencial, con formularios de login web/mobile.
  • Custom State/FluxWEB_FreeMode.unity: ejemplo en modo Libre, que utiliza FreeMode_FluxState.

Dale Play a cualquiera de ellas y observa la consola de Unity: FluxManager va registrando ahí la activación de cada paso y el resultado de los triggers a medida que interactúas con la escena.

Paso 3: Crea tus assets de configuración (ScriptableObjects)

Desde el menú de Unity Assets > Create > ScriptableObjects > Flux puedes crear los distintos ScriptableObjects que configuran el sistema:

Add Flux State DataFluxAssetData

Como referencia, la demo incluye Demo/Data/FREE Flux Config Data.asset ("Free mode"), configurado con:

  • Timer desactivado.
  • SuccessScore: 250.
  • MoveNextStepOnFailure: true (propio del modo Libre).

Contrástalo con Data/Config/FluxStates/Default Flux Config Data.asset, pensado para el modo Secuencial, donde el timer está activo y el manejo de foco de la aplicación también está activo.

Step > Add Step Store DataStepAssetData

El asset de la demo, Demo/Data/Demo Step Asset Data.asset, viene con su StepsList vacía a propósito, para que seas tú quien la complete con tus propios pasos.

Add Platform infoPlatformAssetData

Ejemplo real de este proyecto en Data/Config/Platform Info Asset Data.asset:

  • ArchetypeName: TopDownNav
  • ModuleName: TopdownFT

Paso 4: Define tus pasos y acciones

Con tu StepAssetData creado, completa su StepsList. Cada Step necesita:

  • Un UID único.
  • Un Type (TriggerType): QR, UI, Dialogo, EPP, Canvas, Trigger, PyP o Pregunta.
  • Una TriggerCorrectList: uno o más UIDs de Action que se consideran correctos para completar ese paso.

Opcionalmente puedes definir:

  • TimeToComplete.
  • Mensajes del Assistant (Success, Failure, Description).
  • Prefabs y sprites: Prefab2D, Prefab3D, Preview, background.

Paso 5: Agrega el prefab FluxManager a tu escena

Arrastra Assets/_FluxSystemImova/Prefabs/FluxManager.prefab a la jerarquía de tu escena.

Inspecciona sus hijos: bajo States encontrarás el FluxState activo (por ejemplo, uno llamado DEFAULT que usa Default_FluxState). Asigna ahí el FluxAssetData que creaste en el Paso 3.

Paso 6: Agrega el backend de datos (o trabaja offline)

Según tu plataforma objetivo, arrastra a la escena:

  • Prefabs/FirebaseWeb.prefab para WebGL.
  • Prefabs/FirebaseMobile.prefab para Android/iOS.

Si prefieres desarrollar sin backend, puedes trabajar offline usando FluxManager.Instance.LoadSequenceLocal(uid), que lee un JSON desde Resources/Sequences/<uid>.json.

Paso 7: Conecta tu escena sin escribir código

  • Agrega un componente TriggererAction a cualquier objeto interactivo (un botón, un collider, el callback de un escaneo QR) y configura su _uid para que coincida con el UID de una Action correcta definida en tu Step. También puedes usar OnTriggerActionFromCurrentStep() para implementar un botón de "auto-completar/skip" útil en debug.
  • Agrega un componente StepChecker a cualquier GameObject, configura _uidStep, y conecta sus UnityEvents (OnActiveStep, OnDeactivePreviousStep, OnStepNotFound) desde el Inspector para mostrar/ocultar UI, disparar animaciones, etc., según cuál sea el paso activo.

Paso 8: Inicia la secuencia por código (opcional)

Si necesitas más control sobre cuándo y cómo se inicia la secuencia, puedes hacerlo directamente por código:

FluxManager.OnGetsSequences += HandleSequencesLoaded;
FluxManager.Instance.GetSequences();

void HandleSequencesLoaded()
{
FluxManager.OnLoadedSequence += HandleSequenceLoaded;
FluxManager.Instance.LoadSequence("uid_de_tu_secuencia");
}

void HandleSequenceLoaded(bool isLoaded)
{
if (isLoaded)
{
FluxManager.Instance.InitializeSequence();
FluxManager.Instance.StartSequence();
}
}

Paso 9: Verifica que todo funciona

Suscríbete a FluxManager.OnActivateStep y FluxManager.OnTriggerActionSequence para loguear en consola cada evento importante mientras pruebas tu escena.

Al finalizar la secuencia, revisa FluxManager.Instance.Log (una lista de LogAction) para ver el detalle de las acciones ejecutadas y el puntaje obtenido.


¿Ya tienes tu primera secuencia funcionando? Continúa con Siguientes Pasos para conocer casos de uso reales, puntos de extensión y la referencia de API completa.