private void AddHingeJoint(HingeJoint joint) { if (!dumped.Add(joint)) { return; } sb.AppendLine($@"--- !u!153 &{joint.GetInstanceID()} ConfigurableJoint: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {{fileID: 0}} m_PrefabInternal: {{fileID: 0}} m_GameObject: {{fileID: {joint.gameObject.GetInstanceID()}}} m_ConnectedBody: {{fileID: {joint.connectedBody?.GetInstanceID() ?? 0}}} m_Anchor: {Stringify(joint.anchor)} m_Axis: {Stringify(joint.axis)} m_AutoConfigureConnectedAnchor: {(joint.autoConfigureConnectedAnchor ? 1 : 0)} m_ConnectedAnchor: {Stringify(joint.connectedAnchor)} m_UseSpring: {(joint.useSpring ? 1 : 0)} m_Spring: spring: {joint.spring.spring} damper: {joint.spring.damper} targetPosition: {joint.spring.targetPosition} m_UseMotor: {(joint.useMotor ? 1 : 0)} m_Motor: targetVelocity: {joint.motor.targetVelocity} force: {joint.motor.force} freeSpin: {(joint.motor.freeSpin ? 1 : 0)} m_UseLimits: {(joint.useLimits ? 1 : 0)} m_Limits: min: {joint.limits.min} max: {joint.limits.max} bounciness: {joint.limits.bounciness} bounceMinVelocity: {joint.limits.bounceMinVelocity} contactDistance: {joint.limits.contactDistance} m_BreakForce: {joint.breakForce} m_BreakTorque: {joint.breakTorque} m_EnableCollision: {(joint.enableCollision ? 1 : 0)} m_EnablePreprocessing: {(joint.enablePreprocessing ? 1 : 0)} m_MassScale: {joint.massScale} m_ConnectedMassScale: {joint.connectedMassScale}"); }