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

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

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

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

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

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