Всем спасибо за советы) нашел интересное решение своей проблемы. Дело в том, что я работаю над физикой летательного объекта, который парит над землей на заданном расстоянии. Сила, требуемая для поднятия объекта над землей рассчитывается по четырем лучам, исходящим из крайних точек баунд бокса объекта. Я вспомнил, что если эту подъемную силу на одних точках увеличить, а на противоположных точках уменьшить, то засчет разности сил получится крен. Проверил, работает очень плавно и при любых наклонах. Еще буду проводить тесты, но пока данное решение работает отлично. Пруф код:
Используется csharp
Vector3 flpLift = flpHit.distance > (distAboveGround + 1.0f) ? -Vector3.up * inAirGravity : (upAxis * ((distAboveGround + Input.GetAxis("Horizontal") * zRotAmount) - flpHit.distance) * hovReactForce) - flpDamping;
Vector3 blpLift = blpHit.distance > (distAboveGround + 1.0f) ? -Vector3.up * inAirGravity : (upAxis * ((distAboveGround + Input.GetAxis("Horizontal") * zRotAmount) - blpHit.distance) * hovReactForce) - blpDamping;
Vector3 frpLift = frpHit.distance > (distAboveGround + 1.0f) ? -Vector3.up * inAirGravity : (upAxis * ((distAboveGround + Input.GetAxis("Horizontal") * -zRotAmount) - frpHit.distance) * hovReactForce) - frpDamping;
Vector3 brpLift = brpHit.distance > (distAboveGround + 1.0f) ? -Vector3.up * inAirGravity : (upAxis * ((distAboveGround + Input.GetAxis("Horizontal") * -zRotAmount) - brpHit.distance) * hovReactForce) - brpDamping;
flpHit, blpHit, frpHit, brpHit - лучи, через которые вычисляю подъемную силу