void processGestureInMenuSelection(TouchGestureRecognizer.TouchGesture touchGesture) { if (touchGesture.GestureType == TouchGestureRecognizer.TouchGestureType.SINGLE_TOUCH_DOWN) { TouchPointerData touchData = (TouchPointerData)touchGesture.MetaData; Vector2 rawLocalTapPos = new Vector2(touchData.RelX, touchData.RelY); Vector2 adjustedLocalTapPos = GlobalUtilities.ConvertMobileRelPosToUnityRelPos(rawLocalTapPos); if (menuManipLocalBound.Contains(adjustedLocalTapPos)) { _menuManip.GetComponent <MeshRenderer>().material = menuMaterials[1]; } else if (menuDrawLocalBound.Contains(adjustedLocalTapPos)) { _menuDraw.GetComponent <MeshRenderer>().material = menuMaterials[3]; } } else if (touchGesture.GestureType == TouchGestureRecognizer.TouchGestureType.SINGLE_TAP) { Vector2 rawLocalTapPos = (Vector2)touchGesture.MetaData; Vector2 adjustedLocalTapPos = GlobalUtilities.ConvertMobileRelPosToUnityRelPos(rawLocalTapPos); if (menuManipLocalBound.Contains(adjustedLocalTapPos)) { setMenuItemActive(false); _currentState = VirtualPadState.OBJECT_MANIP; } else if (menuDrawLocalBound.Contains(adjustedLocalTapPos)) { setMenuItemActive(false); _currentState = VirtualPadState.DRAW; } } }
void processGestureInDrawMode(TouchGestureRecognizer.TouchGesture touchGesture) { if (touchGesture.GestureType == TouchGestureRecognizer.TouchGestureType.FIVE_POINTERS) { setMenuItemActive(true); _currentState = VirtualPadState.MENU_SELECTION; } }
public VirtualPadManager(GameObject virtualPad, GameObject menuManip, GameObject menuDraw) { _virtualPad = virtualPad; _currentState = VirtualPadState.OBJECT_MANIP; _menuManip = menuManip; _menuDraw = menuDraw; Bounds menuManipWorldBound = menuManip.GetComponent <Collider>().bounds; Vector3 localMin3D = _virtualPad.transform.InverseTransformPoint(menuManipWorldBound.min); Vector3 localMax3D = _virtualPad.transform.InverseTransformPoint(menuManipWorldBound.max); menuManipLocalBound = new Rect(new Vector2(localMin3D.x, localMin3D.y), new Vector2(localMax3D.x - localMin3D.x, localMax3D.y - localMin3D.y)); Bounds menuDrawWorldBound = menuDraw.GetComponent <Collider>().bounds; localMin3D = _virtualPad.transform.InverseTransformPoint(menuDrawWorldBound.min); localMax3D = _virtualPad.transform.InverseTransformPoint(menuDrawWorldBound.max); menuDrawLocalBound = new Rect(new Vector2(localMin3D.x, localMin3D.y), new Vector2(localMax3D.x - localMin3D.x, localMax3D.y - localMin3D.y)); setMenuItemActive(false); }
void Start() { _currentState = VirtualPadState.OBJECT_MANIP; if (gameCameraObject) { gameCamera = gameCameraObject.GetComponent <Camera>(); } if (gazePointObject) { gazePoint = gazePointObject.GetComponent <Transform>(); } if (eventListenerObject) { eventTouchListener = eventListenerObject.GetComponent <TabletTouchEventManager>(); } pointerReceivedCallback = this.pointerReceivedHandler; gestureRecognizedCallback = this.gestureRecognizedHandler; if (eventTouchListener != null) { eventTouchListener.SetTouchReceivedEventListener(pointerReceivedCallback); eventTouchListener.SetGestureRecognizedListener(gestureRecognizedCallback); } boardObjectBound = boardObject.GetComponent <Collider>().bounds; fingers = new GameObject[] { finger1, finger2, finger3, finger4, finger5 }; for (int i = 0; i < fingers.Length; i++) { fingers[i].SetActive(false); } padTranslationByPointers.CriticData = new Vector2(0, 0); padScaleByPointers.CriticData = new Vector2(0, 0); setMenuActiveness(false); }