123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- using System.Linq;
- using Core.Event.Event;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using UnityEngine;
- public class RedDotWidget : MonoBehaviour
- {
- public int RedDotConfigId;
- public int GroupId;
- public int Layer;
- public int[] LinkGroupIds;
- public int UnlockId;
- public GameObject RedDotRoot;
-
- [ContextMenu("test")]
- public void Test()
- {
- RedDotUpdate(new DefaultEventData(){eventData = 0});
- }
- public void Start()
- {
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotUpdate, RedDotUpdate);
- EventManager.Instance.AddEventListener(CustomEventType.RedDotUpdate, RedDotUpdate);
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotChangeState, RedDotChangeState);
- EventManager.Instance.AddEventListener(CustomEventType.RedDotChangeState, RedDotChangeState);
- ReddotConfig reddotConfig = ConfigComponent.Instance.Get<ReddotConfig>(RedDotConfigId);
- RedDotRoot.SetActive(false);
- GroupId = reddotConfig.GroupID;
- Layer = reddotConfig.Layer;
- LinkGroupIds = reddotConfig.LinkGroupID;
- RedDotUpdate(new DefaultEventData(){eventData = 0});
- }
- private void RedDotChangeState(IEventData e)
- {
- if (UnlockId != 0)
- {
- if (!ULockManager.Instance.IsULock(UnlockId))
- {
- return;
- }
- }
- ReddotConfig reddotConfig = ConfigComponent.Instance.Get<ReddotConfig>(RedDotConfigId);
- DefaultEventData data = (DefaultEventData)e;
- int[] eventData = data.eventData as int[];
- if (eventData[0] == RedDotConfigId)
- {
- if (eventData[1] == 0)
- {
- // if (reddotConfig.Visible == 1)
- {
- RedDotRoot.SetActive(false);
- }
- }
- else
- {
- RedDotRoot.SetActive(true);
- }
- }
- }
- public void CustomInit(int reddDotConfigId)
- {
- RedDotConfigId = reddDotConfigId;
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotUpdate, RedDotUpdate);
- EventManager.Instance.AddEventListener(CustomEventType.RedDotUpdate, RedDotUpdate);
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotChangeState, RedDotChangeState);
- EventManager.Instance.AddEventListener(CustomEventType.RedDotChangeState, RedDotChangeState);
- ReddotConfig reddotConfig = ConfigComponent.Instance.Get<ReddotConfig>(RedDotConfigId);
- RedDotRoot.SetActive(false);
- GroupId = reddotConfig.GroupID;
- Layer = reddotConfig.Layer;
- LinkGroupIds = reddotConfig.LinkGroupID;
- RedDotUpdate(new DefaultEventData(){eventData = 0});
- }
- private void RedDotUpdate(IEventData e)
- {
- DefaultEventData data = (DefaultEventData)e;
- if ((int)data.eventData != 0 && (int)data.eventData != GroupId)
- {
- return;
- }
- if (UnlockId != 0)
- {
- if (ULockManager.Instance.IsULock(UnlockId))
- {
- if (RedDotManager.Instance.TargetRedDotIsEnable(RedDotConfigId))
- {
- RedDotRoot.SetActive(true);
- ReddotConfig reddotConfig = ConfigComponent.Instance.Get<ReddotConfig>(RedDotConfigId);
- if (reddotConfig.EnableForTarget != 0)
- {
- bool isEnable = RedDotManager.Instance.TargetRedDotIsEnable2(reddotConfig.EnableForTarget);
- if (isEnable)
- {
- RedDotRoot.SetActive(true);
- }
- else
- {
- RedDotRoot.SetActive(false);
- }
- }
- }
- else
- {
- RedDotRoot.SetActive(false);
- }
- }
- }
- else
- {
- if (RedDotManager.Instance.TargetRedDotIsEnable(RedDotConfigId))
- {
- RedDotRoot.SetActive(true);
- ReddotConfig reddotConfig = ConfigComponent.Instance.Get<ReddotConfig>(RedDotConfigId);
- if (reddotConfig.EnableForTarget != 0)
- {
- bool isEnable = RedDotManager.Instance.TargetRedDotIsEnable2(reddotConfig.EnableForTarget);
- if (isEnable)
- {
- RedDotRoot.SetActive(true);
- }
- else
- {
- RedDotRoot.SetActive(false);
- }
- }
- }
- else
- {
- RedDotRoot.SetActive(false);
- }
- }
- }
- public void OnDestroy()
- {
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotUpdate, RedDotUpdate);
- EventManager.Instance.RemoveEventListener(CustomEventType.RedDotChangeState, RedDotChangeState);
- }
- }
|