【问题标题】:Addforce on the local Y axis of an object在对象的局部 Y 轴上添加力
【发布时间】:2015-02-19 17:26:16
【问题描述】:

我有一个盒子,当我旋转盒子时,无论我旋转盒子的哪个方向,Y 轴总是指向同一侧。这很好,我需要这个,但我需要在本地设置rigidbody.addforce() -Y,这样无论盒子的那一侧朝向哪个方向,玩家都有重力。

我尝试并认为可行的一种方法是将盒子上的 -Y 射线设置为 addforce,但它没有做任何事情。

我已经尝试了我所知道的一切来做到这一点,但我似乎无法让它发挥作用,任何提示将不胜感激。

【问题讨论】:

  • 一些示例代码会很有帮助。
  • 如果您有一个局部空间向量,您可以通过在变换组件上调用InverseTransformDirection 将其转换为世界空间。例如,您可以在盒子上拨打transform.InverseTransformDirection(-Vector3.up)。不过,您的问题并不清楚您实际拥有或需要哪些向量。

标签: c# unity3d gravity


【解决方案1】:

http://docs.unity3d.com/ScriptReference/Rigidbody.AddRelativeForce.html

将添加一个相对于刚体方向的力。

你会想要使用

void FixedUpdate() {
    rigidbody.AddRelativeForce(Vector3.down * someGravityMultiplier);
}

这将使你的角色沿着它的 -y 移动,它的局部向下向量。而不是世界向下的向量。您应该在每次固定更新时应用此力。

【讨论】:

  • 你能改进这个答案吗?添加文档链接会很有帮助/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
相关资源
最近更新 更多