示例#1
0
    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;
        }
    }
示例#2
0
    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;
        }
    }
示例#3
0
 public void OnDropped(StickyGrabbable grabbedObj)
 {
     OnStickyRelease(grabbedObj);
 }
示例#4
0
 public void OnStickyLetGo(StickyGrabbable releaseObj)
 {
     leftGrabbingSet.Clear();
     rightGrabbingSet.Clear();
     UpdateActivity();
 }