public void OnStickyRelease(StickyGrabbable releasedObj) { UpdateActivity(); ViveColliderButtonEventData viveEventData; if (!releasedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) { return; } switch (viveEventData.viveRole.ToRole <HandRole>()) { case HandRole.RightHand: if (rightGrabbingSet.Remove(releasedObj.gameObject) && rightGrabbingSet.Count == 0) { isRightStickyGrab = false; UpdateActivity(); } break; case HandRole.LeftHand: if (leftGrabbingSet.Remove(releasedObj.gameObject) && leftGrabbingSet.Count == 0) { isLeftStickyGrab = false; UpdateActivity(); } break; } }
public void OnStickyGrabbed(StickyGrabbable grabbedObj) { ViveColliderButtonEventData viveEventData; if (!grabbedObj.grabbedEvent.TryGetViveButtonEventData(out viveEventData)) { return; } UpdateActivity(); switch (viveEventData.viveRole.ToRole <HandRole>()) { case HandRole.RightHand: if (rightGrabbingSet.Count > 0 || isRightStickyGrab) { return; } if (rightGrabbingSet.Add(grabbedObj.gameObject) && rightGrabbingSet.Count == 1) { UpdateActivity(); } break; case HandRole.LeftHand: if (leftGrabbingSet.Count > 0 || isLeftStickyGrab) { return; } if (leftGrabbingSet.Add(grabbedObj.gameObject) && leftGrabbingSet.Count == 1) { UpdateActivity(); } break; } }
public void OnDropped(StickyGrabbable grabbedObj) { OnStickyRelease(grabbedObj); }
public void OnStickyLetGo(StickyGrabbable releaseObj) { leftGrabbingSet.Clear(); rightGrabbingSet.Clear(); UpdateActivity(); }