Rigidbody — это "физическое тело" вашего объекта. Разберём ключевые особенности:
⚙️ Основные параметры
- Mass (масса) – влияет на инерцию (1 = 1кг)
- Drag – сопротивление движению (0 = нет трения)
- Use Gravity – падать или нет ⬇️
- Is Kinematic – управляется кодом, а не физикой
🎯 Режимы столкновений
Discrete — Декорации (экономит ресурсы)
Continuous — Пули, снаряды (нет туннелирования)
Continuous Dynamic — Игрок, важные объекты
💡 Применение сил
// Прыжок
rb.AddForce(Vector3.up * 10, ForceMode.Impulse);
// Вращение
rb.AddTorque(Vector3.right * 5);
// Взрыв
AddExplosionForce(100, explosionPos, 5);
ForceMode:
Force – плавное ускорение (машина)
Impulse – мгновенный толчок (прыжок)
⚡️ Оптимизация
Sleep Mode – "усыпляет" неподвижные объекты
Freeze Position – блокировка осей
Interpolate – сглаживание дёрганий
⚠️ Частые проблемы
Туннелирование → Включите Continuous режим
Дрожание → Увеличьте Solver Iterations (до 6-8)
Лаги → Проверьте массу (0.1–10 кг оптимально)
🔗 Пример использования:
public class PlayerMovement : MonoBehaviour
{
private Rigidbody rb;
void Start() => rb = GetComponent<Rigidbody>();
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
rb.AddForce(Vector3.up * 5, ForceMode.Impulse);
}
}