少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-24 090c774751b593a74f693c3c4c68e02978a00a36
7497 【前端】loding增加男女职业区别,不同职业出现不同loding
3个文件已修改
249 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Loading/LoadingWin.cs 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Wednesday, May 15, 2019
//    [  Date ]:           Monday, June 24, 2019
//--------------------------------------------------------
using System.Collections.Generic;
@@ -16,6 +16,8 @@
    public readonly int id;
    public readonly int lineId;
    public readonly string[] icons;
    public readonly string[] jobIntroduce1;
    public readonly string[] jobIntroduce2;
    public readonly string levelLimit;
    public readonly string name;
    public readonly string description;
@@ -36,11 +38,15 @@
            icons = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            levelLimit = tables[3];
            jobIntroduce1 = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            name = tables[4];
            jobIntroduce2 = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            description = tables[5];
            levelLimit = tables[5];
            name = tables[6];
            description = tables[7];
        }
        catch (Exception ex)
        {
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: c7d4d28c22cfd0a4ba5664d4c120d929
timeCreated: 1557893937
timeCreated: 1561345569
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/Loading/LoadingWin.cs
@@ -35,6 +35,7 @@
        [SerializeField] RectTransform m_CrossServerOneVsOne;
        [SerializeField] Image m_CrossServerOneVsOneBg;
        [SerializeField] RectTransform m_CrossServerOneVsOneName;
        [SerializeField] Text m_MyName;
        [SerializeField] Text m_OpponentName;
@@ -65,6 +66,7 @@
        protected override void OnPreClose()
        {
            isCrossServerOneVsOne = false;
            loadingType = isCrossServerOneVsOne ? LoadingType.CrossServerOneOne : LoadingType.Normal;
            CameraUtility.StopShotCut(m_ScreenShotCut);
            if (!AssetSource.uiFromEditor)
@@ -129,139 +131,163 @@
                }
            }
            if (isCrossServerOneVsOne)
            switch (loadingType)
            {
                loadingType = LoadingType.CrossServerOneOne;
                case LoadingType.Normal:
                    m_ContainerNormal.gameObject.SetActive(true);
                    m_CrossServerOneVsOne.gameObject.SetActive(false);
                    if (Application.platform == RuntimePlatform.IPhonePlayer)
                    {
                        m_ContainerProgress.gameObject.SetActive(false);
                    }
                    else
                    {
                        m_ContainerProgress.gameObject.SetActive(true);
                        m_ProgressSlider.ResetValue(0f);
                    }
                    break;
                case LoadingType.CrossServerOneOne:
                    m_ContainerNormal.gameObject.SetActive(false);
                    m_CrossServerOneVsOne.gameObject.SetActive(true);
                    break;
            }
            else
            DisplayBackGround(loadingType ,useDefautBackGround);
            DisplayNameAndDescription();
        }
        private void DisplayBackGround(LoadingType loadingType, bool showDefault)
        {
            if (showDefault)
            {
                loadingType = LoadingType.Normal;
                var sprite = BuiltInLoader.LoadSprite("Launch_1");
                switch (loadingType)
                {
                    case LoadingType.CrossServerOneOne:
                        m_CrossServerOneVsOneBg.overrideSprite = sprite;
                        m_CrossServerOneVsOneName.gameObject.SetActive(false);
                        break;
                    case LoadingType.Normal:
                        m_BackGround.overrideSprite = sprite;
                        m_ContainerMapName.gameObject.SetActive(false);
                        m_ContainerMapDescription.gameObject.SetActive(false);
                        m_ContainerFunctions.gameObject.SetActive(false);
                        break;
                }
                return;
            }
            if (loadingType == LoadingType.CrossServerOneOne)
            {
                if (useDefautBackGround)
                {
                    var sprite = BuiltInLoader.LoadSprite("Launch_1");
                    m_CrossServerOneVsOneBg.overrideSprite = sprite;
                }
                else
                {
                    m_CrossServerOneVsOneBg.SetSprite("CrossServerOneVsOne_LoadingBG");
                }
                m_ContainerNormal.gameObject.SetActive(false);
                m_CrossServerOneVsOne.gameObject.SetActive(true);
                m_CrossServerOneVsOneBg.SetSprite("CrossServerOneVsOne_LoadingBG");
                m_CrossServerOneVsOneName.gameObject.SetActive(true);
                m_MyName.text = CrossServerLogin.Instance.oneVsOnePlayerData.myName;
                m_OpponentName.text = CrossServerLogin.Instance.oneVsOnePlayerData.opponentName;
            }
            else
            {
                m_ContainerNormal.gameObject.SetActive(true);
                m_CrossServerOneVsOne.gameObject.SetActive(false);
                var playerLevel = PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV;
                var playerJob = PlayerDatas.Instance.baseData.Job == 0 ? PlayerDatas.Instance.loginInfo.Job : PlayerDatas.Instance.baseData.Job;
                var mapResConfig = MapResourcesConfig.Get(targetMapResId);
                if (useDefautBackGround)
                if (mapResConfig != null)
                {
                    var sprite = BuiltInLoader.LoadSprite("Launch_1");
                    m_BackGround.overrideSprite = sprite;
                    m_ContainerMapName.gameObject.SetActive(false);
                    m_ContainerMapDescription.gameObject.SetActive(false);
                    m_ContainerFunctions.gameObject.SetActive(false);
                }
                else
                {
                    var playerLevel = PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV;
                    var mapResConfig = MapResourcesConfig.Get(targetMapResId);
                    if (mapResConfig != null)
                    var config = LoadingBackGroundConfig.Get(mapResConfig.DataID, mapResConfig.LineID);
                    var iconPool = new List<string>();
                    iconPool.AddRange(config.icons);
                    switch (playerJob)
                    {
                        var loadingBackGroudConfig = LoadingBackGroundConfig.Get(mapResConfig.DataID, mapResConfig.LineID);
                        if (loadingBackGroudConfig != null && loadingBackGroudConfig.icons.Length > 0)
                        case 1:
                            iconPool.AddRange(config.jobIntroduce1);
                            break;
                        case 2:
                            iconPool.AddRange(config.jobIntroduce2);
                            break;
                    }
                    if (iconPool.Count > 0)
                    {
                        var icons = new List<string>();
                        var json = JsonMapper.ToObject(config.levelLimit);
                        for (var i = 0; i < iconPool.Count; i++)
                        {
                            var icons = new List<string>();
                            var json = JsonMapper.ToObject(loadingBackGroudConfig.levelLimit);
                            for (var i = 0; i < loadingBackGroudConfig.icons.Length; i++)
                            var icon = iconPool[i];
                            if (json.Keys.Contains(icon))
                            {
                                var icon = loadingBackGroudConfig.icons[i];
                                if (json.Keys.Contains(icon))
                                var min = 0;
                                var max = int.MaxValue;
                                var levelLimit = json[icon].ToString();
                                var levelsMatch = Regex.Matches(levelLimit, "\\d+");
                                if (levelsMatch.Count > 0)
                                {
                                    var min = 0;
                                    var max = int.MaxValue;
                                    var levelLimit = json[icon].ToString();
                                    var levelsMatch = Regex.Matches(levelLimit, "\\d+");
                                    if (levelsMatch.Count > 0)
                                    {
                                        min = int.Parse(levelsMatch[0].Value);
                                    }
                                    if (levelsMatch.Count > 1)
                                    {
                                        max = int.Parse(levelsMatch[1].Value);
                                    }
                                    if (playerLevel > min && playerLevel < max)
                                    {
                                        icons.Add(icon);
                                    }
                                    min = int.Parse(levelsMatch[0].Value);
                                }
                                else
                                if (levelsMatch.Count > 1)
                                {
                                    max = int.Parse(levelsMatch[1].Value);
                                }
                                if (playerLevel > min && playerLevel < max)
                                {
                                    icons.Add(icon);
                                }
                            }
                            var randomIndex = UnityEngine.Random.Range(0, loadingBackGroudConfig.icons.Length > 1 ? icons.Count + 1 : 1);
                            if (randomIndex == icons.Count)
                            {
                                m_BackGround.SetSprite(GeneralDefine.LoadLV);
                                m_ContainerFunctions.gameObject.SetActive(true);
                                var functions = GetShowFunctions(playerLevel);
                                for (int i = 0; i < m_FunctionShows.Length; i++)
                                {
                                    var show = m_FunctionShows[i];
                                    show.Display(functions[i]);
                                }
                            }
                            else
                            {
                                m_BackGround.SetSprite(icons[randomIndex]);
                                m_ContainerFunctions.gameObject.SetActive(false);
                                icons.Add(icon);
                            }
                            if (loadingBackGroudConfig != null && !string.IsNullOrEmpty(loadingBackGroudConfig.name))
                            {
                                m_ContainerMapName.gameObject.SetActive(true);
                                m_MapName.SetSprite(loadingBackGroudConfig.name);
                            }
                            else
                            {
                                m_ContainerMapName.gameObject.SetActive(false);
                            }
                            if (loadingBackGroudConfig != null && !string.IsNullOrEmpty(loadingBackGroudConfig.description))
                            {
                                m_ContainerMapDescription.gameObject.SetActive(true);
                                m_MapDescription.SetSprite(loadingBackGroudConfig.description);
                            }
                            else
                            {
                                m_ContainerMapDescription.gameObject.SetActive(false);
                            }
                        }
                        var randomIndex = UnityEngine.Random.Range(0, iconPool.Count > 1 ? icons.Count + 1 : 1);
                        if (randomIndex == icons.Count)
                        {
                            m_BackGround.SetSprite(GeneralDefine.LoadLV);
                            m_ContainerFunctions.gameObject.SetActive(true);
                            var functions = GetShowFunctions(playerLevel);
                            for (int i = 0; i < m_FunctionShows.Length; i++)
                            {
                                var show = m_FunctionShows[i];
                                show.Display(functions[i]);
                            }
                        }
                        else
                        {
                            m_BackGround.SetSprite(icons[randomIndex]);
                            m_ContainerFunctions.gameObject.SetActive(false);
                        }
                    }
                }
            }
                if (Application.platform == RuntimePlatform.IPhonePlayer)
                {
                    m_ContainerProgress.gameObject.SetActive(false);
                }
                else
                {
                    m_ContainerProgress.gameObject.SetActive(true);
                    m_ProgressSlider.ResetValue(0f);
                }
        }
        private void DisplayNameAndDescription()
        {
            var mapResConfig = MapResourcesConfig.Get(targetMapResId);
            var config = LoadingBackGroundConfig.Get(mapResConfig.DataID, mapResConfig.LineID);
            if (config != null && !string.IsNullOrEmpty(config.name))
            {
                m_ContainerMapName.gameObject.SetActive(true);
                m_MapName.SetSprite(config.name);
            }
            else
            {
                m_ContainerMapName.gameObject.SetActive(false);
            }
            if (config != null && !string.IsNullOrEmpty(config.description))
            {
                m_ContainerMapDescription.gameObject.SetActive(true);
                m_MapDescription.SetSprite(config.description);
            }
            else
            {
                m_ContainerMapDescription.gameObject.SetActive(false);
            }
        }
@@ -281,7 +307,6 @@
            return functions;
        }
        public enum LoadingType
        {