---
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)