public void OnPointerDown(MixedRealityPointerEventData eventData) { if (planetController == null) { planetController = FindObjectOfType <PlanetPreviewController>(); } switch (ForceState) { case State.Root: if (eventData.Pointer is IMixedRealityNearPointer) { StartManipulation(); _manipulationHandler.OnPointerDown(eventData); } else if (eventData.Pointer == null) { if (planetController != null) { if (previewTarget == null) { previewTarget = GetComponentInChildren <UiPreviewTarget>(); } if (previewTarget != null) { planetController.OnButtonSelected(previewTarget.slotId); } } StartAttraction(true); } else { StartAttraction(IsGgvOrDesktopController(eventData.Pointer.Controller)); } break; case State.Dwell: StartManipulation(); _manipulationHandler.OnPointerDown(eventData); break; case State.Attraction: case State.Free: StartManipulation(); if (eventData.Pointer != null) { _manipulationHandler.OnPointerDown(eventData); } break; case State.Manipulation: case State.None: break; default: throw new ArgumentOutOfRangeException(); } }
IEnumerator WaitForTarget() { var waitForOneSecond = new WaitForSeconds(1); target = GetTargetById(targetSlotId); while (target == null) { yield return(waitForOneSecond); target = GetTargetById(targetSlotId); } Initialize(); }