title: Solution for OnPointerExit() Triggering on Touch Release On Android?
body: <p>I have created some custom radial menu buttons for my Android game. The radial menu displays when the game object with the menu is touched. I'm using mouse events to activate the menu, which works in Unity and also when built to Android. When the menu is active, you can mouse or slide over a menu item to select it. If you then release on that menu item, it will pass the selection to the radial menu, which then takes the appropriate action.</p>
  
  <p>The following works in Unity:</p>
  
  <pre><code>public void OnPointerEnter (PointerEventData eventData)
  {
      myMenu.selected = this;
      Debug.Log ("Menu selection is now: " + this.action.ToString ());
      defaultColor = circle.color;
      circle.color = Color.white;
  }
  
  public void OnPointerExit (PointerEventData eventData)
  {
      myMenu.selected = null;
      Debug.Log ("Menu selection has been nulled out.");
      circle.color = defaultColor;
  }
  </code></pre>
  
  <p>However, it does not work correctly when built to Android. Via some debug testing, I've determined that in Unity, if I activate the menu and mouse over a menu item, then release the mouse, myMenu.selected is correctly assigned. However, on Android only, lifting my finger over the menu item processes a final OnPointerExit, which nulls it out, meaning that menu never gets a proper selection. The mouse does not behave this way--it doesn't treat the pointer as having exited when the mouse button is released.</p>
  
  <p>I can "solve" this problem by switching everything to touch, but then I cannot test using the Unity player and my mouse. So far, everything via mouse also worked correctly via touch. This is the first issue I've run into. Is there any clean solution for this? Or is the best solution to use macros to determine if I'm in the editor and have separate mouse and touch code for each?</p>