فهرست منبع

一次协程上传更新景点数据

蓝色星空 1 سال پیش
والد
کامیت
736e471c86
1فایلهای تغییر یافته به همراه15 افزوده شده و 24 حذف شده
  1. 15 24
      Assets/Scripts/UI/EdirPanel/UIEditorPanel.cs

+ 15 - 24
Assets/Scripts/UI/EdirPanel/UIEditorPanel.cs

@@ -242,13 +242,13 @@ public class UIEditorPanel : AbstractController, EventObserver
             }
             GameManager.Instance.SaveSpoitObjs();
             */
-            SetSpoitInfo();
+            StartCoroutine(SetSpoitInfo());
         });
     }
 
-    public void SetSpoitInfo()
+    public IEnumerator SetSpoitInfo()
     {
-        countCo =0;
+        countSplit =0;saveData.Clear();
         int count = GameManager.Instance.ObjsParent.childCount;
         for (int i = 1; i <= count-1;i++) // 第一个LocalNULLShowObj是无用的
         {
@@ -264,14 +264,14 @@ public class UIEditorPanel : AbstractController, EventObserver
                     spoit.material[j].materialList[k].ObjectTransform.nowScale = GameManager.Instance.ObjsParent.GetChild(i).GetChild(0).GetChild(k).localScale;
                 }
             }
-            StartCoroutine(SelectTrans(spoit));
+            SplitSpoitData(spoit,count-1); //// 第一个LocalNULLShowObj是无用的 ,so -1
+            yield return null;
         }
     }
-    private int countCo =0;
-    private IEnumerator SelectTrans(SpoitValue spoit)
+    private List<SendSaveData> saveData = new List<SendSaveData>();
+    private void SplitSpoitData(SpoitValue spoit,int spoitCount)
     {
-        yield return null;
-        List<SendSaveData> saveData = new List<SendSaveData>();
+        countSplit++;
         SendSaveData data = new SendSaveData();
         data.id = spoit.id;
         data.name = spoit.name;
@@ -281,19 +281,20 @@ public class UIEditorPanel : AbstractController, EventObserver
         saveData.Add(data);
 
         string sendData = JsonConvert.SerializeObject(saveData);
-        HttpTool.Instance.PostTest("/viewpoint/update", sendData, SaveCallBack);
+        Debug.LogError(countSplit+"=="+spoitCount);
+        if(countSplit==spoitCount)
+            HttpTool.Instance.PostTest("/viewpoint/update", sendData, SaveCallBack);
     }
+    private int countSplit =0;
+
     private void SaveCallBack(string message)
     {
-        countCo++;
         if (message == "UnityWebRequest Error")
         {
             InstantiateCommand ErrorCommand = new InstantiateCommand(
                 InstantiateSystem.Instance.BlueObject.WarningPopUp,
                 InstantiateSystem.Instance.BlueObject.NetErrorText);
             CommandSystem.Instance.Send(ErrorCommand);
-            Debug.LogError("执行协程数:" + countCo);
-            StopAllCoroutines();
             //this.GetService<ISendLogService>().SendLog("Blue","UnityWebRequest Error");
             return;
         }
@@ -307,21 +308,11 @@ public class UIEditorPanel : AbstractController, EventObserver
                 InstantiateSystem.Instance.BlueObject.WarningPopUp,
                 InstantiateSystem.Instance.BlueObject.NetErrorText);
             CommandSystem.Instance.Send(ErrorCommand);
-            Debug.LogError("执行协程数:" + countCo);
-            StopAllCoroutines();
+            Debug.LogError("执行协程数:" + countSplit);
             //this.GetService<ISendLogService>().SendLog("Blue","更新成功出现问题");
             return;
         }
-        else
-        {
-            Debug.Log("更新成功");
-        }
-        if (countCo != GameManager.Instance.ObjsParent.childCount-1)
-        {
-            Debug.Log("执行协程数:" + countCo);
-            return;
-        }
-        Debug.Log("执行协程数:" + countCo);
+        Debug.Log("更新成功");
         UIManager.Instance.ShowUI(UINameConfig.LoadingPanel, typeof(LoadingPanel), (int)ELoadState.SaveSpoitDataEnd);
         ((LoadingPanel)UIManager.Instance.GetUI(UINameConfig.LoadingPanel)).TextStr = str;