From 9df5aae86c098bf019f764d27b47d72da37bff84 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 30 八月 2018 10:30:24 +0800
Subject: [PATCH] 2391 【前端】游戏性能优化

---
 UI/Common/UI3DShowHero.cs                 |   34 +++++++++++++++++-----------------
 Core/ResModule/InstanceResourcesLoader.cs |   24 ++++++++++++++++++------
 2 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/Core/ResModule/InstanceResourcesLoader.cs b/Core/ResModule/InstanceResourcesLoader.cs
index 4b04a5f..371b385 100644
--- a/Core/ResModule/InstanceResourcesLoader.cs
+++ b/Core/ResModule/InstanceResourcesLoader.cs
@@ -76,7 +76,7 @@
         return LoadMob(_assetBundleName, _assetName);
     }
 
-    public static GameObject LoadModelRes(int id)
+    public static GameObject LoadModelRes(int id, bool _ui = false)
     {
 
         ModelResConfig _m = Config.Instance.Get<ModelResConfig>(id);
@@ -95,26 +95,27 @@
 
         if (_m.Type == (int)E_ModelResType.Suit)
         {
-            return LoadModelPrefab(raceSuffix, _name);
+            return LoadModelPrefab(raceSuffix, _name, _ui);
         }
         else if (_m.Type == (int)E_ModelResType.Horse)
         {
-            return LoadModelPrefab(horseSuffix, _name);
+            return LoadModelPrefab(horseSuffix, _name, _ui);
         }
         else if (_m.Type == (int)E_ModelResType.Wing)
         {
-            return LoadModelPrefab(wingSuffix, _name);
+            return LoadModelPrefab(wingSuffix, _name, _ui);
         }
         else if (_m.Type == (int)E_ModelResType.Weapon)
         {
-            return LoadModelPrefab(weaponSuffix, _name);
+            return LoadModelPrefab(weaponSuffix, _name, _ui);
         }
         else if (_m.Type == (int)E_ModelResType.Secondary)
         {
-            return LoadModelPrefab(secondarySuffix, _name);
+            return LoadModelPrefab(secondarySuffix, _name, _ui);
         }
         return null;
     }
+
 
     public static void LoadCreateRole(int job, Action<bool, UnityEngine.Object> _callBack)
     {
@@ -188,6 +189,17 @@
         return _gameObject;
     }
 
+    private static GameObject LoadModelPrefab(string _suffix, string name, bool _ui)
+    {
+        var prefab = LoadModelPrefab(_suffix, _ui ? name + "_UI" : name);
+        if (prefab == null)
+        {
+            prefab = LoadModelPrefab(_suffix, name);
+        }
+
+        return prefab;
+    }
+
     public static GameObject LoadMob(string assetBundleName, string assetName)
     {
         GameObject _gameObject = null;
diff --git a/UI/Common/UI3DShowHero.cs b/UI/Common/UI3DShowHero.cs
index 7f9b366..f2002ca 100644
--- a/UI/Common/UI3DShowHero.cs
+++ b/UI/Common/UI3DShowHero.cs
@@ -48,7 +48,7 @@
 
             if (weaponId != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(weaponId);
+                prefab = InstanceResourcesLoader.LoadModelRes(weaponId, true);
                 if (prefab)
                 {
                     pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -59,7 +59,7 @@
 
             if (secondaryId != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(secondaryId);
+                prefab = InstanceResourcesLoader.LoadModelRes(secondaryId, true);
                 if (prefab)
                 {
                     pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -70,7 +70,7 @@
 
             if (wingsId != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(wingsId);
+                prefab = InstanceResourcesLoader.LoadModelRes(wingsId, true);
                 if (prefab)
                 {
                     pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -82,7 +82,7 @@
 
             if (clothesId != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(clothesId);
+                prefab = InstanceResourcesLoader.LoadModelRes(clothesId, true);
                 if (prefab)
                 {
                     pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -133,7 +133,7 @@
 
             if (weaponModel)
             {
-                GameObject prefab = InstanceResourcesLoader.LoadModelRes(weaponId);
+                GameObject prefab = InstanceResourcesLoader.LoadModelRes(weaponId, true);
                 if (prefab)
                 {
                     GameObjectPoolManager.Instance.ReleaseGameObject(prefab, weaponModel);
@@ -173,7 +173,7 @@
                 UnloadClothes();
             }
 
-            var _prefab = InstanceResourcesLoader.LoadModelRes(newClothes);
+            var _prefab = InstanceResourcesLoader.LoadModelRes(newClothes, true);
             if (!_prefab)
             {
                 newClothes = config.BaseEquip[0];
@@ -208,7 +208,7 @@
 
         private void LoadClothes(int resID)
         {
-            var prefab = InstanceResourcesLoader.LoadModelRes(resID);
+            var prefab = InstanceResourcesLoader.LoadModelRes(resID, true);
             if (prefab)
             {
                 var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -243,7 +243,7 @@
                 return;
             }
 
-            var prefab = InstanceResourcesLoader.LoadModelRes(clothesId);
+            var prefab = InstanceResourcesLoader.LoadModelRes(clothesId, true);
             var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
             pool.Release(clothesModel);
             clothesModel = null;
@@ -285,18 +285,18 @@
 
             if (oldWeapon != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(oldWeapon);
+                prefab = InstanceResourcesLoader.LoadModelRes(oldWeapon, true);
                 pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                 pool.Release(weaponModel);
                 weaponModel = null;
             }
 
-            prefab = InstanceResourcesLoader.LoadModelRes(newWeapon);
+            prefab = InstanceResourcesLoader.LoadModelRes(newWeapon, true);
 
             if (!prefab)
             {
                 newWeapon = config.BaseEquip[1];
-                prefab = InstanceResourcesLoader.LoadModelRes(newWeapon);
+                prefab = InstanceResourcesLoader.LoadModelRes(newWeapon, true);
             }
 
             if (prefab)
@@ -338,7 +338,7 @@
 
             if (oldSecondary != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(oldSecondary);
+                prefab = InstanceResourcesLoader.LoadModelRes(oldSecondary, true);
                 pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                 pool.Release(secondaryModel);
                 secondaryModel = null;
@@ -346,11 +346,11 @@
 
             if (newSecondary != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(newSecondary);
+                prefab = InstanceResourcesLoader.LoadModelRes(newSecondary, true);
                 if (!prefab)
                 {
                     newSecondary = config.BaseEquip[2];
-                    prefab = InstanceResourcesLoader.LoadModelRes(newSecondary);
+                    prefab = InstanceResourcesLoader.LoadModelRes(newSecondary, true);
                 }
 
                 if (prefab)
@@ -388,7 +388,7 @@
 
             if (oldWings != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(oldWings);
+                prefab = InstanceResourcesLoader.LoadModelRes(oldWings, true);
                 pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                 pool.Release(wingsModel);
                 wingsModel = null;
@@ -396,12 +396,12 @@
 
             if (newWings != 0)
             {
-                prefab = InstanceResourcesLoader.LoadModelRes(newWings);
+                prefab = InstanceResourcesLoader.LoadModelRes(newWings, true);
 
                 if (!prefab)
                 {
                     newWings = config.BaseEquip[3];
-                    prefab = InstanceResourcesLoader.LoadModelRes(newWings);
+                    prefab = InstanceResourcesLoader.LoadModelRes(newWings, true);
                 }
 
                 if (prefab)

--
Gitblit v1.8.0