ButtonEffect.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using QFramework;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.EventSystems;
  6. public class ButtonEffect : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
  7. {
  8. public GameObject normailState, selectState, highlighterState;
  9. public void OnPointerEnter(PointerEventData eventData)
  10. {
  11. highlighterState.SetActive(true);
  12. normailState.SetActive(false);
  13. }
  14. public void OnPointerExit(PointerEventData eventData)
  15. {
  16. highlighterState.SetActive(false);
  17. normailState.SetActive(true);
  18. }
  19. float tmpTime = 0;
  20. public void Flashing(float time)
  21. {
  22. tmpTime += Time.deltaTime;
  23. if (tmpTime >= 0 && tmpTime <= 1)
  24. {
  25. SetLibraryBtnState(BtnState.highter);
  26. }
  27. else if (tmpTime > 1 && tmpTime <= 2)
  28. {
  29. SetLibraryBtnState(BtnState.normal);
  30. }
  31. else
  32. {
  33. tmpTime = 0;
  34. }
  35. }
  36. /// <summary>
  37. /// 设置工具库按钮状态
  38. /// </summary>
  39. /// <param name="select"></param>
  40. public void SetLibraryBtnState(BtnState state)
  41. {
  42. switch (state)
  43. {
  44. case BtnState.normal:
  45. normailState.SetActive(true);
  46. selectState.SetActive(false);
  47. highlighterState.SetActive(false);
  48. break;
  49. case BtnState.highter:
  50. normailState.SetActive(false);
  51. selectState.SetActive(false);
  52. highlighterState.SetActive(true);
  53. break;
  54. case BtnState.select:
  55. normailState.SetActive(false);
  56. selectState.SetActive(true);
  57. highlighterState.SetActive(false);
  58. break;
  59. default:
  60. break;
  61. }
  62. }
  63. }