using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; //主线任务:英雄之路 public class MissionHeroRoadWin : UIBase { [SerializeField] ScrollerController scroller; List ids = new List(); protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; AchievementManager.Instance.OnAchievementUpdateEvent += OnAchievementUpdateEvent; CreateScroller(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; AchievementManager.Instance.OnAchievementUpdateEvent -= OnAchievementUpdateEvent; } void OnAchievementUpdateEvent(int type) { if (type == 1 || type == -1) { ids = AchievementManager.Instance.GetAchievementIDs(1); scroller.m_Scorller.RefreshActiveCellViews(); } } void CreateScroller() { ids = AchievementManager.Instance.GetAchievementIDs(1); var count = ids.Count; scroller.Refresh(); for (int i = 0; i < count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as MissionHeroRoadCell; _cell.Display(ids[cell.index]); } }