Esempio n. 1
0
    /// <summary>
    /// Set the hand collider tag.
    /// </summary>
    private void Start()
    {
        gameObject.tag  = "Player";
        collidings      = new List <Collider>();
        smoothingBuffer = new Queue <Vector3>();
        for (i = 0; i < smoothingFrame; i++)
        {
            smoothingBuffer.Enqueue(Vector3.zero);
            xSum = 0;
            ySum = 0;
            zSum = 0;
        }
        trianglurNumber = smoothingFrame * (smoothingFrame + 1) / 2;

        if (entity.IsOwner)
        {
            _manomotionManager = GameObject.FindGameObjectWithTag("ManomotionManager").GetComponent <ManomotionManager>();
        }

        grabTrigger = ManoGestureTrigger.GRAB_GESTURE;
        pinch       = ManoGestureContinuous.HOLD_GESTURE;

        worldOrigin = GameObject.FindGameObjectWithTag("WorldOrigin");
        // worldOriginOffsetPosition = worldOrigin.transform.position;
        // worldOriginOffsetRotaion = worldOrigin.transform.rotation;
        // transform.rotation = worldOriginOffsetRotaion;
        // transform.rotation = worldOrigin.transform.InverseTransformDirection(Vector3.zero);
    }
    private void DisplayTriggerGesture(ManoGestureTrigger triggerGesture, TrackingInfo trackingInfo)
    {
        switch (triggerGesture)
        {
        case ManoGestureTrigger.NO_GESTURE:
            visualDisplay.text += "ManoGestureTrigger: NO_GESTURE\n";
            break;

        case ManoGestureTrigger.CLICK:
            visualDisplay.text += "ManoGestureTrigger: CLICK\n";
            break;

        case ManoGestureTrigger.DROP:
            visualDisplay.text += "ManoGestureTrigger: DROP\n";
            break;

        case ManoGestureTrigger.GRAB_GESTURE:
            visualDisplay.text += "ManoGestureTrigger: GRAB_GESTURE\n";
            break;

        case ManoGestureTrigger.PICK:
            visualDisplay.text += "ManoGestureTrigger: PICK\n";
            break;

        case ManoGestureTrigger.RELEASE_GESTURE:
            visualDisplay.text += "ManoGestureTrigger: RELEASE_GESTURE\n";
            break;

        default:
            visualDisplay.text += "ManoGestureTrigger: \n";
            break;
        }
    }
Esempio n. 3
0
    /// <summary>
    /// Spawns a cube in front of the user when the user performs a Click Gesture and its detected by the system.
    /// </summary>

    private void SpawnCubewithclickTriggerGesture()
    {
        //All the information for a detected hand. It refers to a single hand.
        HandInfo handInformation = ManomotionManager.Instance.Hand_infos[0].hand_info;
        //All the gesture information for this hand.
        GestureInfo gestureInformation = handInformation.gesture_info;
        //The trigger gesture that is detected in this frame.

        ManoGestureTrigger currentDetectedTriggerGesture = gestureInformation.mano_gesture_trigger;

        if (currentDetectedTriggerGesture == ManoGestureTrigger.CLICK)
        {
            //A click has been performed by the user and it has been detected as the current trigger Gesture.
            ManoClicked = true;
            StartCoroutine(timer(1));
            //GameObject newItem = Instantiate(itemPrefab);
            ////Spawn a cube at the position of the camera, also adding a small offset forward so it does not spawn right in front of it.
            //Vector3 positionToMove = Camera.main.transform.position + (Camera.main.transform.forward * 2);
            //newItem.transform.position = positionToMove;
            ////Make the phone vibrate for feedback.
            Handheld.Vibrate();
        }
        else if (currentDetectedTriggerGesture == ManoGestureTrigger.RELEASE_GESTURE)
        {
            //A grab and release has been performed by the user and it has been detected as the current trigger Gesture.
            ManoReleased = true;
            StartCoroutine(timer(2));
            Handheld.Vibrate();
        }
    }
Esempio n. 4
0
        /// <summary>
        /// Disables all trigers except.
        /// </summary>
        /// <param name="trigger">Trigger.</param>
        public void DisableAllTrigersExcept(ManoGestureTrigger trigger)
        {
            DisableAllTriggers();

            switch (trigger)
            {
            case ManoGestureTrigger.CLICK:
                ShouldShowClick(true);
                break;

            case ManoGestureTrigger.GRAB_GESTURE:
                ShouldShowGrab(true);
                break;

            case ManoGestureTrigger.RELEASE_GESTURE:
                ShouldShowRelease(true);
                break;

            case ManoGestureTrigger.PICK:
                ShouldShowPick(true);
                break;

            case ManoGestureTrigger.DROP:
                ShouldShowDrop(true);
                break;
            }
        }
Esempio n. 5
0
    public GameObject ArrowVisual;     //show hide placeholder, actual arrow spawns at camera z

    // Start is called before the first frame update
    void Start()
    {
        //SpawnArrow();
        //ShootLogic();
        click = ManoGestureTrigger.CLICK;
        ac    = GetComponent <AudioSource>();
    }
Esempio n. 6
0
 private void Initialize()
 {
     grab         = ManoGestureContinuous.CLOSED_HAND_GESTURE;
     pinch        = ManoGestureContinuous.HOLD_GESTURE;
     click        = ManoGestureTrigger.CLICK;
     cubeRenderer = GetComponent <Renderer>();
     cubeRenderer.sharedMaterial = arCubeMaterial[0];
     cubeRenderer.material       = arCubeMaterial[0];
 }
Esempio n. 7
0
 /// <summary>
 /// Based on the continuous gesture performed (Open hand or Closed Hand) the ghost will change its appearance
 /// </summary>
 /// <param name="gesture">Gesture.</param>
 /// <param name="warning">Warning.</param>
 void ShootProjectiles(ManoGestureTrigger someGesture)
 {
     if (someGesture == shootGesture && reloaded == true)
     {
         holdAnimation.SetActive(false);
         var projectile = (GameObject)Instantiate(projectilePrefab, projectileSpawn.position, projectileSpawn.rotation);
         reloaded  = false;
         reloading = false;
     }
 }
Esempio n. 8
0
    // Update is called once per frame
    void Update()
    {
        TrackingInfo       trackingInfo = ManomotionManager.Instance.Hand_infos[0].hand_info.tracking_info;
        GestureInfo        gesture      = ManomotionManager.Instance.Hand_infos[0].hand_info.gesture_info;
        ManoGestureTrigger someGesture  = gesture.mano_gesture_trigger;
        Warning            warning      = ManomotionManager.Instance.Hand_infos[0].hand_info.warning;

        ContinuousGesture(gesture, trackingInfo, warning);
        ShootProjectiles(someGesture, warning);
    }
Esempio n. 9
0
    /// <summary>
    /// Displays information regarding the Trigger Gesture of the detected hand
    /// </summary>
    /// <param name="gesture_info"></param>
    void DisplayTriggerGesture(GestureInfo gesture_info)
    {
        triggerGestureGizmo.SetActive(Show_trigger_gesture);
        if (Show_trigger_gesture)
        {
            ManoGestureTrigger trigger = gesture_info.mano_gesture_trigger;
            switch (trigger)
            {
            case ManoGestureTrigger.CLICK:
                triggerGestureText.text = "Trigger: Click";
                break;

            case ManoGestureTrigger.SWIPE_LEFT:
                triggerGestureText.text = "Trigger: Swipe Left";
                break;

            case ManoGestureTrigger.SWIPE_RIGHT:
                triggerGestureText.text = "Trigger: Swipe Right";
                break;

            case ManoGestureTrigger.GRAB:
                triggerGestureText.text = "Trigger: Grab";
                Object.GetComponent <Renderer>().material.color = Color.red;
                Fire();
                break;

            case ManoGestureTrigger.TAP_POINTING:
                triggerGestureText.text = "Trigger: Tap";
                break;

            case ManoGestureTrigger.DROP:
                triggerGestureText.text = "Trigger: Drop";
                break;

            case ManoGestureTrigger.PICK:
                triggerGestureText.text = "Trigger: Pick";
                break;

            case ManoGestureTrigger.RELEASE:
                triggerGestureText.text = "Trigger: Release";
                Object.GetComponent <Renderer>().material.color = Color.blue;
                Fire();
                break;

            case ManoGestureTrigger.NO_GESTURE:
                triggerGestureText.text = "Trigger: ";
                break;

            default:
                triggerGestureText.text = "Trigger: ";
                break;
            }
        }
    }
Esempio n. 10
0
    /// <summary>
    /// Display Visual information of the detected trigger gesture.
    /// In the case where a click is intended (Open pinch, Closed Pinch, Open Pinch) we are clearing out the visual information that are generated from the pick/drop
    /// </summary>
    /// <param name="triggerGesture">Requires an input of trigger gesture.</param>
    void DisplayTriggerGesture(ManoGestureTrigger triggerGesture, TrackingInfo trackingInfo)
    {
        if (triggerGesture != ManoGestureTrigger.NO_GESTURE)
        {
            if (_showPickTriggerGesture)
            {
                if (triggerGesture == ManoGestureTrigger.PICK)
                {
                    TriggerDisplay(trackingInfo, ManoGestureTrigger.PICK);
                }
            }

            if (_showDropTriggerGesture)
            {
                if (triggerGesture == ManoGestureTrigger.DROP)
                {
                    if (previousTrigger != ManoGestureTrigger.CLICK)
                    {
                        TriggerDisplay(trackingInfo, ManoGestureTrigger.DROP);
                    }
                }
            }

            if (_showClickTriggerGesture)
            {
                if (triggerGesture == ManoGestureTrigger.CLICK)
                {
                    TriggerDisplay(trackingInfo, ManoGestureTrigger.CLICK);
                    if (GameObject.Find("PICK"))
                    {
                        GameObject.Find("PICK").SetActive(false);
                    }
                }
            }

            if (_showGrabTriggerGesture)
            {
                if (triggerGesture == ManoGestureTrigger.GRAB_GESTURE)
                {
                    TriggerDisplay(trackingInfo, ManoGestureTrigger.GRAB_GESTURE);
                }
            }

            if (_showReleaseTriggerGesture)
            {
                if (triggerGesture == ManoGestureTrigger.RELEASE_GESTURE)
                {
                    TriggerDisplay(trackingInfo, ManoGestureTrigger.RELEASE_GESTURE);
                }
            }
        }
        previousTrigger = triggerGesture;
    }
Esempio n. 11
0
    /// <summary>
    /// Displays the visual information of the performed trigger gesture.
    /// </summary>
    /// <param name="triggerGesture">Trigger gesture.</param>
    void TriggerDisplay(TrackingInfo trackingInfo, ManoGestureTrigger triggerGesture)
    {
        if (GetCurrentPooledTrigger())
        {
            GameObject triggerVisualInformation = GetCurrentPooledTrigger();

            triggerVisualInformation.SetActive(true);
            triggerVisualInformation.name = triggerGesture.ToString();
            triggerVisualInformation.GetComponent <TriggerGizmo>().InitializeTriggerGizmo(triggerGesture);
            triggerVisualInformation.GetComponent <RectTransform>().position = Camera.main.ViewportToScreenPoint(trackingInfo.palm_center);
        }
    }
Esempio n. 12
0
    //[SerializeField]
    //Text currentRequested;

    //[SerializeField]
    //Text clickEnabled;

    //[SerializeField]
    //Text grabEnabled;

    //[SerializeField]
    //Text releaseEnabled;

    //[SerializeField]
    //Text pickEnabled;

    //[SerializeField]
    //Text dropEnabled;

    //[SerializeField]
    //Text respondingText;

    private void UpdateRequestedTrigger()
    {
        //The issue that I am facing is that when I update the trigger It changes so fast that I am not able to show the trigger
        try
        {
            if (_currentInstructionStep < _instructionSteps - 1)
            {
                requestedTrigger = triggerGesturesToPerformInstructions[_currentInstructionStep].triggerGestures[ammountOfTriggersPerformed];
                StartCoroutine(DisableTriggersAfterDelay(delay, requestedTrigger));

                switch (requestedTrigger)
                {
                case ManoGestureTrigger.CLICK:
                    ApplicationManager.Instance.howToInstructor.ShouldShowTriggerAnimationVisuals(true);
                    ApplicationManager.Instance.runTimeApplication.ShouldShowClick(true);
                    ApplicationManager.Instance.howToInstructor.triggerAnimations.ShowHowToClick();
                    break;

                case ManoGestureTrigger.GRAB_GESTURE:
                    ApplicationManager.Instance.howToInstructor.ShouldShowTriggerAnimationVisuals(true);
                    ApplicationManager.Instance.runTimeApplication.ShouldShowGrab(true);
                    ApplicationManager.Instance.howToInstructor.triggerAnimations.ShowHowToGrab();
                    break;

                case ManoGestureTrigger.RELEASE_GESTURE:
                    ApplicationManager.Instance.howToInstructor.ShouldShowTriggerAnimationVisuals(true);
                    ApplicationManager.Instance.runTimeApplication.ShouldShowRelease(true);
                    ApplicationManager.Instance.howToInstructor.triggerAnimations.ShowHowToRelease();
                    break;

                case ManoGestureTrigger.PICK:
                    ApplicationManager.Instance.howToInstructor.ShouldShowTriggerAnimationVisuals(true);
                    ApplicationManager.Instance.runTimeApplication.ShouldShowPick(true);
                    ApplicationManager.Instance.howToInstructor.triggerAnimations.ShowHowToPick();
                    break;

                case ManoGestureTrigger.DROP:
                    ApplicationManager.Instance.howToInstructor.ShouldShowTriggerAnimationVisuals(true);
                    ApplicationManager.Instance.runTimeApplication.ShouldShowDrop(true);
                    ApplicationManager.Instance.howToInstructor.triggerAnimations.ShowHowToDrop();
                    break;

                default:
                    break;
                }
            }
        }
        catch (System.Exception ex)
        {
            Debug.Log("I cant assign trigger");
        }
    }
    //This is how the system responds to user input
    private void RepondToUserActions()
    {
        //This never stops because it never reaches the Stop responding
        if (_shouldRespondToUserInput)
        {
            ManoGestureTrigger detectedTrigger = ManomotionManager.Instance.Hand_infos[0].hand_info.gesture_info.mano_gesture_trigger;

            if (detectedTrigger == requestedTrigger && detectedTrigger != ManoGestureTrigger.NO_GESTURE)
            {
                HandleCorrectUserGestureInput();
            }
        }
    }
Esempio n. 14
0
    /// <summary>
    /// Displays the visual information of the performed trigger gesture.
    /// </summary>
    /// <param name="bounding_box">Bounding box.</param>
    /// <param name="triggerGesture">Trigger gesture.</param>
    void TriggerDisplay(TrackingInfo trackingInfo, ManoGestureTrigger triggerGesture)
    {
        if (GetCurrentPooledTrigger())
        {
            GameObject triggerVisualInformation = GetCurrentPooledTrigger();

            triggerVisualInformation.SetActive(true);

            triggerVisualInformation.name = triggerGesture.ToString();
            triggerVisualInformation.GetComponent <TriggerGizmo>().InitializeTriggerGizmo(triggerGesture);

            triggerVisualInformation.GetComponent <RectTransform>().position = ManoUtils.Instance.CalculateScreenPosition(trackingInfo.palm_center, trackingInfo.depth_estimation);
        }
    }
Esempio n. 15
0
    /// <summary>
    /// Displays the visual information of the performed trigger gesture.
    /// </summary>
    /// <param name="bounding_box">Bounding box.</param>
    /// <param name="triggerGesture">Trigger gesture.</param>
    void TriggerDisplay(BoundingBox bounding_box, ManoGestureTrigger triggerGesture)
    {
        GameObject triggerVisualInformation = Instantiate(triggerTextPrefab);

        triggerVisualInformation.name = triggerGesture.ToString();
        triggerVisualInformation.GetComponent <TriggerGizmo>().SetTriggerGizmoVisualization(triggerGesture);
        triggerVisualInformation.transform.SetParent(transform);
        triggerVisualInformation.transform.localPosition = new Vector2((bounding_box.top_left.x + bounding_box.width / 2) * Screen.width, (1 - bounding_box.top_left.y - bounding_box.height / 2) * Screen.height);

        float midX = (bounding_box.top_left.x + bounding_box.width / 2);
        float midY = (1 - bounding_box.top_left.y - bounding_box.height / 2);

        triggerVisualInformation.GetComponent <RectTransform>().position = Camera.main.ViewportToScreenPoint(new Vector2(midX, midY));
    }
Esempio n. 16
0
    /// <summary>
    /// Displays information regarding the Trigger Gesture of the detected hand
    /// </summary>
    /// <param name="gesture_info"></param>
    void DisplayTriggerGesture(GestureInfo gesture_info)
    {
        triggerGestureGizmo.SetActive(Show_trigger_gesture);
        if (Show_trigger_gesture)
        {
            ManoGestureTrigger trigger = gesture_info.mano_gesture_trigger;
            switch (trigger)
            {
            case ManoGestureTrigger.CLICK_GESTURE:
                triggerGestureText.text = "Trigger: Click";
                break;

            case ManoGestureTrigger.SWIPE_LEFT_GESTURE:
                triggerGestureText.text = "Trigger: Swipe Left";
                break;

            case ManoGestureTrigger.SWIPE_RIGHT_GESTURE:
                triggerGestureText.text = "Trigger: Swipe Right";
                break;

            case ManoGestureTrigger.GRAB_GESTURE:
                triggerGestureText.text = "Trigger: Grab";
                break;

            case ManoGestureTrigger.TAP_POINTING_GESTURE:
                triggerGestureText.text = "Trigger: Tap";
                break;

            case ManoGestureTrigger.RELEASE_PINCH:
                triggerGestureText.text = "Trigger: Release Pinch";
                break;

            case ManoGestureTrigger.GRAB_PINCH:
                triggerGestureText.text = "Trigger: Grab Pinch";
                break;

            case ManoGestureTrigger.RELEASE_GESTURE:
                triggerGestureText.text = "Trigger: Release";
                break;

            case ManoGestureTrigger.NO_GESTURE:
                triggerGestureText.text = "Trigger: ";
                break;

            default:
                triggerGestureText.text = "Trigger: ";
                break;
            }
        }
    }
Esempio n. 17
0
 /// <summary>
 /// Display Visual information of the detected trigger gesture.
 /// In the case where a click is intended (Open pinch, Closed Pinch, Open Pinch) we are clearing out the visual information that are generated from the pick/drop
 /// </summary>
 /// <param name="triggerGesture">Requires an input of trigger gesture.</param>
 void DisplayTriggerGesture(ManoGestureTrigger triggerGesture, BoundingBox bounding_box)
 {
     if (triggerGesture != ManoGestureTrigger.NO_GESTURE)
     {
         if (displayPick)
         {
             if (triggerGesture == ManoGestureTrigger.PICK)
             {
                 TriggerDisplay(bounding_box, ManoGestureTrigger.PICK);
             }
         }
         if (displayDrop)
         {
             if (triggerGesture == ManoGestureTrigger.DROP)
             {
                 if (previousTrigger != ManoGestureTrigger.CLICK)
                 {
                     TriggerDisplay(bounding_box, ManoGestureTrigger.DROP);
                 }
             }
         }
         if (displayClick)
         {
             if (triggerGesture == ManoGestureTrigger.CLICK)
             {
                 TriggerDisplay(bounding_box, ManoGestureTrigger.CLICK);
                 if (GameObject.Find("PICK"))
                 {
                     Destroy(GameObject.Find("PICK"));
                 }
             }
         }
         if (displayGrab)
         {
             if (triggerGesture == ManoGestureTrigger.GRAB_GESTURE)
             {
                 TriggerDisplay(bounding_box, ManoGestureTrigger.GRAB_GESTURE);
             }
         }
         if (displayRelease)
         {
             if (triggerGesture == ManoGestureTrigger.RELEASE_GESTURE)
             {
                 TriggerDisplay(bounding_box, ManoGestureTrigger.RELEASE_GESTURE);
             }
         }
     }
     previousTrigger = triggerGesture;
 }
Esempio n. 18
0
 private void Initialize()
 {
     grab         = ManoGestureContinuous.CLOSED_HAND_GESTURE;
     pinch        = ManoGestureContinuous.HOLD_GESTURE;
     openPinch    = ManoGestureContinuous.OPEN_PINCH_GESTURE;
     click        = ManoGestureTrigger.CLICK;
     grabTrigger  = ManoGestureTrigger.GRAB_GESTURE;
     cubeRenderer = GetComponent <Renderer>();
     cubeRenderer.sharedMaterial = arCubeMaterial[0];
     cubeRenderer.material       = arCubeMaterial[0];
     handCollider   = GameObject.FindGameObjectsWithTag("Player")[0];
     actionCoolDown = 0;
     defaultParent  = transform.parent.gameObject;
     FreeFall();
 }
    /// <summary>
    /// Updates the color of the line renderer, that connects the outer/contour points, according to the gesture performed.
    /// </summary>
    /// <param name="gesture_info">Requires the gesture information from the detected hand</param>
    /// <param name="index">Requires the gesture information from the detected hand</param>
    void UpdateLineColor(GestureInfo gesture_info, int index)
    {
        ManoGestureTrigger trigger = gesture_info.mano_gesture_trigger;

        switch (trigger)
        {
        case ManoGestureTrigger.NO_GESTURE:
            break;

        case ManoGestureTrigger.CLICK:
            HighLightWithColor(_clickLineColor, index);
            break;

        case ManoGestureTrigger.SWIPE_LEFT:
            break;

        case ManoGestureTrigger.SWIPE_RIGHT:
            break;

        case ManoGestureTrigger.GRAB:
            HighLightWithColor(_grabLineColor, index);
            break;

        case ManoGestureTrigger.TAP_POINTING:
            HighLightWithColor(_tapLineColor, index);
            break;

        case ManoGestureTrigger.DROP:
            HighLightWithColor(_releasePinchLineColor, index);
            break;

        case ManoGestureTrigger.PICK:
            HighLightWithColor(_grabPinchLineColor, index);
            break;

        case ManoGestureTrigger.RELEASE:
            HighLightWithColor(_releaseLineColor, index);
            break;

        default:
            break;
        }
    }
Esempio n. 20
0
    public virtual void InitializeTriggerGizmo(ManoGestureTrigger triggerGesture)
    {
        this.transform.localScale = originalScale;
        canExpand = true;
        if (!triggerLabelText)
        {
            triggerLabelText = GetComponent <Text>();
        }


        switch (triggerGesture)
        {
        case ManoGestureTrigger.CLICK:

            triggerLabelText.text  = "Click";
            triggerLabelText.color = clickColor;
            break;

        case ManoGestureTrigger.DROP:
            triggerLabelText.text  = "Drop";
            triggerLabelText.color = dropColor;
            break;

        case ManoGestureTrigger.PICK:
            triggerLabelText.text  = "Pick";
            triggerLabelText.color = pickColor;
            break;

        case ManoGestureTrigger.GRAB_GESTURE:
            triggerLabelText.text  = "Grab";
            triggerLabelText.color = grabColor;
            break;

        case ManoGestureTrigger.RELEASE_GESTURE:
            triggerLabelText.text  = "Release";
            triggerLabelText.color = releaseColor;
            break;

        default:
            break;
        }
    }
Esempio n. 21
0
 private void Initialize()
 {
     grab         = ManoGestureContinuous.CLOSED_HAND_GESTURE;
     pinch        = ManoGestureContinuous.HOLD_GESTURE;
     openPinch    = ManoGestureContinuous.OPEN_PINCH_GESTURE;
     click        = ManoGestureTrigger.CLICK;
     grabTrigger  = ManoGestureTrigger.GRAB_GESTURE;
     cubeRenderer = GetComponent <Renderer>();
     cubeRenderer.sharedMaterial = arCubeMaterial[0];
     cubeRenderer.material       = arCubeMaterial[0];
     actionCoolDown  = 0;
     defaultParent   = transform.parent.gameObject;
     _arDebugManager = GameObject.Find("AR Session Origin").GetComponent <ARDebugManager>();
     // colliding = null;
     // FreeFall();
     // if (BoltNetwork.IsServer)
     // {
     //     _arDebugManager.LogInfo($"You are the server, you can move me");
     // }
 }
Esempio n. 22
0
    public virtual void SetTriggerGizmoVisualization(ManoGestureTrigger triggerGesture)
    {
        if (!triggerLabelText)
        {
            triggerLabelText = GetComponent <Text>();
        }
        switch (triggerGesture)
        {
        case ManoGestureTrigger.CLICK:

            triggerLabelText.text  = "Click";
            triggerLabelText.color = clickColor;
            break;

        case ManoGestureTrigger.DROP:
            triggerLabelText.text  = "Drop";
            triggerLabelText.color = dropColor;
            break;

        case ManoGestureTrigger.PICK:
            triggerLabelText.text  = "Pick";
            triggerLabelText.color = pickColor;
            break;

        case ManoGestureTrigger.GRAB_GESTURE:
            triggerLabelText.text  = "Grab";
            triggerLabelText.color = grabColor;
            break;

        case ManoGestureTrigger.RELEASE_GESTURE:
            triggerLabelText.text  = "Release";
            triggerLabelText.color = releaseColor;
            break;

        default:
            break;
        }
    }
Esempio n. 23
0
 private void Initialize()
 {
     grab         = ManoGestureContinuous.CLOSED_HAND_GESTURE;
     pinch        = ManoGestureContinuous.HOLD_GESTURE;
     openPinch    = ManoGestureContinuous.OPEN_PINCH_GESTURE;
     click        = ManoGestureTrigger.CLICK;
     grabTrigger  = ManoGestureTrigger.GRAB_GESTURE;
     cubeRenderer = GetComponent <Renderer>();
     cubeRenderer.sharedMaterial = arCubeMaterial[0];
     cubeRenderer.material       = arCubeMaterial[0];
     actionCoolDown  = 0;
     _arDebugManager = GameObject.Find("AR Session Origin").GetComponent <ARDebugManager>();
     // colliding = null;
     // FreeFall();
     if (entity.IsOwner)
     {
         gameObject.GetComponent <Rigidbody>().useGravity = true;
     }
     else
     {
         gameObject.GetComponent <Rigidbody>().useGravity = false;
     }
 }
 public bool IsReleaseGesture(ManoGestureTrigger trigger)
 {
     return(trigger == ManoGestureTrigger.DROP);
 }
 public bool IsGrabPieceGesture(ManoGestureTrigger trigger)
 {
     return(trigger == ManoGestureTrigger.PICK);
 }
    IEnumerator DisableTriggersAfterDelay(float time, ManoGestureTrigger trigger)
    {
        yield return(new WaitForSeconds(time));

        ApplicationManager.Instance.runTimeApplication.DisableAllTrigersExcept(trigger);
    }