二维距离约束

时间:2011-02-25 22:18:17

标签: c# unity3d 2d physics

我一直在努力让所有人在Unity中使用2D距离联合。我希望自由旋转到身体与关节和连接的身体,我还需要质量和其他约束,如固定刚体的位置。我已经尝试了几天,没有运气配置任何关节类型。使用以下方法尝试了一个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上旋转。

帮助?

1 个答案:

答案 0 :(得分:1)

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

通过在http://answers.unity3d.com上询问,您可以更好地找到答案 [再次,我为这不是一个答案道歉。我宁愿这是一个评论,但tkat不是一个选项]