Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Problem with Input.GetTouch(0).phase == TouchPhase.Stationary

Discussion in 'Scripting' started by herbie, Sep 28, 2015.

  1. herbie

    herbie

    Joined:
    Feb 11, 2012
    Posts:
    237
    I have this code:
    Code (JavaScript):
    1. if (Input.touchCount > 0)
    2.     {
    3.         var rayTouchpad = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
    4.         var hitTouchpad: RaycastHit;
    5.  
    6.         if (Input.GetTouch(0).phase == TouchPhase.Stationary && Touchpad.Raycast(rayTouchpad, hitTouchpad, Mathf.Infinity))
    7.         {
    8.             fingerOnTouchpad++;
    9.         }
    10.     }
    11.     if (fingerOnTouchpad > fingerOnTouchpadOld)
    12.     {
    13.         test1++;
    14.        
    15.     }
    16.     if (fingerOnTouchpad <= fingerOnTouchpadOld)
    17.     {
    18.         test2++
    19.     }
    20.     fingerOnTouchpadOld = fingerOnTouchpad;
    When I don't have my finger on the Raycast, test2 is increasing. Correct.
    When I put my finger on the Raycast and does not move, test1 is increasing and test2 not. That's also correct.
    But when I put my finger on the Raycast and move it, test2 is increasing. But I don't want that.
    What am I doing wrong?
     
    Last edited: Sep 28, 2015
  2. herbie

    herbie

    Joined:
    Feb 11, 2012
    Posts:
    237
    Actually, what I want to detect is when the finger is swiped out of the raycast (without lifting up from the screen).
     
  3. LeftyRighty

    LeftyRighty

    Joined:
    Nov 2, 2012
    Posts:
    5,148
    that doesn't make sense, the raycast is being cast from where the touch is, the input will never be "out of" the raycast...