From 79e244001c0e939c71de31944462fc226971de9c Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期二, 06 十一月 2018 17:38:07 +0800
Subject: [PATCH] Update

---
 Core/ResModule/InstanceResourcesLoader.cs |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/Core/ResModule/InstanceResourcesLoader.cs b/Core/ResModule/InstanceResourcesLoader.cs
index 1a3d2f9..1f37b9f 100644
--- a/Core/ResModule/InstanceResourcesLoader.cs
+++ b/Core/ResModule/InstanceResourcesLoader.cs
@@ -62,6 +62,13 @@
                        GeneralDefine.ModeDefaultConfig[0][1]);
     }
 
+    public static void AsyncLoadDefaultFuncNpc(Action<bool, UnityEngine.Object> callBack)
+    {
+        AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[0][0],
+                     GeneralDefine.ModeDefaultConfig[0][1],
+                     callBack);
+    }
+
     public static GameObject LoadDefaultHorse()
     {
         return LoadMob(GeneralDefine.ModeDefaultConfig[3][0],
@@ -334,4 +341,57 @@
             AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, _callBack);
         }
     }
+
+    public static void AsyncLoadNpc(int npcID, Action<bool, UnityEngine.Object> callBack = null)
+    {
+        NPCConfig _m = Config.Instance.Get<NPCConfig>(npcID);
+
+        if (_m == null || _m.MODE.Equals("0"))
+        {
+            if (callBack != null)
+            {
+                callBack(false, null);
+            }
+        }
+
+        string _assetName;
+        string _assetBundleName;
+
+        if (GAMgr.Instance.s_NpcID2Assetname.TryGetValue(npcID, out _assetName))
+        {
+            _assetBundleName = GAMgr.Instance.s_NpcID2BundleName[npcID];
+        }
+        else
+        {
+            _assetName = StringUtility.Contact(raceSuffix, _m.MODE);
+            _assetBundleName = StringUtility.Contact(ResourcesPath.MOB_FOLDER_NAME, _assetName);
+            GAMgr.Instance.s_NpcID2Assetname[npcID] = _assetName;
+            GAMgr.Instance.s_NpcID2BundleName[npcID] = _assetBundleName;
+        }
+
+        AsyncLoadNpc(_assetBundleName, _assetName, callBack);
+    }
+
+    public static void AsyncLoadNpc(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
+    {
+        if (AssetSource.mobFromEditor)
+        {
+#if UNITY_EDITOR
+            string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+                                                        "Mob/",
+                                                        assetName,
+                                                        ".prefab");
+
+            var _p = AssetDatabase.LoadAssetAtPath<GameObject>(_resourcePath);
+            if (callBack != null)
+            {
+                callBack(true, _p);
+            }
+#endif
+        }
+        else
+        {
+            AssetBundleUtility.Instance.Co_LoadAsset(assetBundleName, assetName, callBack);
+        }
+    }
 }

--
Gitblit v1.8.0