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); } }
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 } }