Três formas de quebrar coisas
| Abordagem | Custo em runtime | Visual | Use para |
|---|---|---|---|
| Trocar por pedaços pré-fraturados | Baixo | Pedaços reais, iguais toda vez | Caixas, vasos, estátuas, paredes |
| Fatiar a malha em runtime | Alto | Cortes únicos | Cortar com espada como mecânica central |
| Partículas + esconder o objeto | O mais baixo | Sem pedaços reais | Objetos pequenos, distantes ou rápidos |
Para a maioria dos jogos, trocar é a resposta. O resto deste guia constrói isso.
1. Faça os pedaços
Divida a malha em fragmentos de antemão. No Blender, o add-on Cell Fracture faz isso; também dá para gerar os pedaços dentro da Unity com uma ferramenta de editor. Coloque os pedaços sob um pai, adicione um MeshCollider (convexo) e um Rigidbody a cada um e salve como prefab.
2. Troque no impacto
using UnityEngine;
public class Breakable : MonoBehaviour
{
public GameObject brokenPrefab;
public float breakSpeed = 4f; // impact speed needed to break
public float force = 300f, radius = 1.5f;
public float piecesLifetime = 8f;
void OnCollisionEnter(Collision c)
{
if (c.relativeVelocity.magnitude >= breakSpeed)
Break(c.GetContact(0).point);
}
public void Break(Vector3 point)
{
var broken = Instantiate(brokenPrefab, transform.position, transform.rotation);
foreach (var rb in broken.GetComponentsInChildren<Rigidbody>())
rb.AddExplosionForce(force, point, radius);
Destroy(broken, piecesLifetime);
Destroy(gameObject);
}
}Chame Break também do código das suas armas, para que balas e explosões quebrem objetos sem uma colisão física.
3. Mantenha rápido
- Remova os pedaços depois de alguns segundos, ou encolha-os, para os corpos de física não se acumularem.
- Coloque os pedaços numa camada que não colida com o jogador, para que os destroços nunca bloqueiem o movimento.
- Use pooling nos prefabs quebrados de objetos que quebram com frequência (garrafas num shooter).
- Menos pedaços, maiores, leem melhor nos estilos low poly e PSX, e custam menos.
Pronto para usar: o Sistema de Fratura
O Sistema de Fratura para Unity adiciona um botão Bake Fracture ao Inspector (quantidade de pedaços e seed), quebra por colisão ou por código, tem configurações de explosão e força direcional e grupos de fratura para quebrar um objeto de várias partes de uma vez. Combine com o Blocky Arsenal ou o pack militar PSX para ter com o que atirar, e com os Dungeon Props para coisas que valem a pena quebrar.
Perguntas frequentes
Troque pelos pedaços no momento da quebra: grave a pose atual com SkinnedMeshRenderer.BakeMesh se precisar e depois fratura isso. Para a maioria dos props, malhas estáticas bastam.
Colisores sobrepostos se empurram. Encolha levemente os colisores dos pedaços ou deixe-os convexos e sem sobreposição, e gere os pedaços com velocidade inicial zero antes de aplicar a força.
Quem escreveu
Imersa Studios cria os sistemas Unity, packs low poly e guias vendidos no itch.io. O código e as técnicas daqui vêm de lançar esses produtos. Saiba mais sobre o estúdio.



