Застрял при реализации способа поворота твердого тела к точке с помощью Rigidbody.AddTorque

Итак, я застрял в том, что делать сейчас, потому что, как я уже сказал, я пытаюсь использовать Rigidbody .AddTorque, чтобы повернуть твердое тело к определенной точке, которую я собирался использовать, чтобы выровнять игрока с помощью гравитационного притяжения, чтобы он мог стоять вертикально. У меня есть входная часть кода, просто нет возможности повернуть плеер, чтобы выровнять его, не нарушая законы физики с помощью Quaternion.FromToRotation, а также возиться с моим контроллером персонажа, который я пытаюсь сделать полностью основанным на физике вращением, чтобы избежать любых других проблем.

Я поэкспериментировал с несколькими методами. Сначала я попытался адаптировать свой код контроллера персонажа, который использовал Rigidbody. .AddForce для перемещения игрока, а также гашения нежелательных движений, как Rigidbody.AddTorque в основном это Rigidbody.AddForce, но для вращений, однако, он был слишком слабым и просто болтался, когда я пробовал его, вот код для контроллера персонажа для расчета силы, необходимой для одной оси:

if(projected_speed.x*speed == relative_v.x)
{
applied_speed.x = 0f;
}
else if(Mathf.Sign(projected_speed.x)== -1)
{
applied_speed.x = relative_v.x - Mathf.Abs(projected_speed.x*speed);
}
else if (Mathf.Sign(projected_speed.x) == 1)
{
applied_speed.x = projected_speed.x*speed - relative_v.x;
}

Где проецируемая_скорость — это скорость, с которой должен работать контроллер, относительная_v — это относительная скорость, а применяемая_скорость — это скорость, которая будет фактически применяться в Rigidbody.AddForce. В любом случае, возможно, я не применил достаточно силы, так как игрок находится под гравитационным притяжением, но это, вероятно, заставило бы его перевернуться или что-то в этом роде, так что второе, что я попробовал, это ПИД-регулятор, и мне удалось найти страницу, которая объясняет это довольно хорошо, к сожалению, больше нет ссылки, но когда я попытался это потому, что его нужно настроить, я застрял на этом, и он просто не мог ничего сделать и просто катался по полу и иногда крутился, наверное, потому что не мог справиться с гравитацией, так что это не работа, так кто-нибудь знает, как я мог бы, наконец, сделать это и заставить моего персонажа выпрямляться в соответствии с гравитацией?


person PhonieZ    schedule 19.03.2021    source источник
comment
это помогает?   -  person Ruzihm    schedule 19.03.2021
comment
Спасибо, гораздо проще, чем ПИД-регулятор, жаль, что он не появился, сделал бы мою жизнь намного проще. Еще раз спасибо.   -  person PhonieZ    schedule 20.03.2021


Ответы (1)


Извините, что не указали, что моя проблема решена, нажмите здесь за ответ отдайте должное Рузиму.

person PhonieZ    schedule 05.07.2021