using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //Model 的基类,注意热更工程的model 一定要继承此类,不要继承主工程的 public abstract class ILModel where T : ILModel, new() { private static T m_Instance; public static T Instance { get { if (m_Instance == null) { m_Instance = new T(); } return m_Instance; } } public ILModel() { Init(); } public static void Dispose() { m_Instance?.UnInit(); m_Instance = null; } ~ILModel() { //m_Instance?.UnInit(); m_Instance = null; } //写一个空方法,方便提前初始化。 public void Register() { } protected abstract void Init(); //整个游戏生命周期只有一次 protected abstract void UnInit();//整个游戏生命周期最多有一次 //理论上每个model都要有个清理数据的步骤,在OnBeforePlayerDataInitialize调用,或者退回角色时清理 //GameEvent.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; } class ModelMgr : ILSingleton { //需要提前初始化的model 写在这里 public void Init() { SpiritEquipModel.Instance.Register(); SkillMatchModel.Instance.Register(); InvestModel.Instance.Register(); BossModel.Instance.Register(); ManyDayRechargeModel.Instance.Register(); NeedForWhiteModel.Instance.Register(); OnlineRechargeModel.Instance.Register(); FuncSysPrivilegeModel.Instance.Register(); BagSelectModel.Instance.Register(); //竞技场 ArenaManagerModel.Instance.Register(); ArenaModel.Instance.Register(); HolidayRefuseClassificationModel.Instance.Register(); HolidayXianXiaMJModel.Instance.Register(); HeroControler.Instance.Register(); EquipEvolveModel.Instance.Register(); ILDayOnlineModel.Instance.Register(); MergeServerActivityModel.Instance.Register(); MergeServerCollectWordsModel.Instance.Register(); MergeServerLimitedTimePackageModel.Instance.Register(); MergeServerRechargeModel.Instance.Register(); MergeServerQCSYModel.Instance.Register(); MergeServerFlashRushToBuyModel.Instance.Register(); MergeServerTurntableModel.Instance.Register(); //跨服充值 CSRechargeModel.Instance.Register(); FaQiLVUPModel.Instance.Register(); CrossServerMHBossModel.Instance.Register(); FuncAwardModel.Instance.Register(); CommonFunc.Instance.Register(); //情缘 FlowerGiftModel.Instance.Register(); WeddingModel.Instance.Register(); UICommom.Instance.Register(); HolidayRecharge2GiftModel.Instance.Register(); LuckyCloudBuyModel.Instance.Register(); GodKingGiftModel.Instance.Register(); TreasurePavilionModel.Instance.Register(); ILSkillManager.Instance.Register(); ShentongModel.Instance.Register(); CrossServerQualifyingModel.Instance.Register(); UIFixModel.Instance.Register(); MapLevelModel.Instance.Register(); ILAchievementModel.Instance.Register(); Buy1Free5Model.Instance.Register(); DailySpecialsModel.Instance.Register(); RechargeGenerousGiftModel.Instance.Register(); LvZhanlingModel.Instance.Register(); RealmLVZhanlingModel.Instance.Register(); CelestialStarTowerModel.Instance.Register(); GuBaoTotalStarsModel.Instance.Register(); LimitedTimeLuxuryGiftModel.Instance.Register(); TTLBattlePassModel.Instance.Register(); ILCrossServerModel.Instance.Register(); } }