Ejemplo n.º 1
0
 void OnNewFinger(FingerObj newFinger)
 {
     if (TouchHelper.IsObjectUnderTouch(newFinger.originTouch, tapToMoveTarget.transform, .5f))
     {
         fingerOfInterest = newFinger;
         fingerOfInterest.OnStatusChange += FingerStatusChange;
     }
 }
Ejemplo n.º 2
0
    void OnNewFinger(FingerObj newFinger)
    {
        Vector2 distance = (Vector2)newFinger.transform.position - (Vector2)transform.position;

        if (distance.magnitude <= maxTapDistance)
        {
            fingerOfInterest = newFinger;
            fingerOfInterest.OnStatusChange += FingerStatusChange;
        }
    }
Ejemplo n.º 3
0
 void FingerStatusChange(FingerObj foi)
 {
     Debug.Log(foi.name + " state's changed to " + foi.currentState);
     if (foi.currentState == FingerObj.TouchState.Ending)
     {
         // Swing on finger up
         SwingStick();
     }
     else if (foi.currentState == FingerObj.TouchState.Dragging)
     {
         // We don't care about fingers being dragged
         fingerOfInterest.OnStatusChange -= FingerStatusChange;
         fingerOfInterest = null;
     }
 }
Ejemplo n.º 4
0
 // Update is called once per frame
 void Update()
 {
     foreach (Touch thisTouch in Input.touches)
     {
         if (thisTouch.phase == TouchPhase.Began)
         {
             // we must have a new baby finger!
             FingerObj newFinger = Instantiate(fingerPrefab, TouchHelper.GetTouchWorldPosition(thisTouch), Quaternion.identity);
             // Instantiate all member variables the ugly way!
             newFinger.fingerID           = thisTouch.fingerId;
             newFinger.transform.position = TouchHelper.GetTouchWorldPosition(thisTouch);
             newFinger.touchLastFrame     = newFinger.touch = newFinger.originTouch = thisTouch;
             currentFingers.Add(newFinger);
             if (OnNewFinger != null)
             {
                 OnNewFinger(newFinger);
             }
         }
     }
     if (Input.mousePresent)
     {
         if (Input.GetMouseButtonDown(0))
         {
             // Debug.Log( "we got a mouse click");
             // Create a new baby mouse finger 🐁
             Touch     thisTouch = TouchHelper.GetFakeMouseTouch();
             FingerObj newFinger = Instantiate(fingerPrefab, TouchHelper.GetTouchWorldPosition(thisTouch), Quaternion.identity);
             // Instantiate all member variables the ugly way!
             newFinger.fingerID           = thisTouch.fingerId;
             newFinger.transform.position = TouchHelper.GetTouchWorldPosition(thisTouch);
             newFinger.touchLastFrame     = newFinger.touch = newFinger.originTouch = thisTouch;
             currentFingers.Add(newFinger);
             if (OnNewFinger != null)
             {
                 OnNewFinger(newFinger);
             }
         }
     }
     foreach (FingerObj thisFinger  in currentFingers)
     {
         thisFinger.UpdateFinger();
         if (FingersDoneUpdating != null)
         {
             FingersDoneUpdating();
         }
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Check out <see cref="TouchManager.FingersDoneUpdating"/>. Only calls when the status changes, not every frame.
 /// </summary>
 void FingerStatusChange(FingerObj foi)
 {
     // Debug.Log( foi.name + " state's changed to " + foi.currentState );
     if (foi.currentState == FingerObj.TouchState.Ending)
     {
         if (currentMode == InputMode.ReceivingInput)
         {
             if (!actLikeJoystick)
             {
                 Shoot();
             }
             fingerOfInterest = null;
             currentMode      = InputMode.Idle;
         }
         else
         {
             fingerOfInterest = null;
         }
     }
     else if (foi.currentState == FingerObj.TouchState.Dragging)
     {
         StartCoroutine(GolfSwingRoutine());
     }
 }
 public static bool IsFingerLeaving(FingerObj finger)
 {
     return(finger.touch.phase == TouchPhase.Canceled || finger.touch.phase == TouchPhase.Ended);
 }