51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
#if PACKAGE_DOCS_GENERATION || UNITY_INPUT_SYSTEM_ENABLE_UI
|
|
using System;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.InputSystem.Layouts;
|
|
|
|
////TODO: custom icon for OnScreenButton component
|
|
|
|
namespace UnityEngine.InputSystem.OnScreen
|
|
{
|
|
/// <summary>
|
|
/// A button that is visually represented on-screen and triggered by touch or other pointer
|
|
/// input.
|
|
/// </summary>
|
|
[AddComponentMenu("Input/On-Screen Button")]
|
|
[HelpURL(InputSystem.kDocUrl + "/manual/OnScreen.html#on-screen-buttons")]
|
|
public class OnScreenButton : OnScreenControl, IPointerDownHandler, IPointerUpHandler
|
|
{
|
|
public void OnPointerUp(PointerEventData eventData)
|
|
{
|
|
SendValueToControl(0.0f);
|
|
}
|
|
|
|
public void OnPointerDown(PointerEventData eventData)
|
|
{
|
|
SendValueToControl(1.0f);
|
|
}
|
|
|
|
////TODO: pressure support
|
|
/*
|
|
/// <summary>
|
|
/// If true, the button's value is driven from the pressure value of touch or pen input.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This essentially allows having trigger-like buttons as on-screen controls.
|
|
/// </remarks>
|
|
[SerializeField] private bool m_UsePressure;
|
|
*/
|
|
|
|
[InputControl(layout = "Button")]
|
|
[SerializeField]
|
|
private string m_ControlPath;
|
|
|
|
protected override string controlPathInternal
|
|
{
|
|
get => m_ControlPath;
|
|
set => m_ControlPath = value;
|
|
}
|
|
}
|
|
}
|
|
#endif
|