public void OnColliderEventHoverEnter(ColliderHoverEventData eventData)
        {
            m_stayingEventDataSet.Add(eventData);

            if (m_stayingEventDataSet.Count == 1)
            {
                InvokeEnterEvent(eventData);

                ViveColliderEventCaster caster;
                if (eventData.TryGetEventCaster(out caster))
                {
                    m_stayingTransform = caster.transform;
                }
            }

            InvokeEveryEnterEvent(eventData);
        }
        public void OnColliderEventHoverExit(ColliderHoverEventData eventData)
        {
            m_stayingEventDataSet.Remove(eventData);

            ViveColliderEventCaster caster;

            if (eventData.TryGetEventCaster(out caster))
            {
                if (m_stayingTransform == caster.transform)
                {
                    m_stayingTransform = null;
                }
            }

            if (m_stayingEventDataSet.Count == 0)
            {
                InvokeExitEvent(eventData);
            }

            InvokeEveryExitEvent(eventData);
        }