1

我一直在尽一切努力让 2D 距离关节在 Unity 中工作。我希望通过关节和连接的身体自由旋转,我还需要遵守质量和其他约束,例如固定刚体的位置。我已经尝试了好几天,配置任何关节类型都没有运气。使用以下方法尝试了一个 verlet 约束:

float xDistance = hinge.transform.position.x  - target.transform.position.x;
float yDistance = hinge.transform.position.y  - target.transform.position.y;
float newdistance = Mathf.Sqrt( xDistance * xDistance + yDistance * yDistance );
float con = ( newdistance - maxDistance) / newdistance;
Vector3 moveTarget = new Vector3( xDistance * 0.5f * con , yDistance * 0.5f * con, 0.0f );
hinge.rigidbody.MovePosition( hinge.transform.position - moveTarget );
target.rigidbody.MovePosition( target.transform.position + moveTarget );

但这没有考虑质量/力或任何固定装置。你可以在这里看到我想在 X/Y 上移动,只在 Z 上旋转。

帮助?

4

1 回答 1

1

我知道这不是一个真正的答案,但添加评论按钮不存在。我很擅长 Unity,但我从未使用过 Unity2D,而且我不能说我以前见过“MovePosition”。

通过在http://answers.unity3d.com上询问这个问题,你会更幸运地找到答案 [再次,我很抱歉这不是一个答案。我宁愿这是一个评论,但 tkat 不是一个选项]

于 2011-02-26T00:15:22.760 回答