private void RemoveCallback()
        {
            if (cachedProxy == null)
            {
                return;
            }

            switch (collision)
            {
            case CollisionType.OnCollisionEnter:
                cachedProxy.RemoveCollisionEventCallback(CollisionEnter);
                break;

            case CollisionType.OnCollisionStay:
                cachedProxy.RemoveCollisionEventCallback(CollisionStay);
                break;

            case CollisionType.OnCollisionExit:
                cachedProxy.RemoveCollisionEventCallback(CollisionExit);
                break;

            case CollisionType.OnParticleCollision:
                cachedProxy.RemoveParticleCollisionEventCallback(ParticleCollision);
                break;

            case CollisionType.OnControllerColliderHit:
                cachedProxy.RemoveControllerCollisionEventCallback(ControllerColliderHit);
                break;
            }
        }