title: IsPointerOverGameObject always returns false for touch
body: <p>IsPointerOverGameObject always returns <code>false</code> for touch.
  I have tried all solutions that I could find.</p>
  
  <p>It works perfectly in Editor - clicks are blocked from falling through UI, but no a mobile this method always returns false.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>private static bool IsPointerOverGameObject()
      {
          bool isPointerOverGameObject = EventSystem.current.IsPointerOverGameObject();
  
          for (int i = 0; i &lt; Input.touchCount; i++)
          {
              Touch touch = Input.touches[i];
              if (touch.phase != TouchPhase.Canceled &amp;&amp; touch.phase != TouchPhase.Ended)
              {
                  if (EventSystem.current.IsPointerOverGameObject(Input.touches[i].fingerId))
                  {
                      isPointerOverGameObject = true;
                      break;
                  }
              }
          }
  
          return isPointerOverGameObject;
      }
  
  public void OnMouseDown()
  {
      if (IsPointerOverGameObject())
      {
          return;
      }
  
      // code
  }
  </code></pre>