Esempio n. 1
0
        public virtual void OnColliderEventDragEnd(ColliderButtonEventData eventData)
        {
            if (m_eventGrabberSet == null)
            {
                return;
            }
            if (!IsValidGrabButton(eventData))
            {
                return;
            }
            Grabber grabber;

            if (!m_eventGrabberSet.TryGetValue(eventData, out grabber))
            {
                return;
            }

            RemoveGrabber(grabber);
            m_eventGrabberSet.Remove(eventData);
            Grabber.Release(grabber);
            if (singleItemGrab)
            {
                ViveColliderEventCaster caster = eventData.eventCaster as ViveColliderEventCaster;
                caster.canGrab = true;
            }
        }
Esempio n. 2
0
        public virtual void OnColliderEventDragStart(ColliderButtonEventData eventData)
        {
            if (!IsValidGrabButton(eventData))
            {
                return;
            }
            if (singleItemGrab)
            {
                ViveColliderEventCaster caster = eventData.eventCaster as ViveColliderEventCaster;
                if (!caster.canGrab)
                {
                    return;
                }
            }
            if (!m_allowMultipleGrabbers)
            {
                ClearGrabbers(false);
                ClearEventGrabberSet();
            }

            var grabber = Grabber.Get(eventData);
            var offset  = RigidPose.FromToPose(grabber.grabberOrigin, new RigidPose(transform));

            if (alignPosition)
            {
                offset.pos = alignPositionOffset;
            }
            if (alignRotation)
            {
                offset.rot = Quaternion.Euler(alignRotationOffset);
            }
            grabber.grabOffset = offset;

            if (m_eventGrabberSet == null)
            {
                m_eventGrabberSet = new IndexedTable <ColliderButtonEventData, Grabber>();
            }
            m_eventGrabberSet.Add(eventData, grabber);

            if (singleItemGrab)
            {
                ViveColliderEventCaster caster = eventData.eventCaster as ViveColliderEventCaster;
                caster.canGrab = false;
            }

            AddGrabber(grabber);
        }
Esempio n. 3
0
 public void OnColliderEventPressUp(ColliderButtonEventData eventData)
 {
     if (stickyGrabbable != null && stickyGrabbable.isGrabbed)
     {
         ForceRelease();
     }
     if (singleItemGrab)
     {
         if (!IsValidGrabButton(eventData))
         {
             return;
         }
         ViveColliderEventCaster caster = eventData.eventCaster as ViveColliderEventCaster;
         if (isGrabbed)
         {
             caster.canGrab = true;
             if (m_onDrop != null)
             {
                 m_onDrop.Invoke(this);
             }
         }
         caster.canGrab = true;
     }
 }
Esempio n. 4
0
 public ViveColliderPadAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D2, InputAxis.Scroll2D)
 {
     viveEventCaster = eventCaster;
 }
Esempio n. 5
0
 public ViveColliderTriggerAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D1, InputAxis.Trigger1D)
 {
     viveEventCaster = eventCaster;
 }
Esempio n. 6
0
 public ViveColliderButtonEventData(ViveColliderEventCaster eventCaster, ControllerButton viveButton, InputButton button) : base(eventCaster, button)
 {
     this.viveEventCaster = eventCaster;
     this.viveButton      = viveButton;
 }