You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.8 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
namespace CnControls
{
/// <summary>
/// Simple button class
/// Handles press, hold and release, just like a normal button
/// </summary>
public class SimpleButton : MonoBehaviour, IPointerUpHandler, IPointerDownHandler
{
/// <summary>
/// The name of the button
/// </summary>
public string ButtonName = "Jump";
/// <summary>
/// Utility object that is registered in the system
/// </summary>
private VirtualButton _virtualButton;
/// <summary>
/// It's pretty simple here
/// When we enable, we register our button in the input system
/// </summary>
private void OnEnable()
{
_virtualButton = _virtualButton ?? new VirtualButton(ButtonName);
CnInputManager.RegisterVirtualButton(_virtualButton);
}
/// <summary>
/// When we disable, we unregister our button
/// </summary>
private void OnDisable()
{
CnInputManager.UnregisterVirtualButton(_virtualButton);
}
/// <summary>
/// uGUI Event system stuff
/// It's also utilised by the editor input helper
/// </summary>
/// <param name="eventData">Data of the passed event</param>
public void OnPointerUp(PointerEventData eventData)
{
_virtualButton.Release();
}
/// <summary>
/// uGUI Event system stuff
/// It's also utilised by the editor input helper
/// </summary>
/// <param name="eventData">Data of the passed event</param>
public void OnPointerDown(PointerEventData eventData)
{
_virtualButton.Press();
}
}
}