KeyButton.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // /******************************************************************************
  2. // * File: KeyButton.cs
  3. // * Copyright (c) 2023 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
  4. // *
  5. // *
  6. // ******************************************************************************/
  7. using UnityEngine;
  8. using UnityEngine.Events;
  9. using UnityEngine.EventSystems;
  10. namespace QCHT.Samples.XRKeyboard
  11. {
  12. [System.Serializable]
  13. public class KeyEvent : UnityEvent<KeyButton>
  14. {
  15. }
  16. public abstract class KeyButton : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler,
  17. IPointerUpHandler
  18. {
  19. [SerializeField] private GameObject _hoverButton, _selectButton;
  20. [SerializeField] private AudioSource _audioSource;
  21. public KeyEvent inputEvent;
  22. public virtual void OnPointerEnter(PointerEventData eventData)
  23. {
  24. //_hoverButton.SetActive(true);
  25. }
  26. public virtual void OnPointerExit(PointerEventData eventData)
  27. {
  28. _selectButton.SetActive(false);
  29. }
  30. public virtual void OnPointerDown(PointerEventData eventData)
  31. {
  32. _selectButton.SetActive(true);
  33. _audioSource.Play();
  34. inputEvent?.Invoke(this);
  35. }
  36. public virtual void OnPointerUp(PointerEventData eventData)
  37. {
  38. _selectButton.SetActive(false);
  39. }
  40. }
  41. public enum KeySpecial
  42. {
  43. None,
  44. Delete,
  45. Shift,
  46. Enter,
  47. DeleteAll,
  48. SwitchObject
  49. }
  50. }