54 lines
1.0 KiB
C#
54 lines
1.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Rewired.Demos
|
|
{
|
|
[AddComponentMenu("")]
|
|
[RequireComponent(typeof(Image))]
|
|
public class TouchButtonExample : MonoBehaviour, IPointerDownHandler, IEventSystemHandler, IPointerUpHandler
|
|
{
|
|
public bool allowMouseControl = true;
|
|
|
|
public bool isPressed { get; private set; }
|
|
|
|
private void Awake()
|
|
{
|
|
if (SystemInfo.deviceType == DeviceType.Handheld)
|
|
{
|
|
allowMouseControl = false;
|
|
}
|
|
}
|
|
|
|
private void Restart()
|
|
{
|
|
isPressed = false;
|
|
}
|
|
|
|
void IPointerDownHandler.OnPointerDown(PointerEventData eventData)
|
|
{
|
|
if (allowMouseControl || !IsMousePointerId(eventData.pointerId))
|
|
{
|
|
isPressed = true;
|
|
}
|
|
}
|
|
|
|
void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
|
|
{
|
|
if (allowMouseControl || !IsMousePointerId(eventData.pointerId))
|
|
{
|
|
isPressed = false;
|
|
}
|
|
}
|
|
|
|
private static bool IsMousePointerId(int id)
|
|
{
|
|
if (id != -1 && id != -2)
|
|
{
|
|
return id == -3;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|