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
StepCheckerpara 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.
- El SDK oficial (
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.unityyFluxMobile_Test.unity: ejemplos en modo Secuencial, con formularios de login web/mobile.Custom State/FluxWEB_FreeMode.unity: ejemplo en modo Libre, que utilizaFreeMode_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 Data → FluxAssetData
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 Data → StepAssetData
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 info → PlatformAssetData
Ejemplo real de este proyecto en Data/Config/Platform Info Asset Data.asset:
ArchetypeName: TopDownNavModuleName: 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,PyPoPregunta. - Una
TriggerCorrectList: uno o más UIDs deActionque 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.prefabpara WebGL.Prefabs/FirebaseMobile.prefabpara 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
TriggererActiona cualquier objeto interactivo (un botón, un collider, el callback de un escaneo QR) y configura su_uidpara que coincida con el UID de unaActioncorrecta definida en tuStep. También puedes usarOnTriggerActionFromCurrentStep()para implementar un botón de "auto-completar/skip" útil en debug. - Agrega un componente
StepCheckera cualquier GameObject, configura_uidStep, y conecta susUnityEvents (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.