static void AddComponentesToBase(RagdollPartBase part, RagdollProperties ragdollProperties, float mass, bool addJoint) { GameObject go = part.transform.gameObject; part.rigidbody = go.GetComponent <Rigidbody>(); if (part.rigidbody == null) { part.rigidbody = go.AddComponent <Rigidbody>(); } part.rigidbody.mass = mass; part.rigidbody.drag = ragdollProperties.rigidDrag; part.rigidbody.angularDrag = ragdollProperties.rigidAngularDrag; part.rigidbody.collisionDetectionMode = ragdollProperties.cdMode; part.rigidbody.isKinematic = ragdollProperties.isKinematic; part.rigidbody.useGravity = ragdollProperties.useGravity; if (addJoint) { part.joint = go.GetComponent <CharacterJoint>(); if (part.joint == null) { part.joint = go.AddComponent <CharacterJoint>(); } part.joint.enablePreprocessing = false; part.joint.enableProjection = true; } }
static void ConfigureJointParams(RagdollPartBase part, Rigidbody anchor, Vector3 axis, Vector3 swingAxis) { part.joint.connectedBody = anchor; part.joint.axis = part.transform.InverseTransformDirection(axis); part.joint.swingAxis = part.transform.InverseTransformDirection(swingAxis); }