71 lines
1.2 KiB
C#
71 lines
1.2 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.Events;
|
|||
|
|
using UnityEngine.EventSystems;
|
|||
|
|
using System.Collections;
|
|||
|
|
using UnityEngine.UI;
|
|||
|
|
using System;
|
|||
|
|
|
|||
|
|
[System.Serializable]
|
|||
|
|
//System to use touch buttons to check if the button is being pressing or released
|
|||
|
|
public class touchButtonEventSystem : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
|||
|
|
{
|
|||
|
|
[Header ("Main Settings")]
|
|||
|
|
[Space]
|
|||
|
|
|
|||
|
|
public bool eventEnabled;
|
|||
|
|
|
|||
|
|
[Space]
|
|||
|
|
[Header ("Debug")]
|
|||
|
|
[Space]
|
|||
|
|
|
|||
|
|
public bool buttonPressed;
|
|||
|
|
|
|||
|
|
[Space]
|
|||
|
|
[Header ("Events Settings")]
|
|||
|
|
[Space]
|
|||
|
|
|
|||
|
|
public UnityEvent eventOnPressDown;
|
|||
|
|
public UnityEvent eventOnPressUp;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//if you press the button
|
|||
|
|
public void OnPointerDown (PointerEventData eventData)
|
|||
|
|
{
|
|||
|
|
if (eventEnabled) {
|
|||
|
|
eventOnPressDown.Invoke ();
|
|||
|
|
|
|||
|
|
buttonPressed = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//if you release the button
|
|||
|
|
public void OnPointerUp (PointerEventData eventData)
|
|||
|
|
{
|
|||
|
|
if (eventEnabled) {
|
|||
|
|
eventOnPressUp.Invoke ();
|
|||
|
|
|
|||
|
|
buttonPressed = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void setEventEnabledState (bool state)
|
|||
|
|
{
|
|||
|
|
eventEnabled = state;
|
|||
|
|
|
|||
|
|
if (buttonPressed) {
|
|||
|
|
eventOnPressUp.Invoke ();
|
|||
|
|
|
|||
|
|
buttonPressed = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//if the button is disabled, reset the button
|
|||
|
|
void OnDisable ()
|
|||
|
|
{
|
|||
|
|
if (eventEnabled && buttonPressed) {
|
|||
|
|
eventOnPressUp.Invoke ();
|
|||
|
|
|
|||
|
|
buttonPressed = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|