【问题标题】:How to add a force 90 degrees / sideways from a forward vector3 direction如何从前向vector3方向添加90度/侧向力
【发布时间】:2021-01-14 19:28:00
【问题描述】:

我有 2 个立方体,一个大的,一个小的,较大的立方体会静止,而较小的立方体会受到力 较大的立方体:

smallerCube.GetComponent<Rigidbody>().AddForce((largeCube.transform.position - smallerCube.transform.position).normalized * force);

现在我想知道如何在 Y 轴上从上述给定方向添加一个偏移 90 度的力

largeCube.transform.position - smallerCube.transform.position

因此,它似乎会以一个朝向它的力以及一个与“朝向”方向偏移 90 度的侧向力围绕更大的立方体运行。

我将如何使用刚体物理来做类似的事情。

【问题讨论】:

  • 一个轨道物体只有一个朝向中心的力,在垂直方向上以固定的速度凝视
  • 您需要离心力(旋转)。请参阅:forum.unity.com/threads/…

标签: c# unity3d


【解决方案1】:

您只需使用* operator 将矢量与相应的旋转相乘即可旋转矢量。

对于全局 Y 轴的 90° 偏移,您可以使用 Quaternion.Euler,例如

var rotatedDirection = Quaternion.Euler(0, 90, 0) * (largeCube.transform.position - smallerCube.transform.position).normalized;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多