- Home /
Unity 2D distance constraint
0 down vote favorite
I've been trying everything to get a 2D distance joint working in unity. I want free rotation to both the body with the joint and the connected body, I also need mass and other constraints adhered to, such as fixing a rigidbodys position. I've tryed for days now, no luck configuring any joint type. Tryed a verlet constraint using: (Just to prove the kind of action I want)
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 );
But this doesnt take into account mass/force or any fixtures. You can see here I want movement on the X/Y and rotation only on Z.
Help?
Answer by Illogical-Ironical · Feb 27, 2011 at 06:49 AM
I'm pretty sure you can make it so the object moves only on the x/y axis and rotates only on the Z axis if you're using a rigidbody. That's on the Inspector panel. Select the object, and go to where the Rigidobject is. There's an option called "Constraint".
Hope that's of any help.
Your answer
Follow this Question
Related Questions
How to animate collider along with object for 2D game? 1 Answer
A node in a childnode? 1 Answer
Why is there no gravitational acceleration with Unity 4.3.1 2D? 0 Answers
how do i make pinball ? 1 Answer
Authoritative Networking 2D Movement 0 Answers