コード例 #1
0
 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;
         }
     }
 }
コード例 #2
0
 void processGestureInDrawMode(TouchGestureRecognizer.TouchGesture touchGesture)
 {
     if (touchGesture.GestureType == TouchGestureRecognizer.TouchGestureType.FIVE_POINTERS)
     {
         setMenuItemActive(true);
         _currentState = VirtualPadState.MENU_SELECTION;
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
    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);
    }