ShowHide_Toggle.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityEngine.EventSystems;
  4. using UnityEngine.UI;
  5. using Blue;
  6. public class ShowHide_Toggle : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IController
  7. {
  8. public List<Sprite> SpriteList;
  9. public Image mImage;
  10. private Toggle toggle;
  11. Color normalColor = new Color32(255, 255, 255, 255);
  12. Color changeColor = new Color32(255, 255, 255, 125);
  13. private IQueueSystem mQueueSystem;
  14. void Awake()
  15. {
  16. toggle = GetComponent<Toggle>();
  17. toggle.onValueChanged.AddListener(ShowHideLevel3);
  18. mQueueSystem = this.GetService<IQueueSystem>();
  19. mQueueSystem.Level3QueueCount.Register(mQueueSystemCountNotNull).UnRegisterWhenGameObjectDestroyed(gameObject);
  20. }
  21. private void OnEnable()
  22. {
  23. Debug.Log($"打开的数量:{mQueueSystem.Level3QueueCount.Value}");
  24. }
  25. public void OnPointerEnter(PointerEventData eventData)
  26. {
  27. mImage.color = normalColor;
  28. }
  29. public void OnPointerExit(PointerEventData eventData)
  30. {
  31. mImage.color = changeColor;
  32. }
  33. private void mQueueSystemCountNotNull(int newCount)
  34. {
  35. Debug.Log($"打开的数量:{mQueueSystem.Level3QueueCount.Value}");
  36. }
  37. private void ShowHideLevel3(bool on)
  38. {
  39. Debug.LogError("Level3Queue:" + mQueueSystem.Level3List.Count);
  40. if (on)
  41. mImage.sprite = SpriteList[0];
  42. else
  43. mImage.sprite = SpriteList[1];
  44. foreach (var go in mQueueSystem.Level3List)
  45. {
  46. go.SetActive(!on);
  47. }
  48. }
  49. }