foreach (Collider col in colliders) { col.enabled = active; } } } – Detects hits and triggers ragdoll using UnityEngine; public class HitDetector : MonoBehaviour { public float hitForce = 10f; public RagdollActivator ragdollActivator;
void Start() { animator = GetComponent<Animator>(); rigidbodies = GetComponentsInChildren<Rigidbody>(); colliders = GetComponentsInChildren<Collider>();
if (ragdollDuration > 0) Invoke(nameof(DisableRagdoll), ragdollDuration); }
public void DisableRagdoll() { if (!isRagdoll) return; isRagdoll = false; animator.enabled = true; foreach (Rigidbody rb in ragdollRigidbodies) rb.isKinematic = true;
SetRagdollActive(false); }
foreach (Collider col in ragdollColliders) col.enabled = true;
foreach (Rigidbody rb in ragdollRigidbodies) { rb.isKinematic = false; if (hitDirection != Vector3.zero) rb.AddForce(hitDirection * force, ForceMode.Impulse); }