using System; using UnityEngine; using UnityEngine.UI; public class HeroDebutWin : UIBase { [SerializeField] RectTransform activeRect; [SerializeField] RectTransform moveRect; [SerializeField] RectTransform startRect; [SerializeField] RectTransform endRect; [SerializeField] ImageEx bgImage; [SerializeField] ImageEx titleImage; [SerializeField] TextEx timeText; [SerializeField] ButtonEx animationButton; [SerializeField] ButtonEx checkInButton; // 签到赠礼 [SerializeField] RedpointBehaviour checkInRedpoint; [SerializeField] ButtonEx starUpButton; // 升星计划 [SerializeField] RedpointBehaviour starUpRedpoint; [SerializeField] ButtonEx shopButton; // 兑换商店 [SerializeField] RedpointBehaviour shopRedpoint; [SerializeField] ImageEx skinImage; [SerializeField] ButtonEx skinButton; // 时装特卖 [SerializeField] ButtonEx giftButton; // 皇权礼包 [SerializeField] RedpointBehaviour giftRedpoint; [SerializeField] ButtonEx callButton; // 皇权招募 [SerializeField] UIHeroController uiHeroController; [SerializeField] UIHeroController lhController; [SerializeField] Image callRedImage; [SerializeField] ButtonEx closeButton; [SerializeField] float modleSize = 0.8f; HeroDebutManager manager => HeroDebutManager.Instance; protected override void InitComponent() { closeButton.SetListener(() => UIManager.Instance.CloseWindow()); checkInButton.SetListener(() => UIManager.Instance.OpenWindow()); starUpButton.SetListener(() => UIManager.Instance.OpenWindow()); shopButton.SetListener(() => UIManager.Instance.OpenWindow()); skinButton.SetListener(() => UIManager.Instance.OpenWindow()); giftButton.SetListener(() => UIManager.Instance.OpenWindow()); callButton.SetListener(() => UIManager.Instance.OpenWindow()); } protected override void OnPreOpen() { InitRedpoint(); GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent; StoreModel.Instance.RefreshBuyShopLimitEvent += Display; manager.OnUpdateHeroAppearPlayerInfoEvent += OnUpdateHeroAppearPlayerInfoEvent; Display(); } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent; StoreModel.Instance.RefreshBuyShopLimitEvent -= Display; manager.OnUpdateHeroAppearPlayerInfoEvent -= OnUpdateHeroAppearPlayerInfoEvent; } private void OnUpdateHeroAppearPlayerInfoEvent() { Display(); } private void OnRechargeCountEvent(int obj) { Display(); } public void InitRedpoint() { checkInRedpoint.redpointId = manager.GetRedPointId(HeroDebutRedPointType.CheckIn); starUpRedpoint.redpointId = manager.GetRedPointId(HeroDebutRedPointType.StarUp); shopRedpoint.redpointId = manager.GetRedPointId(HeroDebutRedPointType.Shop); giftRedpoint.redpointId = manager.GetRedPointId(HeroDebutRedPointType.Gift); } private void Display() { int heroID = manager.GetCurrentDisplayCallHeroId(); var artConfig = ActHeroAppearArtConfig.Get(heroID); if (artConfig == null) return; int skinID = manager.GetDefaultSkinID(heroID); uiHeroController.Create(skinID, modleSize); uiHeroController.transform.localScale = new Vector3(-modleSize, modleSize, modleSize); lhController.Create(skinID, 1, motionName: "", isLh: true); callRedImage.SetActive(!manager.IsShopVisitedToday || manager.HasGiftCanHave()); bgImage.SetSprite(StringUtility.Concat("HeroDebutMainBG_", heroID.ToString())); bgImage.SetNativeSize(); titleImage.SetSprite(StringUtility.Concat("HeroDebutMainTitle_", heroID.ToString())); titleImage.SetNativeSize(); skinImage.SetSprite(StringUtility.Concat("HeroDebutSkinEnterBG_", artConfig.MainSkinID.ToString())); OnSecondEvent(); } private void OnSecondEvent() { manager.GetActTimeStr(timeText); } }