Exemple #1
0
        // 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);
            }
        }
Exemple #2
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.rigidbody)
     {
         onRbEnter.Invoke(collision.rigidbody);
     }
 }
Exemple #3
0
        /*
         * 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);
            }
        }
Exemple #4
0
        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);
            }
        }