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; } }
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); }
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; } }
public ViveColliderPadAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D2, InputAxis.Scroll2D) { viveEventCaster = eventCaster; }
public ViveColliderTriggerAxisEventData(ViveColliderEventCaster eventCaster) : base(eventCaster, Dim.D1, InputAxis.Trigger1D) { viveEventCaster = eventCaster; }
public ViveColliderButtonEventData(ViveColliderEventCaster eventCaster, ControllerButton viveButton, InputButton button) : base(eventCaster, button) { this.viveEventCaster = eventCaster; this.viveButton = viveButton; }