ybx_Gdn 10 месяцев назад
Родитель
Сommit
6c29d76cf0

+ 6 - 0
Assets/Content/Config/DownLoadUrlCfg.csv

@@ -0,0 +1,6 @@
+ID,Platform,BaseUrl,ServerUrl,Param1,DownloadPath
+ID,Platform,BaseUrl,ServerUrl,Param1,DownloadPath
+int,string,string,string,string,string
+1,GameDebug,http://110.40.223.119:88/,http://110.40.223.119:81/,null,res/TestServerRes/
+2,Android,http://165.154.29.92:88/,http://165.154.29.92:81/,null,res/AndroidNewRes/
+3,IOS,http://165.154.29.92:88/,http://165.154.29.92:81/,null,res/IosRes/

+ 7 - 0
Assets/Content/Config/DownLoadUrlCfg.csv.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d7a9bc8b91e630649ba37ef421f751b9
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
Assets/Src/Core/Config/ConfigMgr.cs

@@ -9,7 +9,9 @@ public class ConfigMgr : Singleton<ConfigMgr>
     private string splitword = ",";
     private static bool m_bInitCSVFinished = false;
     private static bool m_bInitXMLFinished = false;
+    private byte[] urldatas;
 
+    public byte[] UrlDatas { get => urldatas; }
     public static bool InitFinished
     {
         get { return m_bInitCSVFinished && m_bInitXMLFinished; }
@@ -101,6 +103,12 @@ public class ConfigMgr : Singleton<ConfigMgr>
             {
                 tx = objs[i];
                 curname = tx.name;
+                if (curname == "DownLoadUrlCfg")
+                {
+                    Debug.Log("====== you DownLoadUrlCfg =======11");
+                    urldatas = tx.bytes;
+                    continue;
+                }
                 //Debug.Log($"Config Name = [{curname}]");
                 if (/*curname.Contains(keyword) && !curname.Equals(keywordname) ||*/ tx.text.Length <= 0)
                     continue;
@@ -139,6 +147,13 @@ public class ConfigMgr : Singleton<ConfigMgr>
             {
                 tx = objs[i];
                 curname = tx.name;
+                if(curname == "DownLoadUrlCfg")
+                {
+                    Debug.Log("====== you DownLoadUrlCfg =======");
+                    urldatas = tx.bytes;
+                    continue;
+                }
+
 
                 if (/*curname.Contains(keyword) && !curname.Equals(keywordname) || */tx.text.Length <= 0)
                     continue;

+ 8 - 1
Assets/Src/Core/DownLoad/CsvReader.cs

@@ -47,7 +47,14 @@ namespace Game.Config
             ReadFromCsv();
             InitFieldKey();
         }
-
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="bytes"></param>
+        /// <param name="fl">字段名</param>
+        /// <param name="tl">类型名</param>
+        /// <param name="sl">多少行开始</param>
         public CsvReader(string name,byte[] bytes,int fl = 0, int tl = 1, int sl = 2)
         {
             fieldLine = fl;

+ 4 - 1
Assets/Src/Core/DownLoad/DownloadDataEntity.cs

@@ -53,8 +53,11 @@ public class DownLoadUrlCfg : GameData<DownLoadUrlCfg>
 
     public string BaseUrl;
 
-    public string Url;
+    public string ServerUrl;
     public string Param1;
+
+    public string DownloadPath;
+
     public bool IsOPen;
 
     public override string FlieName()

+ 82 - 6
Assets/Src/Core/DownLoad/DownloadMgr.cs

@@ -56,11 +56,12 @@ public class DownloadMgr : Singleton<DownloadMgr>
     private List<DownloadDataEntity> remoteResList;
     private Dictionary<string, DownloadDataEntity> localResMap;
     private Dictionary<string, DownloadDataEntity> remoteResMap;
-   
+
+    private Dictionary<string,DownLoadUrlCfg> downLoadUrlCfgs;
     private bool isInited = false;
 
     private GameDataFormatInfo downloadFormatInfo;
-
+    private DownLoadUrlCfg curUrlCfg;
     private string versionFileName;
     private string assetsFileName;
     private string downloadedAssetsFileName;
@@ -135,7 +136,10 @@ public class DownloadMgr : Singleton<DownloadMgr>
 
     private string GetBaseUrl()
     {
- 
+        if (curUrlCfg != null)
+        {
+            return curUrlCfg.ServerUrl;
+        }
 #if GAME_DEBUG
          return "http://110.40.223.119:81/";
 #else
@@ -151,6 +155,10 @@ public class DownloadMgr : Singleton<DownloadMgr>
 
     private string GetDownloadUrl()
     {
+        if (curUrlCfg != null)
+        {
+            return curUrlCfg.BaseUrl + curUrlCfg.DownloadPath;
+        }
 #if UNITY_IOS
         return GetDownloadBaseUrl() + GetIOSDownloadPath();
 #else
@@ -159,6 +167,10 @@ public class DownloadMgr : Singleton<DownloadMgr>
     }
     private string GetDownloadUrlFormServer(string baseUrl)
     {
+        if (curUrlCfg != null)
+        {
+            return baseUrl + curUrlCfg.DownloadPath;
+        }
 #if UNITY_IOS
         return baseUrl + GetIOSDownloadPath();
 #else
@@ -191,8 +203,8 @@ public class DownloadMgr : Singleton<DownloadMgr>
             remoteResList = new List<DownloadDataEntity>(1024);
             localResMap = new Dictionary<string, DownloadDataEntity>(1024);
             remoteResMap = new Dictionary<string, DownloadDataEntity>(1024);
-           
-            isInited = true;
+            downLoadUrlCfgs = new Dictionary<string, DownLoadUrlCfg>();
+             isInited = true;
             CheckFinish = false;
             DowmloadError = false;
             downloadSize = 0;
@@ -206,6 +218,11 @@ public class DownloadMgr : Singleton<DownloadMgr>
     //
     private string GetPlatform()
     {
+        if (curUrlCfg!= null)
+        {
+            return curUrlCfg.Platform;
+        }
+
 #if UNITY_EDITOR
         return "IOS";// "PC";
 #else
@@ -219,6 +236,10 @@ public class DownloadMgr : Singleton<DownloadMgr>
     }
     private string GetParam1()
     {
+        if (curUrlCfg != null)
+        {
+            return curUrlCfg.Param1;
+        }
         return "null";
     }
     public void CheckVersion()
@@ -264,7 +285,7 @@ public class DownloadMgr : Singleton<DownloadMgr>
        
     }
 
-
+    
     private void StartCheck()
     {
         ReadDataFromFile(versionFileName, lVdatas =>
@@ -433,6 +454,19 @@ public class DownloadMgr : Singleton<DownloadMgr>
         return resList;
     }
 
+    private List<DownLoadUrlCfg> SerizlizeUrlCfg(byte[] data)
+    {
+        if (data == null) return null;
+        CsvReader csvReader = new CsvReader("urlcfg", data,1,2,3);
+        if (downloadFormatInfo == null)
+        {
+            downloadFormatInfo = new GameDataFormatInfo(csvReader.Fields(), csvReader.Types());
+        }
+        DownLoadUrlCfg.OnCsvLoad(csvReader);
+        List<DownLoadUrlCfg> resList = DownLoadUrlCfg.AllData();
+        DownLoadUrlCfg.Clear();
+        return resList;
+    }
     private void GetRemoteResList()
     {
         string remoteversionpath = downloadUrl + assetsFileName;
@@ -875,4 +909,46 @@ public class DownloadMgr : Singleton<DownloadMgr>
         //mainfestData = null; 
         AssetDownloader.Instance.ClearTasks();
     }
+
+
+    public void InitUrlCfg()
+    {
+        List<DownLoadUrlCfg> loadUrlCfgs = SerizlizeUrlCfg(ConfigMgr.Instance.UrlDatas);
+
+        if (loadUrlCfgs == null) return;
+
+        for (int i = 0; i < loadUrlCfgs.Count; i++)
+        {
+            Log("Platform = " + loadUrlCfgs[i].Platform);
+            downLoadUrlCfgs.Add(loadUrlCfgs[i].Platform,loadUrlCfgs[i]);
+        }
+
+        curUrlCfg = GetCurUrlCfg();
+
+    }
+
+
+    private DownLoadUrlCfg GetCurUrlCfg()
+    {
+        DownLoadUrlCfg ret = null;
+
+        string platform = "GameDebug";
+
+#if GAME_DEBUG
+        
+#else
+#if UNITY_ANDROID
+        platform = "Android";
+#else
+         platform = "IOS";
+#endif
+#endif
+
+        if (downLoadUrlCfgs.ContainsKey(platform))
+        {
+            ret = downLoadUrlCfgs[platform];
+        }
+
+        return ret;
+    }
 }

+ 15 - 7
Assets/Src/GameLogic/LaunchLoadMgr.cs

@@ -116,9 +116,9 @@ public class LaunchLoadMgr
 
     private IEnumerator CheckResUpdate()
     {
-      
+        DownloadMgr.Instance.InitUrlCfg();
         DownloadMgr.Instance.CheckVersion();
-        SetLoadDes("檢查更新");
+        SetLoadDes("CheckRes");
         SetLoadPrecent(0);
         int pre = 0;
         yield return new WaitUntil(() =>
@@ -142,7 +142,7 @@ public class LaunchLoadMgr
 
         if (DownloadMgr.Instance.CheckNeedDownload())
         {
-            SetLoadDes("資源更新");
+            SetLoadDes("DownloadRes");
             SetLoadPrecent(0);
             yield return new WaitUntil(() =>
             {
@@ -154,7 +154,7 @@ public class LaunchLoadMgr
                     if (DownloadMgr.Instance.DowmloadError)
                     {
                         isFinish = false;
-                        SetLoadDes("資源更新失敗,請重新啟動遊戲下載資源");
+                        SetLoadDes("GameLogin20");
                     }
                     else
                     {
@@ -182,7 +182,7 @@ public class LaunchLoadMgr
         FairGuard.Init();
         // 加载配置
         EventMgr.AddEventListener<int>(ECoreEventType.EID_ConfigMgrInit, OnConfigMgrInited);
-        ConfigMgr.CreateInstance();
+        ConfigMgr.Instance.Init();
     }
 
     private void StartUILanuchAnim(int timerSequence)
@@ -204,11 +204,19 @@ public class LaunchLoadMgr
         SetLoadEffectShowState(true);
 
 
-        GameMgr.Instance.DoTaskByCorutine(CheckResUpdate);
-
+        //GameMgr.Instance.DoTaskByCorutine(CheckResUpdate);
 
+        // 加载配置
+        EventMgr.AddEventListener<int>(ECoreEventType.EID_ConfigMgrInit, OnLoadCfgEnd);
+        ConfigMgr.CreateInstance();
     }
 
+
+    private void OnLoadCfgEnd(CoreEvent<int> ce)
+    {
+        EventMgr.RemoveEventListener<int>(ECoreEventType.EID_ConfigMgrInit, OnLoadCfgEnd);
+        GameMgr.Instance.DoTaskByCorutine(CheckResUpdate);
+    }
     private void OnConfigMgrInited(CoreEvent<int> ce)
     {
         EventMgr.RemoveEventListener<int>(ECoreEventType.EID_ConfigMgrInit, OnConfigMgrInited);