public void CreateJoint(Collision2D coll) { var joint = gameObject.AddComponent <SpringJoint2D> (); var localContactPoint = transform.InverseTransformPoint(coll.contacts [0].point); var connectedContactPoint = coll.transform.InverseTransformPoint(coll.contacts [0].point); joint.anchor = new Vector2(localContactPoint.x, localContactPoint.y); joint.connectedAnchor = new Vector2(connectedContactPoint.x, connectedContactPoint.y); joint.connectedBody = coll.rigidbody; joint.dampingRatio = 0; joint.distance = 0; joint.enableCollision = false; joint.frequency = 0; var foundObject = (GameObject)Resources.Load("JointCircle"); var circle = (GameObject)Instantiate(foundObject, coll.contacts [0].point, foundObject.transform.rotation); var circleJoint = new CircleJoint(); circleJoint.joint = joint; circleJoint.circle = circle; circleJoints.Add(circleJoint); var shipPiece = coll.gameObject.GetComponent <ShipPiece> (); if (shipPiece != null) { shipPiece.AddCircleJoint(circleJoint); } }
public void AddCircleJoint(CircleJoint circleJoint) { circleJoints.Add(circleJoint); }