- Home /
Attaching a Hinge Joint upon colliding with a rigidbody.
I'm trying to create a script that will attach rigidbodies together via hinge joint based on anything that collides with them that also has the tag of "piece". I'm having trouble figuring out how to define the hingeJoint.connectedBody so that it assigns what it collided with as the connected Body.
function OnCollisionEnter(other : Collision){
if (other.gameObject.tag == "piece") { Debug.Log("Collided"); gameObject.AddComponent(HingeJoint); var otherBody = other.gameObject.Rigidbody; hingeJoint.breakForce = 45; hingeJoint.breakTorque = 45; hingeJoint.connectedBody = otherBody; } }
When playing this scene all of the objects that have this script attached to them do indeed create Hinge Joints. But not with a breakForce/Torque of 45 nor are they connected to what they collided with. I've given up trying to figure this out on my own, I need help! Any thoughts?
Do both objects have rigid bodies? Have you tried attaching the joint to the "piece" ins$$anonymous$$d of the main object? I think you are trying to assign multiple joints to one object, hence it not working properly.
Answer by phamvanhung2e123 · Jul 05, 2012 at 06:52 AM
I think you should change Rigidbody to rigidbody function OnCollisionEnter(other : Collision){
if (other.gameObject.tag == "piece") { Debug.Log("Collided"); gameObject.AddComponent(HingeJoint); var otherBody = other.gameObject.rigidbody; hingeJoint.breakForce = 45; hingeJoint.breakTorque = 45; hingeJoint.connectedBody = otherBody; } }
Your answer
Follow this Question
Related Questions
How do I use joints to make floppy physics hair on a character? 2 Answers
Hinge Joint Limits in C sharp 1 Answer
Spring Joint Worm set-up 0 Answers
How can i change HingeJoint's axis from code? 0 Answers
Character Arm Joints. 1 Answer