--- title: "Obstáculo de navegação" version: snapshot-2026-10-09 engineGeneration: astra-current language: C# status: source-reviewed reviewedAt: 2026-10-09 appRelease: "0.3.0-preview.20261009" runtimeVerified: false platformEvidence: [] url: https://astraengine.com.br/pt-br/snapshot-2026-10-09/componentes/astra-navigation-obstacle/ --- # Obstáculo de navegação Recorta a malha onde o objeto está, em tempo de execução **Família:** Navegação · **Grupo:** Malha · **Identificador:** `astra.navigation.obstacle` · **Payload:** 1 :::note[Escopo da evidência] Este contrato foi extraído dos descritores compilados da engine, incluindo padrões resolvidos. A presença do contrato não substitui a validação do comportamento em um aparelho. ::: ## Para que usar Recorta a malha de navegação onde o objeto está, durante o Play. Use em portas, caixas móveis ou bloqueios temporários. Adicione ao objeto que bloqueia o caminho e escolha Caixa ou Cilindro com o tamanho real. O recorte só existe no Play e reconstrói apenas os tiles tocados. ## Criar e configurar Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Navegação** / **Malha** → **Obstáculo de navegação**. O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.NavObstacle](/pt-br/snapshot-2026-10-09/api/astra-components-navobstacle/). Recortar só parado remove o recorte enquanto o objeto se move e o recoloca depois de Tempo até parado; o Limiar de movimento decide o que conta como mover. A caixa gira com o objeto em Y. Objetos com Obstáculo não entram no bake como chão. **Guia relacionado:** [Guia de navegação](/pt-br/snapshot-2026-10-09/sistemas/navegacao/#obstáculos) ## Exemplo de uso Coloque um Obstáculo 1×2×4 m atravessando um corredor de 4 m: os agentes deixam de ter caminho. Desative o objeto em Play e o corredor volta a ter caminho no quadro seguinte. ## Dependências Nenhuma regra adicional declarada no schema deste componente. ## Conflitos - [Agente de navegação](/pt-br/snapshot-2026-10-09/componentes/astra-navigation-agent/): Um objeto é agente ou obstáculo, não os dois ## Edição e ciclo de vida | Operação | Contrato | |---|---| | Adicionar/remover em Play | ponto seguro | | Alterar propriedades em Play | ponto seguro | | Múltiplas instâncias | Não | | Versão do payload | 1 | Alterações em ponto seguro são aplicadas entre passos da simulação. Um componente exigido por outro não pode ser removido enquanto a dependência existir. Salvar a cena autoral e modificar o mundo de Play são operações distintas; veja [Play e cena autoral](/pt-br/snapshot-2026-10-06/conceitos/play-e-cena-autoral/). ## Propriedades Valores abaixo são resolvidos pelo descritor de um componente recém-criado. Campos por slot dependem dos recursos atribuídos. Um campo sem padrão significa que o descritor não fornece um valor independente de contexto. ### Forma | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Centro X**](#field-center-x)
`center_x` | número · m | 0 | -1000 … 1000 | | [**Centro Y**](#field-center-y)
`center_y` | número · m | 0 | -1000 … 1000 | | [**Centro Z**](#field-center-z)
`center_z` | número · m | 0 | -1000 … 1000 | | [**Tamanho X**](#field-size-x)
`size_x` | número · m | 1 | 0.01 … 1000 | | [**Tamanho Y**](#field-size-y)
`size_y` | número · m | 1 | 0.01 … 1000 | | [**Tamanho Z**](#field-size-z)
`size_z` | número · m | 1 | 0.01 … 1000 | | [**Raio**](#field-radius)
`radius` | número · m | 0.5 | 0.01 … 500 | | [**Altura**](#field-height)
`height` | número · m | 2 | 0.01 … 1000 | | [**Forma**](#field-shape)
`shape` | enumeração | Caixa | Caixa \| Cilindro |

Centro X · center_x

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Centro X**. **Uso e efeito:** Centro do recorte em X, no espaço do objeto, em metros. **Valor:** 0 · **Tipo:** número · **Unidade:** m · **Domínio:** -1000 … 1000.

Centro Y · center_y

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Centro Y**. **Uso e efeito:** Centro do recorte em Y, no espaço do objeto, em metros. **Valor:** 0 · **Tipo:** número · **Unidade:** m · **Domínio:** -1000 … 1000.

Centro Z · center_z

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Centro Z**. **Uso e efeito:** Centro do recorte em Z, no espaço do objeto, em metros. **Valor:** 0 · **Tipo:** número · **Unidade:** m · **Domínio:** -1000 … 1000.

Tamanho X · size_x

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Tamanho X**. **Uso e efeito:** Largura da caixa recortada, em metros (escala do objeto aplicada). **Valor:** 1 · **Tipo:** número · **Unidade:** m · **Domínio:** 0.01 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Tamanho Y · size_y

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Tamanho Y**. **Uso e efeito:** Altura da caixa recortada, em metros. **Valor:** 1 · **Tipo:** número · **Unidade:** m · **Domínio:** 0.01 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Tamanho Z · size_z

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Tamanho Z**. **Uso e efeito:** Profundidade da caixa recortada, em metros. **Valor:** 1 · **Tipo:** número · **Unidade:** m · **Domínio:** 0.01 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Raio · radius

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Raio**. **Uso e efeito:** Raio do cilindro recortado, em metros. **Valor:** 0.5 · **Tipo:** número · **Unidade:** m · **Domínio:** 0.01 … 500. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Altura · height

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Altura**. **Uso e efeito:** Altura do cilindro recortado, em metros. **Valor:** 2 · **Tipo:** número · **Unidade:** m · **Domínio:** 0.01 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Forma · shape

**Onde:** Inspector → **Obstáculo de navegação** → **Forma** → **Forma**. **Uso e efeito:** Caixa (gira com o objeto em Y) ou Cilindro (fica de pé). **Valor:** Caixa · **Tipo:** enumeração · **Domínio:** Caixa \| Cilindro. ### Recorte | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Limiar de movimento**](#field-move-threshold)
`move_threshold` | número · m | 0.1 | 0 … 100 | | [**Tempo até parado**](#field-stationary-time)
`stationary_time` | número · s | 0.5 | 0 … 60 | | [**Recortar só parado**](#field-carve-only-stationary)
`carve_only_stationary` | booleano | verdadeiro | verdadeiro \| falso |

Limiar de movimento · move_threshold

**Onde:** Inspector → **Obstáculo de navegação** → **Recorte** → **Limiar de movimento**. **Uso e efeito:** Deslocamento, em metros, que conta como movimento e refaz o recorte. **Valor:** 0.1 · **Tipo:** número · **Unidade:** m · **Domínio:** 0 … 100.

Tempo até parado · stationary_time

**Onde:** Inspector → **Obstáculo de navegação** → **Recorte** → **Tempo até parado**. **Uso e efeito:** Tempo parado, em segundos, para o recorte voltar quando Recortar só parado está ligado. **Valor:** 0.5 · **Tipo:** número · **Unidade:** s · **Domínio:** 0 … 60. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Recortar só parado · carve_only_stationary

**Onde:** Inspector → **Obstáculo de navegação** → **Recorte** → **Recortar só parado**. **Uso e efeito:** Tira o recorte enquanto o objeto se move e o recoloca quando ele para: menos reconstruções. **Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. ### Geral | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Ativo**](#field-enabled)
`enabled` | booleano | verdadeiro | verdadeiro \| falso |

Ativo · enabled

**Onde:** Inspector → **Obstáculo de navegação** → **Geral** → **Ativo**. **Uso e efeito:** Desligado devolve à malha a área recortada no quadro seguinte. **Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. ## Roadmap deste componente [Câmera e navegação](/pt-br/snapshot-2026-10-06/roadmap/camera-e-navegacao/). Presente na 0.3.0, sempre recortando. O modo "só desvio" da Unity (sem recorte) não existe. Sem data prometida. Os campos acima pertencem ao contrato existente; novas funções dependem do fechamento da família. Não há datas individuais prometidas para cada propriedade. ## Conferir na sua cena 1. Crie **Obstáculo de navegação** pelo fluxo indicado e resolva as dependências. 2. Altere uma propriedade por vez e observe o efeito esperado na cena. 3. Salve, reabra e confira os valores autorais. 4. Entre em Play e verifique o comportamento com os recursos reais do projeto. 5. Pare o Play e confira a cena autoral. Este é um roteiro de conferência; não representa um teste executado nesta publicação. ## Limitações da referência A tabela cobre os tipos de propriedade disponíveis no descritor de reflexão. Não presume persistência de campos transitórios, equivalência com outras engines ou suporte em todos os aparelhos. Recursos, coleções e operações podem exigir APIs específicas. **Referência de arquitetura registrada pela engine:** [documentação oficial](https://docs.unity3d.com/6000.0/Documentation/Manual/class-NavMeshObstacle.html). Essa referência não representa paridade funcional. ## Comandos e leituras em Play Os IDs abaixo são operações nativas do componente existente. Não são novos botões de autoria. Use a fachada C# correspondente para nomes e assinaturas; Conexão de evento oferece as ações compatíveis no seletor. Confira o componente e o mundo vivos antes de chamar. | Operação / ID | Uso e efeito | Argumentos | Retorno | |---|---|---|---| | **Recortando** · `is_carving` | Verdadeiro quando o recorte deste obstáculo está aplicado na malha | Nenhum | booleano | [Assinaturas da fachada NavObstacle](/pt-br/snapshot-2026-10-09/api/astra-components-navobstacle/#membros)