| 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);    }}
 |