# Quest Vertical Slice - Stage Report

## A. O que foi alterado
- **Scripts de build (removido path hardcoded e padronizado output):**
  - `scripts/build_android_quest_apk_batchmode.zsh`
  - `scripts/build_windows_quest_build_batchmode.zsh`
- **Entry points de build (Android/Windows):**
  - `Assets/Editor/Android/QuestAndroidBuildEntry.cs`
    - Configurações técnicas Android/Quest via `PlayerSettings`
    - Exporta `builds/android/quest-debug.apk` (nome padronizado)
  - `Assets/Editor/Windows/QuestWindowsBuildEntry.cs`
    - Exporta build em `builds/windows/quest-test/` para conferência
- **Core Quest (vertical slice e inicialização sem Bootstrap):**
  - `Assets/Presentation/Quest/QuestPresentationController.cs`
    - garante registro de mocks + `AppSession` caso a cena tenha sido carregada sem `AppBootstrap`
    - adiciona driver/pose e ajusta demo curto no Android
- **Fechamento XR real (loader init + head pose real via InputTracking):**
  - `Assets/Presentation/Quest/QuestXRLoaderInitializer.cs`
  - `Assets/Presentation/Quest/QuestHMDPoseDriver.cs`
  - `Assets/Presentation/Quest/QuestXRRuntimeBootstrap.cs` (chama inicializador)
- **UX / legibilidade em headset (world-space UI):**
  - `Assets/Presentation/Quest/QuestWorldUIPanelLayout.cs` (escala, distância, tamanhos e alvos de raycast)
- **Dependências XR adicionadas:**
  - `Packages/manifest.json`
    - `com.unity.xr.management@4.5.4`
    - `com.unity.xr.openxr@1.7.0`
- **Documentação:**
  - `docs/QUEST_ANDROID_VERTICAL_SLICE.md` (ajuste de comando e caminho esperado)

## B. O que funciona no Quest (esperado com esta base)
Sem build/instalação executados neste ambiente, nada foi validado no headset aqui.

### Status por módulo (validação no headset)
`NÃO FEITO` = não foi possível gerar APK/log real nem validar no Quest neste ambiente.
- cena principal: `NÃO FEITO`
- HUD: `NÃO FEITO`
- hotspots: `NÃO FEITO`
- comparação: `NÃO FEITO`
- fechamento comercial: `NÃO FEITO`
- persistência local: `NÃO FEITO`
- input por ray: `NÃO FEITO`
- input por controller: `NÃO FEITO`
- head tracking: `NÃO FEITO`
- runtime XR real: `NÃO FEITO`

## C. O que ainda depende de implementação / validação no seu ambiente
1. Gerar a APK no seu Unity com OpenXR habilitado para Android (isso é pré-requisito para qualquer validação REAL no Quest).
2. Rodar no headset e confirmar:
   - se o runtime entra efetivamente em `RealXR`;
   - se o pose/head tracking acompanha o HMD;
   - se a interação via raio (colliders de panels) funciona com a câmera do XR;
   - se o input via controller (trigger/secondary) está mapeado em action profiles corretos do OpenXR.

## D. O que roda em fallback/editor e o que roda em XR real
1. **Fallback/editor:**
   - UI e vertical slice funcionam via seed + teclado (fallback do input).
2. **XR real (Quest):**
   - inicializador tenta ligar XR loader e o pose/head tracking usa `InputTracking` (via `QuestHMDPoseDriver`) quando `RuntimeMode == RealXR`.
   - raycast para UI world-space usa `Physics.Raycast` do `Camera` (que acompanha pose no headset).
   - trigger/secondary (quando disponíveis) usam `QuestXRInputReader` (reflexão em InputDevices).

## Nota sobre `PlayerSettings.virtualRealitySupported`
Nesta etapa, removemos a dependência explícita de `PlayerSettings.virtualRealitySupported` no entrypoint Android para reduzir ambiguidade de “stack XR legada”.

## E. Como gerar nova build
Pré-requisitos:
1. Unity 2022.3.0f1 (conforme `ProjectVersion.txt`)
2. Variável de ambiente `UNITY_EXECUTABLE` apontando para o executável do Unity.
3. Pacotes XR adicionados instalados no Unity (OpenXR + XR Management).

Android / Meta Quest:
```bash
./scripts/build_android_quest_apk_batchmode.zsh
```
- Saída esperada (padrão): `builds/android/quest-debug.apk`

Windows (opcional):
```bash
./scripts/build_windows_quest_build_batchmode.zsh
```
- Saída em: `builds/windows/quest-test/`

## F. Como instalar a APK
### ADB
1. No Quest: Developer Mode + USB debugging.
2. Conecte no cabo USB.
3. Instale:
```bash
adb devices
adb -d install -r "builds/android/quest-debug.apk"
```

Se houver mais de um dispositivo:
```bash
adb -s <serial> install -r "builds/android/quest-debug.apk"
```

### SideQuest
1. Abra o SideQuest.
2. Arraste e solte `builds/android/quest-debug.apk` para instalar.

