private void ActivateRagdollParts(bool activate) { controller.ControllerEnabled(!activate); for (int i = 0, length = rigidbodyComponents.Count; i < length; i++) { RigidbodyComponent rigidbody = rigidbodyComponents[i]; Collider partColider = rigidbody.GetRigidBody().GetComponent <Collider>(); if (partColider == null) { const string colliderNodeSufix = "_ColliderRotator"; string childName = rigidbody.GetRigidBody().name + colliderNodeSufix; Transform transform = rigidbody.GetRigidBody().transform.Find(childName); partColider = transform.GetComponent <Collider>(); } partColider.isTrigger = !activate; if (activate) { rigidbody.GetRigidBody().isKinematic = false; StartCoroutine(FixTransformAndEnableJoint(rigidbody)); } else { rigidbody.GetRigidBody().isKinematic = true; } } }
public void AddExtraMove(Vector3 move) { if (IsRagdolled()) { Vector3 airMove = new Vector3(move.x * AirSpeed, 0f, move.z * AirSpeed); for (int i = 0, length = rigidbodyComponents.Count; i < length; i++) { RigidbodyComponent rigidbodyComponent = rigidbodyComponents[i]; rigidbodyComponent.GetRigidBody().AddForce(airMove / 100f, ForceMode.VelocityChange); } } }