少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-15 2dd1f47082d300e22bbe42b1d5e7d65357cba0f2
2466  【前端】分包优化
8个文件已修改
153 ■■■■■ 已修改文件
Core/GameEngine/Login/LoginStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/CreateRoleStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/SelectRoleStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/InGameDownLoad.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/InGameDownLoadProgress.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TipPanel.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/LoginStage.cs
@@ -50,7 +50,7 @@
        if (!AssetVersionUtility.hasDownLoadFullAsset)
        {
            InGameDownLoad.Instance.inGameDownLoadAllow = true;
            InGameDownLoad.Instance.TryDownLoad(false);
            InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None);
        }
    }
Fight/MapTransferUtility.cs
@@ -719,7 +719,7 @@
            if (!assetVersion.IsPriorAsset())
            {
                InGameDownLoad.Instance.TryDownLoad(true);
                InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                return false;
            }
        }
Fight/Stage/CreateRoleStage.cs
@@ -24,7 +24,7 @@
        if (!AssetVersionUtility.hasDownLoadFullAsset)
        {
            InGameDownLoad.Instance.TryDownLoad(false);
            InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None);
        }
    }
Fight/Stage/SelectRoleStage.cs
@@ -22,7 +22,7 @@
        if (!AssetVersionUtility.hasDownLoadFullAsset)
        {
            InGameDownLoad.Instance.TryDownLoad(false);
            InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None);
        }
        //屏蔽职业特效预先加载逻,以减少不必要的内存损耗和获得更快的场景切换速度,资源压缩使用LZ4才行。
System/AssetVersion/InGameDownLoad.cs
@@ -16,20 +16,7 @@
    public bool inGameDownLoadAllow = false;
    bool m_DominantDownLoadStarted = false;
    public bool dominantDownLoadStarted {
        get { return m_DominantDownLoadStarted; }
        private set {
            if (m_DominantDownLoadStarted != value)
            {
                m_DominantDownLoadStarted = value;
                if (dominantDownLoadEvent != null)
                {
                    dominantDownLoadEvent();
                }
            }
        }
    }
    public float progress {
        get {
@@ -59,9 +46,24 @@
    int downLoadedCountRecord = 0;//已经下载完成的资源包数量
    public event Action<State> downLoadStateChangeEvent;
    public event Action dominantDownLoadEvent;
    public event Action<Dominant> dominantDownLoadEvent;
    Action onDownLoadOk;
    Dominant m_DominantState = Dominant.None;
    public Dominant dominantState {
        get { return m_DominantState; }
        private set {
            if (m_DominantState != value)
            {
                m_DominantState = value;
                if (dominantDownLoadEvent != null)
                {
                    dominantDownLoadEvent(m_DominantState);
                }
            }
        }
    }
    State m_State = State.None;
    public State state {
@@ -145,7 +147,7 @@
        GameNetSystem.Instance.SendInfo(send);
    }
    public void TryDownLoad(bool _force)
    public void TryDownLoad(Dominant _dominant)
    {
        if (!inGameDownLoadAllow)
        {
@@ -157,22 +159,14 @@
            return;
        }
        if (_force)
        if (_dominant < dominantState)
        {
            if (!dominantDownLoadStarted)
            {
                backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
                downLoadedCountRecord = okCount;
                dominantDownLoadStarted = true;
                Pause();
                state = State.Prepared;
            return;
            }
            WindowCenter.Instance.Open<InGameDownLoadWin>();
        }
        else
        switch (_dominant)
        {
            case Dominant.None:
            if (InGameDownTestUtility.enable)
            {
                if (InGameDownTestUtility.isWifi)
@@ -187,6 +181,34 @@
                    StartDownLoad();
                }
            }
                break;
            case Dominant.Half:
                if (dominantState == Dominant.None)
                {
                    backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
                    downLoadedCountRecord = okCount;
                    state = State.Prepared;
                }
                StartDownLoad();
                dominantState = Dominant.Half;
                break;
            case Dominant.Whole:
                if (dominantState == Dominant.None)
                {
                    backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
                    downLoadedCountRecord = okCount;
                    Pause();
                    state = State.Prepared;
                }
                else if (dominantState == Dominant.Half)
                {
                    Pause();
                    state = State.Prepared;
                }
                dominantState = Dominant.Whole;
                WindowCenter.Instance.Open<InGameDownLoadWin>();
                break;
        }
    }
@@ -258,7 +280,7 @@
        if (!hasReward)
        {
            if (!dominantDownLoadStarted)
            if (dominantState == Dominant.None)
            {
                RequestDownLoadReward(false);
                state = State.Completed;
@@ -302,6 +324,7 @@
        }
    }
    Clock netSwitchClock;
    NetworkReachability m_NetworkReachability = NetworkReachability.NotReachable;
    NetworkReachability networkReachability {
        get { return m_NetworkReachability; }
@@ -310,23 +333,27 @@
            {
                m_NetworkReachability = value;
                if (!dominantDownLoadStarted)
                if (dominantState != Dominant.Whole)
                {
                    switch (m_NetworkReachability)
                    {
                        case NetworkReachability.ReachableViaCarrierDataNetwork:
                            Pause();
                            var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 10);
                            Clock.Create(endTime, () =>
                            var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 3);
                            if (netSwitchClock != null)
                            {
                                netSwitchClock.Stop();
                            }
                            netSwitchClock = Clock.Create(endTime, () =>
                            {
                                if (CheckDominantDownLoad())
                                {
                                    TryDownLoad(true);
                                     TryDownLoad(Dominant.Whole);
                                }
                            });
                            break;
                        case NetworkReachability.ReachableViaLocalAreaNetwork:
                            TryDownLoad(false);
                            TryDownLoad(Dominant.None);
                            break;
                        default:
                            break;
@@ -345,11 +372,11 @@
            {
                m_SimulateWifi = value;
                if (!dominantDownLoadStarted)
                if (dominantState != Dominant.Whole)
                {
                    if (m_SimulateWifi)
                    {
                        TryDownLoad(false);
                        TryDownLoad(Dominant.None);
                    }
                    else
                    {
@@ -359,7 +386,7 @@
                        {
                            if (CheckDominantDownLoad())
                            {
                                TryDownLoad(true);
                                TryDownLoad(Dominant.Whole);
                            }
                        });
                    }
@@ -397,7 +424,7 @@
    public bool CheckDominantDownLoad()
    {
        if (tasks == null || tasks.Count == 0 || isDone || dominantDownLoadStarted || NewBieCenter.Instance.inGuiding)
        if (tasks == null || tasks.Count == 0 || isDone || dominantState == Dominant.Whole || NewBieCenter.Instance.inGuiding)
        {
            return false;
        }
@@ -467,7 +494,7 @@
                {
                    if (CheckDominantDownLoad())
                    {
                        TryDownLoad(true);
                        TryDownLoad(Dominant.Whole);
                    }
                }
                break;
@@ -482,7 +509,7 @@
        {
            if (CheckDominantDownLoad())
            {
                TryDownLoad(true);
                TryDownLoad(Dominant.Whole);
            }
        }
    }
@@ -540,4 +567,11 @@
        Completed,
    }
    public enum Dominant
    {
        None = 0,
        Half = 1,
        Whole = 2,
    }
}
System/AssetVersion/InGameDownLoadProgress.cs
@@ -18,7 +18,7 @@
        private void Awake()
        {
            if (InGameDownLoad.Instance.dominantDownLoadStarted
            if (InGameDownLoad.Instance.dominantState != InGameDownLoad.Dominant.None
                && InGameDownLoad.Instance.state != InGameDownLoad.State.Completed)
            {
                this.gameObject.SetActive(true);
@@ -36,7 +36,7 @@
            }
            InGameDownLoad.Instance.downLoadStateChangeEvent += OnDownLoadStateChange;
            InGameDownLoad.Instance.dominantDownLoadEvent += OnDominantDownLoadStarted;
            InGameDownLoad.Instance.dominantDownLoadEvent += OnDownLoadDominantStateChange;
            m_ViewDownLoad.AddListener(OpenInGameDownloadWin);
        }
@@ -55,13 +55,13 @@
        {
            m_ViewDownLoad.RemoveAllListeners();
            InGameDownLoad.Instance.downLoadStateChangeEvent -= OnDownLoadStateChange;
            InGameDownLoad.Instance.dominantDownLoadEvent -= OnDominantDownLoadStarted;
            InGameDownLoad.Instance.dominantDownLoadEvent -= OnDownLoadDominantStateChange;
        }
        private void OnDominantDownLoadStarted()
        private void OnDownLoadDominantStateChange(InGameDownLoad.Dominant _dominant)
        {
            UpdateDownLoadProgress();
            this.gameObject.SetActive(InGameDownLoad.Instance.dominantDownLoadStarted);
            this.gameObject.SetActive(InGameDownLoad.Instance.dominantState != InGameDownLoad.Dominant.None);
        }
        private void OnDownLoadStateChange(InGameDownLoad.State _step)
@@ -75,7 +75,7 @@
                case InGameDownLoad.State.None:
                case InGameDownLoad.State.Prepared:
                case InGameDownLoad.State.DownLoad:
                    if (InGameDownLoad.Instance.dominantDownLoadStarted)
                    if (InGameDownLoad.Instance.dominantState != InGameDownLoad.Dominant.None)
                    {
                        UpdateDownLoadProgress();
                        this.gameObject.SetActive(true);
@@ -118,7 +118,7 @@
                case InGameDownLoad.State.None:
                case InGameDownLoad.State.Pause:
                case InGameDownLoad.State.Prepared:
                    InGameDownLoad.Instance.TryDownLoad(true);
                    WindowCenter.Instance.Open<InGameDownLoadWin>();
                    break;
                case InGameDownLoad.State.Award:
                    WindowCenter.Instance.Open<InGameDownLoadWin>();
System/Dungeon/DungeonModel.cs
@@ -73,13 +73,11 @@
            set { m_DungeonResult = value; }
        }
        public int dungeonCoinInspireCount
        {
        public int dungeonCoinInspireCount {
            get; private set;
        }
        public int dungeonJadeInspireCount
        {
        public int dungeonJadeInspireCount {
            get; private set;
        }
@@ -1175,7 +1173,7 @@
                if (!assetVersion.IsPriorAsset())
                {
                    InGameDownLoad.Instance.TryDownLoad(true);
                    InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                    return;
                }
            }
System/MainInterfacePanel/TipPanel.cs
@@ -89,7 +89,14 @@
                {
                    if (InGameDownLoad.Instance.CheckDominantDownLoad())
                    {
                        InGameDownLoad.Instance.TryDownLoad(true);
                        if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
                        {
                            InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Half);
                        }
                        else
                        {
                            InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                        }
                    }
                }