пока сделал так, что у колеса заморозил повороты не по z (изначально колесо в положении, что крутится по оси z)
и пишу
Используется csharp
wheel.transform.rotation = Quaternion.LookRotation(Vector3.Cross(player_rigid.velocity, new Vector3(0, 1, 0)));
то есть смотрит в сторону в сторону движения, пересечение нужно так как ориентация модели такая, что иначе смотрит не "катящейся" стороной, а "дыркой от бублика".
но такой подход убивает физику кручения по земле.
То есть, как понимаю, мне нужно колесо вращать на плоскости, образованной вектором движения и осью вращения, и она будет направлена "от поверхности" примерно. то есть наша ось Y грубо говоря, вокруг которой и надо повернуть. Но так как колесо все время катится, крутятся и его оси. Как все это совместить? не понимаю...
Как в 3dmax сделать можно, чтобы фиксировать вращение по локальной оси как бы, и в не зависимости от глобального поворота крутилось только по локальной оси?
Подобные задачи вообще так решаются? или другой подход какой-то... напрямую задавать velocity и rotation, без использования физики?