---
title: "Projétil"
version: snapshot-2026-10-28
engineGeneration: astra-current
language: C#
status: source-reviewed
reviewedAt: 2026-10-28
appRelease: "0.4.0-preview.20261028"
runtimeVerified: false
platformEvidence: []
url: https://astraengine.com.br/pt-br/snapshot-2026-10-28/componentes/astra-effects-projectile/
---
# Projétil
Anda pela frente; no primeiro acerto cria o impacto, solta os rastros e some
**Família:** Efeitos · **Grupo:** Comportamentos · **Identificador:** `astra.effects.projectile` · **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
Move o objeto para a frente; no primeiro acerto cria o Impacto, solta os rastros configurados e some. Converte o script de projétil dos pacotes de efeitos.
Adicione ao objeto do projétil. Defina Velocidade, Vida e Raio do teste de acerto, escolha os recursos Impacto e Disparo (prefabs) e, em Soltar 1..4, os filhos de rastro que devem continuar no mundo depois do acerto.
## Vindo de outra engine
Na Unity, o conceito mais próximo está em [Collider.OnCollisionEnter](https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Collider.OnCollisionEnter.html). A Astra estudou essa referência; os campos e o comportamento são os desta página, sem paridade garantida. Palavras que a busca de Adicionar componente aceita: `Projectile`, `ProjectileMover`, `Bala`, `Tiro`, `Magia`, `Bola`, `de`, `fogo`.
## Criar e configurar
Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Efeitos** / **Comportamentos** → **Projétil**.
O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.Projectile](/pt-br/snapshot-2026-10-28/api/astra-components-projectile/).
Impacto virado para o atirador orienta o efeito de volta para quem atirou; Giro do impacto corrige prefabs modelados em outro eixo. Disparo é criado na origem quando o projétil nasce.
**Guia relacionado:** [Importação de pacotes](/pt-br/snapshot-2026-10-06/versoes/preview-0-4-0/#importação-de-pacotes)
## Exemplo de uso
Bola de fogo: Velocidade 15 m/s, Vida 5 s, Raio 0,1; Impacto = prefab de explosão; Soltar 1 = filho Trilha. Instanciada pelo script a 1 m à frente do jogador, ela anda, acerta a parede, cria a explosão no ponto e a trilha se desfaz sozinha.
## Dependências
Nenhuma regra adicional declarada no schema deste componente.
## Conflitos
Nenhuma regra adicional declarada no schema deste componente.
## 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.
### Recursos do projeto
Estes seletores ficam no componente e não entram na contagem dos campos numéricos. Use recursos registrados do projeto; nome ou caminho externo não substitui uma referência válida.
| Recurso | Onde | Tipo | Uso |
|---|---|---|---|
| **Impacto** · `impact` | Inspector → Projétil → Ao acertar | prefab | Prefab criado no ponto do acerto e destruído quando as partículas dele terminam |
| **Disparo** · `muzzle` | Inspector → Projétil → Projétil | prefab | Prefab criado na saída (clarão do disparo) e destruído quando termina |
### Projétil
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Velocidade**](#field-speed)
`speed` | número · m/s | 15 | 0 … 10000 |
| [**Vida**](#field-lifetime)
`lifetime` | número · s | 5 | 0.05 … 3600 |
| [**Raio**](#field-radius)
`radius` | número · m | 0.1 | 0 … 100 |
| [**Ativo**](#field-enabled)
`enabled` | booleano | verdadeiro | verdadeiro \| falso |
| [**Frente**](#field-forward-axis)
`forward_axis` | enumeração | +Z (Astra) | +Z (Astra) \| −Z (Unity) |
Velocidade · speed
**Onde:** Inspector → **Projétil** → **Projétil** → **Velocidade**.
**Uso e efeito:** Avança pela frente do objeto em Play
**Valor:** 15 · **Tipo:** número · **Unidade:** m/s · **Domínio:** 0 … 10000.
Aceita tween numérico via contrato de propriedade. Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Vida · lifetime
**Onde:** Inspector → **Projétil** → **Projétil** → **Vida**.
**Uso e efeito:** Destruído depois deste tempo mesmo sem acertar nada
**Valor:** 5 · **Tipo:** número · **Unidade:** s · **Domínio:** 0.05 … 3600.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Raio · radius
**Onde:** Inspector → **Projétil** → **Projétil** → **Raio**.
**Uso e efeito:** Raio da esfera que testa o acerto contra os colisores da cena
**Valor:** 0.1 · **Tipo:** número · **Unidade:** m · **Domínio:** 0 … 100.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Ativo · enabled
**Onde:** Inspector → **Projétil** → **Projétil** → **Ativo**.
**Uso e efeito:** Desligado, o projétil para onde está
**Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Frente · forward_axis
**Onde:** Inspector → **Projétil** → **Projétil** → **Frente**.
**Uso e efeito:** +Z é a frente da Astra; −Z é a frente de um efeito importado da Unity
**Valor:** +Z (Astra) · **Tipo:** enumeração · **Domínio:** +Z (Astra) \| −Z (Unity).
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
### Impacto
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Afastamento do impacto**](#field-hit-offset)
`hit_offset` | número · m | 0 | -10 … 10 |
| [**Giro do impacto X**](#field-rotation-offset-x)
`rotation_offset_x` | número · ° | 0 | -360 … 360 |
| [**Giro do impacto Y**](#field-rotation-offset-y)
`rotation_offset_y` | número · ° | 0 | -360 … 360 |
| [**Giro do impacto Z**](#field-rotation-offset-z)
`rotation_offset_z` | número · ° | 0 | -360 … 360 |
| [**Impacto virado para o atirador**](#field-face-shooter)
`face_shooter` | booleano | falso | verdadeiro \| falso |
Afastamento do impacto · hit_offset
**Onde:** Inspector → **Projétil** → **Impacto** → **Afastamento do impacto**.
**Uso e efeito:** O impacto nasce esta distância para fora da superfície
**Valor:** 0 · **Tipo:** número · **Unidade:** m · **Domínio:** -10 … 10.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Giro do impacto X · rotation_offset_x
**Onde:** Inspector → **Projétil** → **Impacto** → **Giro do impacto X**.
**Uso e efeito:** Diferente de zero, o impacto usa este giro fixo
**Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Giro do impacto Y · rotation_offset_y
**Onde:** Inspector → **Projétil** → **Impacto** → **Giro do impacto Y**.
**Uso e efeito:** Diferente de zero, o impacto usa este giro fixo
**Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Giro do impacto Z · rotation_offset_z
**Onde:** Inspector → **Projétil** → **Impacto** → **Giro do impacto Z**.
**Uso e efeito:** Diferente de zero, o impacto usa este giro fixo
**Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Impacto virado para o atirador · face_shooter
**Onde:** Inspector → **Projétil** → **Impacto** → **Impacto virado para o atirador**.
**Uso e efeito:** O impacto gira com o projétil (meia-volta); desligado, encara a superfície
**Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
### Ao acertar
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Soltar 1**](#field-detach-0)
`detach_0` | referência | Nenhum | qualquer objeto · abaixo deste objeto |
| [**Soltar 2**](#field-detach-1)
`detach_1` | referência | Nenhum | qualquer objeto · abaixo deste objeto |
| [**Soltar 3**](#field-detach-2)
`detach_2` | referência | Nenhum | qualquer objeto · abaixo deste objeto |
| [**Soltar 4**](#field-detach-3)
`detach_3` | referência | Nenhum | qualquer objeto · abaixo deste objeto |
Soltar 1 · detach_0
**Onde:** Inspector → **Projétil** → **Ao acertar** → **Soltar 1**.
**Uso e efeito:** Filho que fica na cena quando o projétil some (rastro, fumaça)
**Valor:** Nenhum · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Soltar 2 · detach_1
**Onde:** Inspector → **Projétil** → **Ao acertar** → **Soltar 2**.
**Uso e efeito:** Filho que fica na cena quando o projétil some (rastro, fumaça)
**Valor:** Nenhum · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Soltar 3 · detach_2
**Onde:** Inspector → **Projétil** → **Ao acertar** → **Soltar 3**.
**Uso e efeito:** Filho que fica na cena quando o projétil some (rastro, fumaça)
**Valor:** Nenhum · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
Soltar 4 · detach_3
**Onde:** Inspector → **Projétil** → **Ao acertar** → **Soltar 4**.
**Uso e efeito:** Filho que fica na cena quando o projétil some (rastro, fumaça)
**Valor:** Nenhum · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Em Play: avança pela frente com consulta esférica à física, cria Disparo e Impacto (prefabs destruídos ao fim das partículas), solta os filhos marcados e some; Vida máxima Capacidade necessária: `render.effects.projectile`; veja [estado do renderer](/pt-br/snapshot-2026-10-06/roadmap/capacidades-do-renderer/).
## Roadmap deste componente
[Objetos, Behaviors e composição](/pt-br/snapshot-2026-10-06/roadmap/objetos-e-scripts/). Presente na 0.4.0. Gravidade, ricochete e teleguiado não existem.
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 **Projétil** 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/ScriptReference/Collider.OnCollisionEnter.html). Essa referência não representa paridade funcional.