فهرست منبع

解决卡顿1

胡佳骏 1 سال پیش
والد
کامیت
ed7cfe1ec6

+ 35 - 28
Assets/2.0/User/Model/ModelList.cs

@@ -155,13 +155,13 @@ public class ModelList: System.ICloneable
             case (int)MaterialType.Model:
             case (int)MaterialType.Text:
             case (int)MaterialType.LocaImage:
-                 CreateSuCaiObj(this, Model);
+                 GameManager.Instance.StartCoroutine( CreateSuCaiObj(this, Model));
                 break;
             case (int)MaterialType.Image_Video_Text:
-                CreateImage_Video_Text(this, Model);
+                GameManager.Instance.StartCoroutine(CreateImage_Video_Text(this, Model));
                 break;
             case (int)MaterialType.Model_Text:
-                CreateModel_Text(this, Model);
+                GameManager.Instance.StartCoroutine(CreateModel_Text(this, Model));
                 break;
             default:
                 break;
@@ -174,7 +174,7 @@ public class ModelList: System.ICloneable
     /// <param name="material">素材数据</param>
     /// <param name="spoit">景点</param>
     /// <returns></returns>
-    private void CreateSuCaiObj(ModelList material, GameObject spoit)
+    private IEnumerator CreateSuCaiObj(ModelList material, GameObject spoit)
     {
         List<ObjectValue> objects = new List<ObjectValue>();
         List<ModelItem> objs = material.materialList;
@@ -187,16 +187,18 @@ public class ModelList: System.ICloneable
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                    go = GameObject.Instantiate(pImage, spoit.transform);               
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    yield return pImage;
+                    go = GameObject.Instantiate(pImage.asset as GameObject, spoit.transform);               
                     go.SetActive(true);
                     go.AddComponent<TemplateImage>();
                     //var imageitem = go.AddComponent<TemplateImage>();
                     //imageitem.SetData(mat, material.updateTime);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
-                    go = GameObject.Instantiate(pVideo, spoit.transform);                   
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    yield return pVideo;
+                    go = GameObject.Instantiate(pVideo.asset as GameObject, spoit.transform);                   
                     go.SetActive(true);
                     TemplateVideo video = go.AddComponent<TemplateVideo>();
                     video.localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(objs[i].DownloadPath);
@@ -205,8 +207,9 @@ public class ModelList: System.ICloneable
                     //videoitem.SetData(mat, material.updateTime);
                     break;
                 case (int)MaterialType.Model:
-                    var pModel = ResMgr.Instance.Load<GameObject>("Template/Prefab/Model");
-                    go = GameObject.Instantiate(pModel, spoit.transform);                 
+                    var pModel = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Model");
+                    yield return pModel;
+                    go = GameObject.Instantiate(pModel.asset as GameObject, spoit.transform);                 
                     go.SetActive(true);
                     go.AddComponent<TemplateModel>();
                     //var modelitem = go.AddComponent<TemplateModel>();
@@ -214,16 +217,18 @@ public class ModelList: System.ICloneable
                     //Debug.Log(modelitem.Data.localSavePath);
                     break;
                 case (int)MaterialType.Text:
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                    go = GameObject.Instantiate(pText, spoit.transform);              
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    yield return pText;
+                    go = GameObject.Instantiate(pText.asset as GameObject, spoit.transform);              
                     go.SetActive(true);
                     go.AddComponent<TemplateText>();
                     //var textitem = go.AddComponent<TemplateText>();
                     //textitem.SetData(mat, material.updateTime);
                     break;
                 case (int)MaterialType.LocaImage:
-                    var pLocaImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                    go = GameObject.Instantiate(pLocaImage, spoit.transform);          
+                    var pLocaImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    yield return pLocaImage;
+                    go = GameObject.Instantiate(pLocaImage.asset as GameObject, spoit.transform);          
                     go.SetActive(true);
                     go.AddComponent<TemplateImage>();
                     //var locaImageitem = go.AddComponent<TemplateImage>();
@@ -280,7 +285,7 @@ public class ModelList: System.ICloneable
     /// <param name="material"></param>
     /// <param name="spoit"></param>
     /// <returns></returns>
-    private void CreateModel_Text(ModelList material, GameObject spoit)
+    private IEnumerator CreateModel_Text(ModelList material, GameObject spoit)
     {
         List<ObjectValue> objects = new List<ObjectValue>();
         List<ModelItem> objs = material.materialList;
@@ -294,16 +299,18 @@ public class ModelList: System.ICloneable
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Model:
-                    var pModel = ResMgr.Instance.Load<GameObject>("Template/Prefab/Model");
-                    go = GameObject.Instantiate(pModel, spoit.transform);        
+                    var pModel = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Model");
+                    yield return pModel;
+                    go = GameObject.Instantiate(pModel.asset as GameObject, spoit.transform);        
                     go.SetActive(true);
                     go.AddComponent<TemplateModel>();
                     //var modelitem = go.AddComponent<TemplateModel>();
                     //modelitem.SetData(mat, material.updateTime);
                     break;
                 case (int)MaterialType.Text:
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                    go = GameObject.Instantiate(pText, spoit.transform);                  
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    yield return pText;
+                    go = GameObject.Instantiate(pText.asset as GameObject, spoit.transform);                  
                     go.SetActive(true);
                     go.AddComponent<TemplateText>();
                     //var textitem = go.AddComponent<TemplateText>();
@@ -368,7 +375,7 @@ public class ModelList: System.ICloneable
     /// <summary>
     /// 创建 5图片+文字/视频+文字
     /// </summary>
-    private void CreateImage_Video_Text(ModelList material, GameObject spoit)
+    private IEnumerator CreateImage_Video_Text(ModelList material, GameObject spoit)
     {
       
         List<ObjectValue> objects = new List<ObjectValue>();
@@ -398,28 +405,28 @@ public class ModelList: System.ICloneable
         switch (material.typesetting)
         {
             case "1":
-                SRTitleLayout.CalLayout(material, spoit);
+              yield return  GameManager.Instance.StartCoroutine(SRTitleLayout.CalLayout(material, spoit));
                 break;
             case "2":
-                SRTitleLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(SRTitleLayout.CalLayout(material, spoit));
                 break;
             case "3":
-                SRTitleLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(SRTitleLayout.CalLayout(material, spoit));
                 break;
             case "4":
-                SRSectorLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(SRSectorLayout.CalLayout(material, spoit));
                 break;
             case "5":
-                DRTitleLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(DRTitleLayout.CalLayout(material, spoit));
                 break;
             case "6":
-                DRTitleLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(DRTitleLayout.CalLayout(material, spoit));
                 break;
             case "7":
-                DRTitleLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(DRTitleLayout.CalLayout(material, spoit));
                 break;
             case "8":
-                DRFanLayout.CalLayout(material, spoit);
+                yield return GameManager.Instance.StartCoroutine(DRFanLayout.CalLayout(material, spoit));
                 break;
 
             default:

+ 10 - 7
Assets/Scripts/LayoutGroup/DRFanLayout.cs

@@ -120,7 +120,7 @@ public class DRFanLayout : MonoBehaviour
         return objectValues;
     }
 
-    public static void CalLayout(ModelList materialObls, GameObject par)
+    public static IEnumerator CalLayout(ModelList materialObls, GameObject par)
     {
 
         BaseTemPlate text = new BaseTemPlate();
@@ -137,16 +137,18 @@ public class DRFanLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                    go = Instantiate(pImage, par.transform);
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    yield return pImage;
+                    go = Instantiate(pImage.asset as GameObject, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
                     go.SetActive(true);
                     // imageitem.SetData(mat, materialObls.updateTime);
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
-                    go = Instantiate(pVideo, par.transform);
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    yield return pVideo;
+                    go = Instantiate(pVideo.asset as GameObject, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
                     videoitem.autoplay = materialObls.autoplay;
                     go.SetActive(true);
@@ -155,8 +157,9 @@ public class DRFanLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                    go = Instantiate(pText, par.transform);
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    yield return pText;
+                    go = Instantiate(pText.asset as GameObject, par.transform);
                     var textitem = go.AddComponent<TemplateText>();
                     go.SetActive(true);
                     //  textitem.SetData(mat, materialObls.updateTime);

+ 10 - 7
Assets/Scripts/LayoutGroup/DRTitleLayout.cs

@@ -152,7 +152,7 @@ public class DRTitleLayout : MonoBehaviour
         return objectValues;
     }
 
-    public static void CalLayout(ModelList materialObls, GameObject par)
+    public static IEnumerator CalLayout(ModelList materialObls, GameObject par)
     {    
         BaseTemPlate text = new BaseTemPlate();
         ModelItem textmat = null;
@@ -168,16 +168,18 @@ public class DRTitleLayout : MonoBehaviour
                     case (int)MaterialType.None:
                         break;
                     case (int)MaterialType.Image:
-                        var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                        go = Instantiate(pImage, par.transform);
+                        var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                        yield return pImage;
+                        go = Instantiate(pImage.asset as GameObject, par.transform);
                         var imageitem = go.AddComponent<TemplateImage>();
                         go.SetActive(true);
                        // imageitem.SetData(mat, materialObls.updateTime);
                         noText.Add(imageitem);
                         break;
                     case (int)MaterialType.Video:
-                        var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
-                        go = Instantiate(pVideo, par.transform);
+                        var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                        yield return pVideo;
+                        go = Instantiate(pVideo.asset as GameObject, par.transform);
                         var videoitem = go.AddComponent<TemplateVideo>();
                         videoitem.autoplay = materialObls.autoplay;
                         go.SetActive(true);
@@ -186,8 +188,9 @@ public class DRTitleLayout : MonoBehaviour
                         break;
                     case (int)MaterialType.Text:
                         textmat = mat;
-                        var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                        go = Instantiate(pText, par.transform);
+                        var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                        yield return pText;
+                        go = Instantiate(pText.asset as GameObject, par.transform);
                         var textitem = go.AddComponent<TemplateText>();
                         go.SetActive(true);
                        // textitem.SetData(mat, materialObls.updateTime);

+ 10 - 7
Assets/Scripts/LayoutGroup/SRSectorLayout.cs

@@ -147,7 +147,7 @@ public class SRSectorLayout : MonoBehaviour
     }
 
 
-    public static void CalLayout(ModelList materialObls, GameObject par)
+    public static IEnumerator CalLayout(ModelList materialObls, GameObject par)
     {
        
         BaseTemPlate text = new BaseTemPlate();
@@ -164,16 +164,18 @@ public class SRSectorLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                    go = Instantiate(pImage, par.transform);
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    yield return pImage;
+                    go = Instantiate(pImage.asset  as  GameObject, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
                     go.SetActive(true);
                   //  imageitem.SetData(mat, materialObls.updateTime);
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
-                    go = Instantiate(pVideo, par.transform);
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    yield return pVideo;
+                    go = Instantiate(pVideo.asset as GameObject, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
                     videoitem.autoplay = materialObls.autoplay;
                     go.SetActive(true);
@@ -182,8 +184,9 @@ public class SRSectorLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                    go = Instantiate(pText, par.transform);
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    yield return pText;
+                    go = Instantiate(pText.asset as GameObject, par.transform);
                     var textitem = go.AddComponent<TemplateText>();
                     go.SetActive(true);
                    // textitem.SetData(mat, materialObls.updateTime);

+ 10 - 7
Assets/Scripts/LayoutGroup/SRTitleLayout.cs

@@ -139,7 +139,7 @@ public class SRTitleLayout : MonoBehaviour
     /// <param name="materialObls">素材</param>
     /// <param name="par">素材父物体,景点</param>
     /// <returns></returns>
-    public static void CalLayout(ModelList materialObls, GameObject par)
+    public static IEnumerator CalLayout(ModelList materialObls, GameObject par)
     {
         
         BaseTemPlate text = new BaseTemPlate();
@@ -156,16 +156,18 @@ public class SRTitleLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
-                    go = Instantiate(pImage, par.transform);
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    yield return pImage;
+                    go = Instantiate(pImage.asset as GameObject, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
                     go.SetActive(true);
                    // imageitem.SetData(mat, materialObls.updateTime);
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
-                    go = Instantiate(pVideo, par.transform);
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    yield return pVideo;
+                    go = Instantiate(pVideo.asset as GameObject, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
                     videoitem.autoplay = materialObls.autoplay;
                     go.SetActive(true);
@@ -174,8 +176,9 @@ public class SRTitleLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
-                    go = Instantiate(pText, par.transform);
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    yield return pText;
+                    go = Instantiate(pText.asset as GameObject, par.transform);
                     var textitem = go.AddComponent<TemplateText>();
                     go.SetActive(true);
                   //  textitem.SetData(mat, materialObls.updateTime);

+ 2 - 2
Assets/Scripts/UI/LoginPanel.cs

@@ -308,8 +308,8 @@ public class LoginPanel : BaseUI
 #if UNITY_EDITOR
         m_AccountStr = "4444@qq.com";
         m_AccountStr = "jiajun.hu@ghz-tech.com";
-      //  m_AccountStr = "1768147286@qq.com";
-        m_AccountStr = "bactest1@1.com";
+          m_AccountStr = "advtest1@1.com";
+       // m_AccountStr = "bactest1@1.com";
       //  m_AccountStr = "1768147286@qq.com";
         //  m_AccountStr = "advtest1@1.com";
 #endif