【问题标题】:Unity physics how to get the force vector that is working on an objectUnity Physics 如何获得作用于对象的力矢量
【发布时间】:2020-09-10 05:35:06
【问题描述】:

我在 Unity C# 中使用 addForce 移动车辆。向前运动由发动机部件产生,而转向运动由转向部件产生。 物体朝正确的方向移动,但我在使它面向行进方向时遇到问题。 Transform.LookAt 想要查看的方向。 除了自己计算之外,还有什么方法可以检索物理引擎计算的合力矢量?

【问题讨论】:

  • Rigidbody 没有任何合力的痕迹。您可以阅读velocity,但为了获得合力,您应该添加您应用的所有力(使用AddForce)+ 重力。
  • 这里的关键是“让它面向行进方向”。听起来你不需要知道什么力作用在物体上。您需要的是速度,就像其他用户提到的那样。速度矢量将指向行进方向。
  • 嘿 LLSv2.0...从看你的照片...你绝对应该刮胡子 :-)) 很多人向我指出这一点...看起来对我来说太常识了。解决了我的问题! :-D

标签: c# unity3d game-physics


【解决方案1】:

您可以将速度存储在一个向量或 3 个浮点数中。但是没有办法直接存储施加的力,除非您有存储的力。

使用这行代码来存储速度:

     float velX = rb.velocity.x;
     float velY = rb.velocity.y;
     float velZ = rb.velocity.z;
     //this will store all velocities at the time of running the code.

或将其存储为 Vector3,如下所示:

     Vector3 velocities = rb.velocity;

注意刚体应该定义为 rb 或者你需要把代码中刚体的名字改成你自己的名字。

【讨论】:

  • 感谢 Jadon...关键是速度矢量指向行进方向...感谢您的帮助 :-))
  • 嘿,很高兴,我很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 2023-01-20
相关资源
最近更新 更多