protected override void OnEnable() { base.OnEnable(); _ropeJointObject = _jointObject as b2RopeJointObject; _oldAutoConfigureAnchor = _ropeJointObject.autoConfigureAnchor; fixAutoAnchor(); _oldLocalAnchor1.SetV(_ropeJointObject.localAnchor1); _oldLocalAnchor2.SetV(_ropeJointObject.localAnchor2); _oldMaxLength = _ropeJointObject.maxLength; }
/**修复b2RopeJointObject*/ private static void fixB2RopeJointWithTransform(Transform transform) { b2RopeJointObject ropeJointObj = transform.GetComponent <b2RopeJointObject>(); if (ropeJointObj != null) { ropeJointObj.updateAutoAnchor(); } for (int i = 0; i < transform.childCount; i++) { fixB2RopeJointWithTransform(transform.GetChild(i)); } }
/**解析b2RopeJointObject*/ private static void parseB2RopeJointObject(b2RopeJointObject ropeJointObject, XmlElement componentElement, XmlDocument xml) { //EnableCollision XmlElement enableCollisionElement = xml.CreateElement("EnableCollision"); enableCollisionElement.InnerText = ropeJointObject.enableCollision.ToString(); componentElement.AppendChild(enableCollisionElement); //ConnectedB2BodyObject "null"/"instanceID" XmlElement connectedB2BodyObjectElement = xml.CreateElement("ConnectedB2BodyObject"); if (ropeJointObject.connectedB2BodyObject == null) { connectedB2BodyObjectElement.InnerText = "null"; } else { connectedB2BodyObjectElement.InnerText = ropeJointObject.connectedB2BodyObject.GetInstanceID().ToString(); } componentElement.AppendChild(connectedB2BodyObjectElement); //AutoConfigureAnchor XmlElement autoConfigureAnchorElement = xml.CreateElement("AutoConfigureAnchor"); autoConfigureAnchorElement.InnerText = ropeJointObject.autoConfigureAnchor.ToString(); componentElement.AppendChild(autoConfigureAnchorElement); //LocalAnchor1 XmlElement localAnchor1Element = xml.CreateElement("LocalAnchor1"); localAnchor1Element.SetAttribute("x", ropeJointObject.localAnchor1.x.ToString()); localAnchor1Element.SetAttribute("y", ropeJointObject.localAnchor1.y.ToString()); componentElement.AppendChild(localAnchor1Element); //LocalAnchor2 XmlElement localAnchor2Element = xml.CreateElement("LocalAnchor2"); localAnchor2Element.SetAttribute("x", ropeJointObject.localAnchor2.x.ToString()); localAnchor2Element.SetAttribute("y", ropeJointObject.localAnchor2.y.ToString()); componentElement.AppendChild(localAnchor2Element); //MaxLength XmlElement maxLengthElement = xml.CreateElement("MaxLength"); maxLengthElement.InnerText = ropeJointObject.maxLength.ToString(); componentElement.AppendChild(maxLengthElement); }