Как на самом деле создаются игры. Как сделать игру интересной и реализовать технически. А главное причём тут математика?
Разборы на пальцах, рабочий код, интерактивы. dev-math.ru
Сотрудничество: @it_bizdev
Post #35
575
🕳️ Sweep test и CCD: когда объект «проваливается» сквозь стену
Снаряд летит быстро. Кадр 1 — перед стеной. Кадр 2 — за стеной.
Физика не поймала пересечение — проверяла только конечную позицию.
Это туннелирование (tunneling).
Решение 1: SphereCast / RaycastAll
Двигай не точку, а луч или объём вдоль вектора движения.
Решение 2: CCD в Rigidbody
Rigidbody → Collision Detection → Continuous (для объекта)
или Continuous Dynamic (если сталкивается с другими быстрыми объектами).
Когда какой режим:
→ Discrete — медленные объекты, декор
→ Continuous — быстрые объекты (снаряды) vs статичные стены
→ Continuous Dynamic — быстрые vs быстрые
CCD дороже по CPU. Включай только там, где нужно.
#мат_геймдев #МатРазбор #физика #туннелирование
Снаряд летит быстро. Кадр 1 — перед стеной. Кадр 2 — за стеной.
Физика не поймала пересечение — проверяла только конечную позицию.
Это туннелирование (tunneling).
Решение 1: SphereCast / RaycastAll
Двигай не точку, а луч или объём вдоль вектора движения.
RaycastHit hit;
if (Physics.SphereCast(
transform.position,
col.radius,
velocity.normalized,
out hit,
velocity.magnitude * Time.fixedDeltaTime))
{
transform.position = hit.point + hit.normal * col.radius;
velocity = Vector3.Reflect(velocity, hit.normal) * bounciness;
}
else transform.position += velocity * Time.fixedDeltaTime;
Решение 2: CCD в Rigidbody
Rigidbody → Collision Detection → Continuous (для объекта)
или Continuous Dynamic (если сталкивается с другими быстрыми объектами).
Когда какой режим:
→ Discrete — медленные объекты, декор
→ Continuous — быстрые объекты (снаряды) vs статичные стены
→ Continuous Dynamic — быстрые vs быстрые
CCD дороже по CPU. Включай только там, где нужно.
#мат_геймдев #МатРазбор #физика #туннелирование
- 👍 4
- 🔥 3
- ❤ 2