Example #1
0
    IEnumerator GetPalmPlane()
    {
        /*zjsteni roviny dlane pro urceni klikaci roviny - nepouziva se, nepresne*/
        Plane plane;
        Plane firstPlane;

        firstPlane = leapController.ControllingHandPlane();

        while (true)
        {
            plane = leapController.ControllingHandPlane();


            if (!leapController.ControllingHandInView() || (plane.normal - firstPlane.normal).magnitude > 0.1)
            {
                loadingHand.Restart();
                firstPlane = plane;
            }

            if (loadingHand.HasFinished())
            {
                //print (leapController.ControllingHandInView());
                plane = leapController.ControllingHandPlane();
                //print (plane.distance);
                //print (plane.normal);
                ClickPlaneScanned(plane);
                break;
            }

            yield return(null);
        }
    }
Example #2
0
    void CheckHovering()
    {
        /*zjisteni jestli je prst nad tlacitkem (ma se pustit timer pro vyber tlacitka pri ukazovani)*/

        Vector3 controllerPos = leapController.GetControlScreenPosition();
        Vector3 pos           = Camera.main.ScreenToWorldPoint(controllerPos);

        var pointer = new PointerEventData(EventSystem.current);         // pointer event for Execute

        RefreshWorldRect();
        if (worldRect.Contains(controllerPos) && !hovering)
        {
            if (Mathf.Abs((loadingCircle.LastSelected() - Time.realtimeSinceStartup)) >= afterSelectDelay)              //aby se omylem nevybiralo v menu dalsi polozka hned po tom co se neco vybere
            {
                hovering = true;
                loadingCircle.Initiate(pos);
            }
        }
        else if (!worldRect.Contains(controllerPos) && hovering)
        {
            hovering = false;
            loadingCircle.EarlyStop();
            ExecuteEvents.Execute(gameObject, pointer, ExecuteEvents.deselectHandler);             //odoznaci kdyz se miri jinam
        }
        if (worldRect.Contains(controllerPos))
        {
            loadingCircle.ChangePosition(pos);
        }

        if (worldRect.Contains(controllerPos) && loadingCircle.HasFinished())
        {
            //thisButton.Select();
            ExecuteEvents.Execute(gameObject, pointer, ExecuteEvents.selectHandler);             //oznaci kdyz je kliknuto
            ExecuteEvents.Execute(gameObject, pointer, ExecuteEvents.pointerClickHandler);       //nasledne klikne
        }
    }