--- title: "Corpo físico" version: snapshot-2026-10-06 engineGeneration: astra-current language: C# status: source-reviewed runtimeVerified: false platformEvidence: [] url: https://astraengine.com.br/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/ --- # Corpo físico Massa e resposta física **Família:** Física 3D · **Grupo:** Corpos · **Identificador:** `astra.physics.body` · **Payload:** 4 :::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 Massa e resposta física Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios. ## Criar e configurar Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Corpos** → **Corpo físico**. O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.PhysicsBody](/pt-br/snapshot-2026-10-06/api/astra-components-physicsbody/). ## Exemplo de uso Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações. ## Dependências Nenhuma regra adicional declarada no schema deste componente. ## Conflitos - [Personagem](/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/): Incompatível com personagem cápsula ## Edição e ciclo de vida | Operação | Contrato | |---|---| | Adicionar/remover em Play | não permitido | | Alterar propriedades em Play | ponto seguro | | Múltiplas instâncias | Não | | Versão do payload | 4 | 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. ### Corpo | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Massa kg**](#field-mass)
`mass` | número · kg | 1 | 0.01 … 1000000 | | [**Atrito**](#field-friction)
`friction` | número | 0.5 | 0 … 1 | | [**Restituição**](#field-restitution)
`restitution` | número | 0 | 0 … 1 | | [**Sensor sem resposta**](#field-sensor)
`sensor` | booleano | falso | verdadeiro \| falso | | [**Permitir repouso**](#field-allow-sleep)
`allow_sleep` | booleano | verdadeiro | verdadeiro \| falso | | [**Movimento**](#field-motion)
`motion` | enumeração | Estático | Estático \| Cinemático \| Dinâmico |

Massa kg · mass

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Massa kg**. **Uso e efeito:** Massa do corpo dinâmico em kg; influencia resposta a força/impulso. **Valor:** 1 · **Tipo:** número · **Unidade:** kg · **Domínio:** 0.01 … 1000000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Atrito · friction

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Atrito**. **Uso e efeito:** Atrito nos contatos; compare deslizamento com o mesmo par de superfícies. **Valor:** 0.5 · **Tipo:** número · **Domínio:** 0 … 1.

Restituição · restitution

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Restituição**. **Uso e efeito:** Restituição nos contatos; controla ressalto conforme a combinação física. **Valor:** 0 · **Tipo:** número · **Domínio:** 0 … 1.

Sensor sem resposta · sensor

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Sensor sem resposta**. **Uso e efeito:** Participa como sensor/sobreposição; não é uma superfície sólida de contato. **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.

Permitir repouso · allow_sleep

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Permitir repouso**. **Uso e efeito:** Permite dormir quando o corpo pode ficar em repouso. **Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Movimento · motion

**Onde:** Inspector → **Corpo físico** → **Corpo** → **Movimento**. **Uso e efeito:** Escolhe autoridade estática/cinemática/dinâmica no domínio do corpo. **Valor:** Estático · **Tipo:** enumeração · **Domínio:** Estático \| Cinemático \| Dinâmico. ### Início | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Velocidade inicial X**](#field-velocity-x)
`velocity_x` | número · m/s | 0 | -1000 … 1000 | | [**Velocidade inicial Y**](#field-velocity-y)
`velocity_y` | número · m/s | 0 | -1000 … 1000 | | [**Velocidade inicial Z**](#field-velocity-z)
`velocity_z` | número · m/s | 0 | -1000 … 1000 | | [**Giro inicial X · rad/s**](#field-angular-x)
`angular_x` | número · rad/s | 0 | -1000 … 1000 | | [**Giro inicial Y · rad/s**](#field-angular-y)
`angular_y` | número · rad/s | 0 | -1000 … 1000 | | [**Giro inicial Z · rad/s**](#field-angular-z)
`angular_z` | número · rad/s | 0 | -1000 … 1000 |

Velocidade inicial X · velocity_x

**Onde:** Inspector → **Corpo físico** → **Início** → **Velocidade inicial X**. **Uso e efeito:** Velocidade linear inicial/autorada do corpo, eixo X. **Valor:** 0 · **Tipo:** número · **Unidade:** m/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Velocidade inicial Y · velocity_y

**Onde:** Inspector → **Corpo físico** → **Início** → **Velocidade inicial Y**. **Uso e efeito:** Velocidade linear inicial/autorada do corpo, eixo Y. **Valor:** 0 · **Tipo:** número · **Unidade:** m/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Velocidade inicial Z · velocity_z

**Onde:** Inspector → **Corpo físico** → **Início** → **Velocidade inicial Z**. **Uso e efeito:** Velocidade linear inicial/autorada do corpo, eixo Z. **Valor:** 0 · **Tipo:** número · **Unidade:** m/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Giro inicial X · rad/s · angular_x

**Onde:** Inspector → **Corpo físico** → **Início** → **Giro inicial X · rad/s**. **Uso e efeito:** Velocidade angular do corpo, eixo X. **Valor:** 0 · **Tipo:** número · **Unidade:** rad/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Giro inicial Y · rad/s · angular_y

**Onde:** Inspector → **Corpo físico** → **Início** → **Giro inicial Y · rad/s**. **Uso e efeito:** Velocidade angular do corpo, eixo Y. **Valor:** 0 · **Tipo:** número · **Unidade:** rad/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Giro inicial Z · rad/s · angular_z

**Onde:** Inspector → **Corpo físico** → **Início** → **Giro inicial Z · rad/s**. **Uso e efeito:** Velocidade angular do corpo, eixo Z. **Valor:** 0 · **Tipo:** número · **Unidade:** rad/s · **Domínio:** -1000 … 1000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. ### Amortecimento | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Amortecimento linear**](#field-linear-damping)
`linear_damping` | número | 0.05 | 0 … 10 | | [**Amortecimento angular**](#field-angular-damping)
`angular_damping` | número | 0.05 | 0 … 10 | | [**Multiplicador da gravidade**](#field-gravity-factor)
`gravity_factor` | número | 1 | -100 … 100 |

Amortecimento linear · linear_damping

**Onde:** Inspector → **Corpo físico** → **Amortecimento** → **Amortecimento linear**. **Uso e efeito:** Amortecimento de velocidade linear. **Valor:** 0.05 · **Tipo:** número · **Domínio:** 0 … 10. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Amortecimento angular · angular_damping

**Onde:** Inspector → **Corpo físico** → **Amortecimento** → **Amortecimento angular**. **Uso e efeito:** Amortecimento de velocidade angular. **Valor:** 0.05 · **Tipo:** número · **Domínio:** 0 … 10. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Multiplicador da gravidade · gravity_factor

**Onde:** Inspector → **Corpo físico** → **Amortecimento** → **Multiplicador da gravidade**. **Uso e efeito:** Multiplica gravidade mundial deste corpo 3D. **Valor:** 1 · **Tipo:** número · **Domínio:** -100 … 100. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. ### Simulação | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Limite linear**](#field-max-linear-velocity)
`max_linear_velocity` | número · m/s | 500 | 0.001 … 100000 | | [**Limite angular**](#field-max-angular-velocity)
`max_angular_velocity` | número · rad/s | 47.12389 | 0.001 … 100000 | | [**Iterações de velocidade**](#field-solver-velocity-steps)
`solver_velocity_steps` | número | 0 | 0 … 255 | | [**Colisão contínua**](#field-continuous-collision)
`continuous_collision` | booleano | falso | verdadeiro \| falso |

Limite linear · max_linear_velocity

**Onde:** Inspector → **Corpo físico** → **Simulação** → **Limite linear**. **Uso e efeito:** Limite de velocidade linear do corpo. **Valor:** 500 · **Tipo:** número · **Unidade:** m/s · **Domínio:** 0.001 … 100000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Limite angular · max_angular_velocity

**Onde:** Inspector → **Corpo físico** → **Simulação** → **Limite angular**. **Uso e efeito:** Limite de velocidade angular do corpo. **Valor:** 47.12389 · **Tipo:** número · **Unidade:** rad/s · **Domínio:** 0.001 … 100000. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Iterações de velocidade · solver_velocity_steps

**Onde:** Inspector → **Corpo físico** → **Simulação** → **Iterações de velocidade**. **Uso e efeito:** 0 usa as iterações do mundo; aumenta custo por ilha de contato **Valor:** 0 · **Tipo:** número · **Domínio:** 0 … 255. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Colisão contínua · continuous_collision

**Onde:** Inspector → **Corpo físico** → **Simulação** → **Colisão contínua**. **Uso e efeito:** Varredura linear Jolt; não detecta varredura apenas angular **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. ### Restrições | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Travar posição X**](#field-freeze-position-x)
`freeze_position_x` | booleano | falso | verdadeiro \| falso | | [**Travar posição Y**](#field-freeze-position-y)
`freeze_position_y` | booleano | falso | verdadeiro \| falso | | [**Travar posição Z**](#field-freeze-position-z)
`freeze_position_z` | booleano | falso | verdadeiro \| falso | | [**Travar rotação X**](#field-freeze-rotation-x)
`freeze_rotation_x` | booleano | falso | verdadeiro \| falso | | [**Travar rotação Y**](#field-freeze-rotation-y)
`freeze_rotation_y` | booleano | falso | verdadeiro \| falso | | [**Travar rotação Z**](#field-freeze-rotation-z)
`freeze_rotation_z` | booleano | falso | verdadeiro \| falso |

Travar posição X · freeze_position_x

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar posição X**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Travar posição Y · freeze_position_y

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar posição Y**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Travar posição Z · freeze_position_z

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar posição Z**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Travar rotação X · freeze_rotation_x

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar rotação X**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Travar rotação Y · freeze_rotation_y

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar rotação Y**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Travar rotação Z · freeze_rotation_z

**Onde:** Inspector → **Corpo físico** → **Restrições** → **Travar rotação Z**. **Uso e efeito:** Eixos do mundo; bloquear todos exige corpo estático **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. ## Roadmap deste componente [Física 3D e motores](/pt-br/snapshot-2026-10-06/roadmap/fisica-3d/). Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta. 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 **Corpo físico** 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-Rigidbody.html). Essa referência não representa paridade funcional.