// Disabled to improve performance. It is not being used and it's causing event flood /* * private void OnCollisionStay(Collision collision) * { * if (collision.rigidbody) * onRbStay.Invoke(collision.rigidbody); * } */ private void OnCollisionExit(Collision collision) { if (collision.rigidbody) { onRbExit.Invoke(collision.rigidbody); } }
private void OnCollisionEnter(Collision collision) { if (collision.rigidbody) { onRbEnter.Invoke(collision.rigidbody); } }
/* * protected virtual void OnTriggerStay(Collider other) * { * if (!ready || (ignoreChildren && other.transform.IsChildOf(ignoreChildren))) * return; * * onStayCollider.Invoke(other); * } */ protected virtual void OnTriggerExit(Collider other) { if (!ready || (ignoreChildren && other.transform.IsChildOf(ignoreChildren))) { return; } Rigidbody rb = other.attachedRigidbody; if (rb && currentRigidbodies.Contains(rb)) { currentRigidbodies.Remove(rb); onExitRigidbody.Invoke(rb); } if (currentColliders.Contains(other)) { currentColliders.Remove(other); onExitCollider.Invoke(other); } }
protected virtual void OnTriggerExit(Collider other) { if (ignoreChildren && other.transform.IsChildOf(ignoreChildren)) { return; } Rigidbody rb = other.attachedRigidbody; if (rb && enteredRbs.Contains(rb)) { enteredRbs.Remove(rb); onRbExit.Invoke(rb); } if (enteredColliders.Contains(other)) { enteredColliders.Remove(other); onColliderExit.Invoke(other); } }
protected virtual void OnTriggerEnter(Collider other) { if (!ready || other.transform.IsChildOf(ignoreChildren)) { return; } Rigidbody rb = other.attachedRigidbody; if (rb && !currentRigidbodies.Contains(rb)) { currentRigidbodies.Add(rb); onEnterRigidbody.Invoke(rb); } if (!currentColliders.Contains(other)) { currentColliders.Add(other); onEnterCollider.Invoke(other); } }