How to allow the pressing of two "on-screen" buttons simultaneously (Unity UI , Button class, Event Triggers)

Started by
1 comment, last by Shaarigan 6 years, 5 months ago

OK so I have this code working and the methods are being called at the times I'd expected (ie. when the mouse hovers over the button and stops hovering over it)

But when I test it on an Android device, it is not possible to press both buttons at once. The only button that gets pressed is the one where the touch-down happened.

 public class EventHandlerThrust : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
 {
 public static EventHandlerThrust instanceOf;

 [HideInInspector] public bool isButtonPressed = false;

 void Start()
 {
     instanceOf = this;

 }

 public void OnPointerEnter(PointerEventData eventData)
 {
     isButtonPressed = true;
     Debug.Log("OnPointerEnter Interfaceyyyy called.");
 }

 public void OnPointerExit(PointerEventData eventData)
 {
     isButtonPressed = false;
     Debug.Log("OnPointerExit Interfaceyyyy called.");
 }
 }

So is it possible to allow the user to press both buttons by holding his thumb over both at the same time, using the Event Trigger System? Or do I have to implement some other kind of Input system?

Advertisement
Quote

As far as I know the UI buttons use pointer, which simulates mouse clicks. That's why you cant achieve multi-touch using the default buttons. The UI is intended for menus which usually only take 1 touch at a time.

You need either a complete input system or utilize touch input for mobile devices. Input.GetTouch contains all the information you need about touch input.

You could write an interface for this that captures touch input and maps that to Unity UI but you wont get any hover events for touch as there dosent exists a mouse that could "hover" anything.

I wrote such a touch UI about 2 years ago for Unity when there was the need for a car control stick

This topic is closed to new replies.

Advertisement