Ação booleana informa valor atual, borda, horário e atividade. Veja como evitar cliques repetidos e comandos fantasmas entre dispositivos.
Resposta direta
A estrutura `XrActionStateBoolean` do OpenXR retorna quatro sinais complementares: estado atual, mudança desde a última sincronização, horário da última alteração e se a ação está ativa. Combinar `changedSinceLastSync` com `currentState` identifica bordas de pressionamento e soltura, enquanto `isActive` informa se há uma fonte vinculada e disponível. O padrão evita tratar um botão mantido como vários cliques e ajuda a desativar comandos quando controle, mão ou perfil de interação deixa de estar válido.
Estado mantido não é novo evento
Executar uma ação a cada frame enquanto o valor permanece verdadeiro cria múltiplas confirmações. Use a borda de subida para comandos discretos.
Borda de descida também tem semântica
Soltar pode encerrar arraste, gravação ou gesto. O horário da mudança permite ordenar e medir duração com o relógio do runtime.
Inativo não equivale a falso
Uma ação pode ficar indisponível porque não há fonte vinculada ou o app perdeu foco. A interface deve diferenciar ausência de input de escolha negativa.
Action abstraction protege portabilidade
Mapeie intenção, como confirmar ou cancelar, e deixe perfis de interação ligarem botão, gesto ou controle adequado por dispositivo.
Leitura Nexus
Centralize sincronização e transições de ações, registre bordas relevantes e teste perda de foco, troca de controlador e reconexão sem comandos fantasmas.
Perguntas frequentes
Como detectar um pressionamento único?
Verifique `changedSinceLastSync` e `currentState` como verdadeiros após `xrSyncActions`.
Para que serve lastChangeTime?
Ele registra no tempo do runtime quando o estado mudou, útil para duração e ordenação.
O que significa isActive falso?
A ação não está disponível por uma fonte ativa naquele momento; não deve ser interpretada simplesmente como botão solto.
Guias essenciais para aprofundar a decisão
Esta análise editorial foi produzida pela Nexus a partir das fontes oficiais abaixo, consultadas em 26 de outubro de 2026. O texto é original e interpreta implicações práticas para empresas.
- Khronos — XrActionStateBoolean: estado atual, mudança, horário, atividade e detecção de bordas.
- Khronos — xrSyncActions: sincronização de action sets e momento de atualização dos estados de input.
Data informada pela fonte principal: OpenXR 1.1.65 consultado em 26 de outubro de 2026; análise de padrão técnico.

