坚持实施一种将刚体旋转到 Rigidbody.AddTorque 点的方法

Stuck Implementing A Way To Rotate A Rigidbody Towards A Point With Rigidbody.AddTorque

所以我现在有点卡住了,因为正如我所说的,我正在尝试使用 Rigidbody.AddTorque to rotate a rigid body towards a certain point, which I was going to use to align a player with a gravitational pull so they can be upright. I have got the input part of the code, I just don't have a way to rotate the player to align with it, without violating the laws of physics with Quaternion.FromToRotation 并且也弄乱了我的角色控制器,我正在尝试使完全基于物理的旋转变得明智避免任何其他问题。

我尝试了几种方法,首先我尝试调整我的角色控制器代码,它使用 Rigidbody.AddForce to move the player and also dampening unwanted movements, as 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;
}

其中projected_speed是控制器想要的速度,relative_v是相对速度,applied_speed是[=14=中实际应用的速度]. 无论如何,也许我没有使用足够的力,因为玩家处于重力作用下,但这可能会使它翻转或发生其他事情,所以我尝试的第二件事是 PID controller,我成功了找到一个解释得很好的页面,遗憾的是不再有 link,但是当我尝试这个因为你必须调整它时,我被困住了,它就是做不到任何东西,只是在地板上滚动,有时会旋转,可能是因为它无法应对重力,所以那是行不通的,所以有谁知道我最终如何才能做到这一点并让我的角色能够根据重力调整自己?

抱歉没有提示我的问题已经解决,点击查看答案,归功于Ruzihm。