logo
Funciones avanzadas

Sincronizar Rigidbody

Patrón de sincronización física para objetos de Unity con autoridad local y observadores remotos.

Sincronizar Rigidbody

SincronizarRB está orientado a objetos cuyo movimiento depende de la física de Unity. El objetivo no es transmitir cada detalle del motor físico, sino mantener una representación suficientemente próxima entre propietario y observadores.

Modelo

Propietario
Rigidbody local

    ├── posición
    ├── rotación
    ├── velocidad
    └── velocidad angular


       Eco / red

     ┌─────┴─────┐
     ▼           ▼
 Observador A  Observador B

Autoridad

El propietario es quien debe producir el estado físico autoritativo. Los demás clientes reciben actualizaciones y las aplican a su copia.

Esto evita que dos motores de física distintos intenten corregir simultáneamente el mismo objeto.

Suavizado

Las actualizaciones de red llegan discretamente, mientras que Unity simula continuamente. Por ello un sincronizador físico normalmente combina:

  • recepción de muestras;
  • interpolación;
  • corrección cuando la diferencia supera un umbral;
  • actualización de velocidad para continuar la simulación local.

Cuándo utilizarlo

Es adecuado para:

  • vehículos;
  • proyectiles físicos;
  • objetos arrastrables;
  • props dinámicos;
  • cuerpos que necesitan continuidad visual.

No es la mejor solución para entidades que realmente deberían ser controladas por un estado lógico determinista.

No sincronices física sin diseñar autoridad

Enviar posición, velocidad y rotación desde todos los clientes crea una lucha de autoridades. Decide primero quién controla el cuerpo y qué datos son realmente necesarios.

Relación con TransformSuave

Para objetos sin simulación física, TransformSuave cubre una necesidad similar con una estrategia más sencilla de interpolación visual.

SincronizarRB.cs

Implementación actual.

TransformSuave

Consulta el suavizado de transformaciones no físicas.

On this page