【问题标题】:Allow a rigid body to only move in the Y direction.允许刚体仅在 Y 方向上移动。
【发布时间】:2014-03-24 16:01:35
【问题描述】:

我正在使用 Unity 4.3 制作 2d 游戏。我有一个刚体2d 对象。当其他physics2d 对象撞到rigidbody2d 对象时,它会在x 方向上移动一点。

我不希望它在 x 方向上移动。我想让rigidbody2d 对象的x 方向固定。我怎样才能做到这一点?

【问题讨论】:

标签: unity3d game-engine game-physics


【解决方案1】:

不幸的是,RigidBody2D 缺少 RigidBody (3D) 中存在的一个关键功能,constraints

解决方法可能是始终锁定 RigidBody2D 在 X 轴上的位置,但这可能会导致物理错误:

void Update() 
{
    transform.position = new Vector3(STATIC_X, transform.position.y, transform.position.x);
}

另一种选择是不使用刚体,并尝试自己模拟物理。

【讨论】:

  • 嗨,感谢您的快速回复。我已经完成了代码....... function Start () { this.rigidbody2D.isKinematic = true; positionOfSpike = this.transform.position.x; }.....function Update () {this.transform.position.x = positionOfSpike;} ....... 但是放置在错误的位置。您建议的代码也可以这样做,并且是我的问题的另一个解决方案。谢谢很多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多