12/09/26
VR Fire Extinguisher Simulation
Unity 6 / XR Interaction Toolkit 3.x
1. Visión General del Proyecto
Una herramienta de entrenamiento en Realidad Virtual desarrollada en Unity 6 orientada a capacitar y evaluar al usuario en el uso correcto de extintores portátiles bajo el estándar internacional PASS (Pull, Aim, Squeeze, Sweep / Tirar, Apuntar, Presionar, Extender).
El proyecto integra dos entornos principales accesibles desde un área central (Hub):
- Learning Zone: Modo guiado e interactivo con desglose procedimental paso a paso.
- Training Zone: Modo de evaluación bajo estrés temporal simulando un conato de incendio en una oficina.
2. Mejoras y Especificaciones de Diseño
- Agarre Bimanual (Two-Handed Manipulation):
- Mano principal: Sujeta el asa/maneta de acarreo y activa la palanca de descarga.
- Mano secundaria: Sujeta y orienta la manguera/boquilla de expulsión para direccionar el agente extintor con precisión hacia la base del fuego.
- Inspección Previa de Seguridad (Manómetro):
- Validación del estado del extintor verificando que la aguja indicadora de presión se encuentre en la zona verde (rango operativo).
- Mecánica del Seguro / Pasador (Safety Pin):
- Precinto plástico y pasador metálico con física/socket interactivo. Requiere tracción deliberada para liberarlo antes de permitir el accionamiento de la palanca.
- Física y Dinámica de Fuego (Heat Points / Base Raycast):
- El fuego se modela mediante clústeres de salud térmica (
HP). Únicamente las partículas dirigidas a la base de las llamas reducen la intensidad; el rociado a media altura o en el humo tiene baja efectividad.
- El fuego se modela mediante clústeres de salud térmica (
- Recurso Limitado de Descarga:
- Capacidad finita de descarga continua (~12 a 15 segundos), simulando la autonomía real de un extintor de Polvo Químico Seco (PQS) de 5 a 10 lbs.
- Respuesta Háptica Progresiva:
- Vibración háptica diferenciada en gatillo y boquilla durante la descarga.
3. Patrones de Diseño & Buenas Prácticas (Clean Code)
- State Pattern: Control del flujo global (
HubState,LearningState,TrainingState) y de la máquina de estados del extintor (Mounted,Inspected,PinRemoved,ReadyToDischarge,Discharging,Empty). - Observer Pattern (Events / C# Actions): Desacoplamiento total entre sistemas mecánicos, partículas, UI en World Space y audio espacial.
- Component-Based Modular XR: Extensión estructurada de
XRGrabInteractableyIXRSelectInteractabledentro de XRI 3.x sin sobrecargar la física con reglas de negocio. - Object Pooling: Control eficiente de emisores de colisión para el agente extintor.
Copiado!