Browse Source

优化加载逻辑

胡佳骏 1 year ago
parent
commit
46a15957a8

+ 1 - 1
Assets/Resources/VuforiaConfiguration.asset

@@ -13,7 +13,7 @@ MonoBehaviour:
   m_Name: VuforiaConfiguration
   m_EditorClassIdentifier: 
   vuforia:
-    vuforiaLicenseKey: AVdaifr/////AAABmTxtN/ZN0Eg+uuJIO4iBD7dsw2+y7PFk/RTJIeK591PAPZFHjA0YUX2pybiHDZk+xm0fFr2tLCDPOwMR8S/wxajuVOXUYDkGA8NlzQiNbSfQyFSEFLS92UNrOQO0dnMwsTnZKS0VUhk+Xh9bYy4Iv7lfQ8fPvG6/DSQ/qfSrn8IbZsQ3Dl2MomN1VAO5YPXSQwjCyY8Lncu6XwJXfrxZoDvBJkDDnp5NiWhlqdiYi/ZewaJyrhAE1tImEkTKR4B4bu2VE1n8qaXCEFmRGtX2SLYiCchylxYXzYnF9DwTlLOVvY/3vXnuJ8VPhaUtAM8xIrk072ZL5lvBnVJ508LHC5vzzWJcLBI8pDmS9p6BcU1D
+    vuforiaLicenseKey: 
     ufoLicenseKey: QWRvTlZRYi8vLy8vQUFBQUtFUlVmMFlNSUUyWG5CbzJUQ2JlazFZSXptZnlBb29UdzVkdGg2bmdRWjQyWjM4eEphZjZPa2VFcDlSb2xoekRPeXZCcVlKbXQvZjduby9xbjVjNVMxVnlxZ2VhNVBiVzlBTVpJRVU5TmJCaVNxcGc4QzVXdWpySEJWOVcvT1JJZGdxbmowUVp2OHR5UytzQk9CWWlMbVJaZXErTE5MWXJSUEhlNjMzWWh0NnR3Q2RxTFRVVzFtSjNacUIwYW5pYnk3S2FhK241UDVtTXZoRzUyWkZKM2VKZk9JTXZEV05WU05wOFVOY0tyalZwRDRkeEw2Y3d5cFpDWjJub09IOUxUNVNEV2xqMDRYUnZRYXZ2UTJjVlFqUkdvc2E1NjY3TFNjQ0JqTUJFaXlFRTFtbDNhbERnQUtldllOalpoVkpadVkydnl3NzU5eVhYUXl3STZIZXFsYUh2aWxwV05EaTcrZCtFZE04bTlVanI=
     delayedInitialization: 0
     cameraFocusModeSetting: 2

+ 31 - 17
Assets/Scripts/LayoutTemplate/TemplateModel.cs

@@ -21,7 +21,8 @@ public class TemplateModel : BaseTemPlate
         {
             //Debug.Log(Data.name);
             Debug.Log("DGJ ==>>   "+Data.localLoadPath);
-            AssetBundle ab = AssetBundle.LoadFromFile(Data.localLoadPath);
+            var ab = AssetBundle.LoadFromFileAsync(Data.localLoadPath);
+            yield return ab;
             if (ab == null)
             {
                 Debug.Log("Failed to load AssetBundle!");
@@ -29,14 +30,24 @@ public class TemplateModel : BaseTemPlate
             }
             else
             {
-                var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
+                var allab = ab.assetBundle.LoadAllAssetsAsync<GameObject>();
+                yield return allab;
+                var prefab = ab.assetBundle.LoadAssetAsync<GameObject>((allab.allAssets[0] as GameObject).name);
 
-                switch (prefab.name)
+                yield return prefab;
+                switch (prefab.asset.name)
                 {
                     case "GHZ_OOBE_230721":
 
-                        GameObject obj = Resources.Load<GameObject>("GongYe");
-                        if(obj == null)
+                        var objload = Resources.LoadAsync<GameObject>("GongYe");
+                        yield return objload;
+                        GameObject obj = null;
+                        if (objload.asset is GameObject)
+                        {
+                            obj = objload.asset as GameObject;
+
+                        }
+                        if (obj == null)
                         {
                             Debug.LogError(" GHZ_OOBE_230721  物体加载失败,请查看是否导入相关Packages ");
                             obj = new GameObject();
@@ -63,7 +74,7 @@ public class TemplateModel : BaseTemPlate
                         break;
 
                     default:
-                        m_ModelObj = Instantiate(prefab, transform);
+                        m_ModelObj = Instantiate(prefab.asset as GameObject, transform);
                         break;
                 }
 
@@ -75,7 +86,7 @@ public class TemplateModel : BaseTemPlate
                 gameObject.AddComponent<ManipulationHandler>();
                 gameObject.AddComponent<BoundingBox>();
                 yield return new WaitForSeconds(0.3f);
-                ab.Unload(false);
+                ab.assetBundle.Unload(false);
                 HideCollider();
             }
           
@@ -93,10 +104,10 @@ public class TemplateModel : BaseTemPlate
     }
     public void LoadModel(AssetBundle ab)
     {
-        // StartCoroutine(LoadABModel(ab));
-        LoadABModel(ab);
+       StartCoroutine(LoadABModel(ab));
+        //LoadABModel(ab);
     }
-    private void LoadABModel(AssetBundle ab)
+    private IEnumerator LoadABModel(AssetBundle ab)
     {
         if (ab == null)
         {
@@ -105,17 +116,20 @@ public class TemplateModel : BaseTemPlate
         }
         else
         {
-            var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
+            var allab = ab.LoadAllAssetsAsync<GameObject>();
+            yield return allab;
+            var prefab = ab.LoadAssetAsync<GameObject>((allab.allAssets[0] as GameObject).name);
 
-            switch (prefab.name)
+            switch (prefab.asset.name)
             {
                 case "GHZ_OOBE_230721":
 
-                    GameObject obj = Resources.Load<GameObject>("GongYe");
-                    if (obj == null)
+                    var objload = Resources.LoadAsync<GameObject>("GongYe");
+                    yield return objload;
+                    GameObject obj = null;
+                    if (objload.asset is GameObject)
                     {
-                        Debug.LogError(" GHZ_OOBE_230721  物体加载失败,请查看是否导入相关Packages ");
-                        obj = new GameObject();
+                        obj = objload.asset as GameObject;
 
                     }
                     m_ModelObj = GameObject.Instantiate(obj, transform);
@@ -139,7 +153,7 @@ public class TemplateModel : BaseTemPlate
                     break;
 
                 default:
-                    m_ModelObj = Instantiate(prefab, transform);
+                    m_ModelObj = Instantiate(prefab.asset as GameObject, transform);
                     break;
             }
 

+ 12 - 0
Assets/VuforiaLicense.cs

@@ -0,0 +1,12 @@
+
+            //This class is auto-generated, please do not overwrite
+
+            public class VuforiaLicense
+            {
+const string license = "QVZkYWlmci8vLy8vQUFBQm1UeHROL1pOMEVnK3V1SklPNGlCRDdkc3cyK3k3UEZrL1JUSkllSzU5MVBBUFpGSGpBMFlVWDJweWJpSERaayt4bTBmRnIydExDRFBPd01SOFMvd3hhanVWT1hVWURrR0E4Tmx6UWlOYlNmUXlGU0VGTFM5MlVOck9RTzBkbk13c1RuWktTMFZVaGsrWGg5Yll5NEl2N2xmUThmUHZHNi9EU1EvcWZTcm44SWJac1EzRGwyTW9tTjFWQU81WVBYU1F3akN5WThMbmN1Nlh3Slhmcnhab0R2QkprRERucDVOaVdobHFkaVlpL1pld2FKeXJoQUUxdEltRWtUS1I0QjRidTJWRTFuOHFhWENFRm1SR3RYMlNMWWlDY2h5bHhZWHpZbkY5RHdUbExPVnZZLzN2WG51SjhWUGhhVXRBTTh4SXJrMDcyWkw1bHZCblZKNTA4TEhDNXZ6eldKY0xCSThwRG1TOXA2QmNVMUQ=";
+
+                static string GetLicenseKey()
+                {
+                    return license;
+                }
+            }

+ 11 - 0
Assets/VuforiaLicense.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1831baa338b19ab4a938f8d09c801b25
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: