少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-13 eda22bcd9683f3a94e0744da60d23808272c627f
System/Loading/LoadingWin.cs
@@ -1,148 +1,148 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, September 04, 2017
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class LoadingWin : Window
    {
        public static int targetMapResId = 0;
        [SerializeField] Image m_BackGround;
        [SerializeField] RectTransform m_ContainerFunctions;
        [SerializeField] LoadingFunctionShow[] m_FunctionShows;
        [SerializeField] SmoothSlider m_ProgressSlider;
        [SerializeField] Transform m_EffectPoint;
        [SerializeField] RectTransform m_ContainerMapName;
        [SerializeField] Image m_MapName;
        [SerializeField] RectTransform m_ContainerMapDescription;
        [SerializeField] Image m_MapDescription;
        float refProgress = 0f;
        float expectDuration = 5f;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            var mapResConfig = ConfigManager.Instance.GetTemplate<MapResourcesConfig>(targetMapResId);
            if (mapResConfig != null && mapResConfig.LoadingBG.Length > 0)
            {
                var randomIndex = UnityEngine.Random.Range(0, mapResConfig.LoadingBG.Length > 1 ? mapResConfig.LoadingBG.Length + 1 : 1);
                if (randomIndex == mapResConfig.LoadingBG.Length)
                {
                    m_BackGround.SetSprite(GeneralConfig.Instance.LoadLV);
                    m_ContainerFunctions.gameObject.SetActive(true);
                    var functions = GetShowFunctions(PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV);
                    for (int i = 0; i < m_FunctionShows.Length; i++)
                    {
                        var show = m_FunctionShows[i];
                        show.Display(functions[i]);
                    }
                }
                else
                {
                    m_BackGround.SetSprite(mapResConfig.LoadingBG[randomIndex]);
                    m_ContainerFunctions.gameObject.SetActive(false);
                }
            }
            if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadName))
            {
                m_ContainerMapName.gameObject.SetActive(true);
                m_MapName.SetSprite(mapResConfig.LoadName);
            }
            else
            {
                m_ContainerMapName.gameObject.SetActive(false);
            }
            if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadDescription))
            {
                m_ContainerMapDescription.gameObject.SetActive(true);
                m_MapDescription.SetSprite(mapResConfig.LoadDescription);
            }
            else
            {
                m_ContainerMapDescription.gameObject.SetActive(false);
            }
            m_ProgressSlider.value = refProgress = 0f;
            StageManager.Instance.loadingProgressEvent += UpdateLoadingProgress;
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            StageManager.Instance.loadingProgressEvent -= UpdateLoadingProgress;
            if (!AssetSource.uiFromEditor)
            {
                AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/loading", true, false);
                AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/loadingbg", true, false);
            }
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        protected override void LateUpdate()
        {
            base.LateUpdate();
            refProgress = Mathf.Clamp01(refProgress + Time.deltaTime / expectDuration);
            m_ProgressSlider.value = refProgress;
        }
        void UpdateLoadingProgress(float _progress)
        {
            m_ProgressSlider.value = refProgress = Mathf.Max(_progress, refProgress);
        }
        private List<int> GetShowFunctions(int _level)
        {
            var configs = ConfigManager.Instance.GetAllValues<LoadingFunctionConfig>();
            var functions = new List<int>() { configs[0].ID, configs[1].ID, configs[2].ID, configs[3].ID };
            for (int i = 4; i < configs.Count; i++)
            {
                var config = ConfigManager.Instance.GetTemplate<LoadingFunctionConfig>(functions[2]);
                if (_level >= config.Level)
                {
                    functions.RemoveAt(0);
                    functions.Add(configs[i].ID);
                }
            }
            return functions;
        }
    }
}
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, September 04, 2017
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class LoadingWin : Window
    {
        public static int targetMapResId = 0;
        [SerializeField] Image m_BackGround;
        [SerializeField] RectTransform m_ContainerFunctions;
        [SerializeField] LoadingFunctionShow[] m_FunctionShows;
        [SerializeField] SmoothSlider m_ProgressSlider;
        [SerializeField] Transform m_EffectPoint;
        [SerializeField] RectTransform m_ContainerMapName;
        [SerializeField] Image m_MapName;
        [SerializeField] RectTransform m_ContainerMapDescription;
        [SerializeField] Image m_MapDescription;
        float refProgress = 0f;
        float expectDuration = 5f;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            var mapResConfig = ConfigManager.Instance.GetTemplate<MapResourcesConfig>(targetMapResId);
            if (mapResConfig != null && mapResConfig.LoadingBG.Length > 0)
            {
                var randomIndex = UnityEngine.Random.Range(0, mapResConfig.LoadingBG.Length > 1 ? mapResConfig.LoadingBG.Length + 1 : 1);
                if (randomIndex == mapResConfig.LoadingBG.Length)
                {
                    m_BackGround.SetSprite(GeneralConfig.Instance.LoadLV);
                    m_ContainerFunctions.gameObject.SetActive(true);
                    var functions = GetShowFunctions(PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV);
                    for (int i = 0; i < m_FunctionShows.Length; i++)
                    {
                        var show = m_FunctionShows[i];
                        show.Display(functions[i]);
                    }
                }
                else
                {
                    m_BackGround.SetSprite(mapResConfig.LoadingBG[randomIndex]);
                    m_ContainerFunctions.gameObject.SetActive(false);
                }
            }
            if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadName))
            {
                m_ContainerMapName.gameObject.SetActive(true);
                m_MapName.SetSprite(mapResConfig.LoadName);
            }
            else
            {
                m_ContainerMapName.gameObject.SetActive(false);
            }
            if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadDescription))
            {
                m_ContainerMapDescription.gameObject.SetActive(true);
                m_MapDescription.SetSprite(mapResConfig.LoadDescription);
            }
            else
            {
                m_ContainerMapDescription.gameObject.SetActive(false);
            }
            m_ProgressSlider.value = refProgress = 0f;
            StageManager.Instance.loadingProgressEvent += UpdateLoadingProgress;
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            StageManager.Instance.loadingProgressEvent -= UpdateLoadingProgress;
            if (!AssetSource.uiFromEditor)
            {
                AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/loading", true, false);
                AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/loadingbg", true, false);
            }
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        protected override void LateUpdate()
        {
            base.LateUpdate();
            refProgress = Mathf.Clamp01(refProgress + Time.deltaTime / expectDuration);
            m_ProgressSlider.value = refProgress;
        }
        void UpdateLoadingProgress(float _progress)
        {
            m_ProgressSlider.value = refProgress = Mathf.Max(_progress, refProgress);
        }
        private List<int> GetShowFunctions(int _level)
        {
            var configs = ConfigManager.Instance.GetAllValues<LoadingFunctionConfig>();
            var functions = new List<int>() { configs[0].ID, configs[1].ID, configs[2].ID, configs[3].ID };
            for (int i = 4; i < configs.Count; i++)
            {
                var config = ConfigManager.Instance.GetTemplate<LoadingFunctionConfig>(functions[2]);
                if (_level >= config.Level)
                {
                    functions.RemoveAt(0);
                    functions.Add(configs[i].ID);
                }
            }
            return functions;
        }
    }
}