Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
 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);
 }