From 2b47fde8e7902ddddd898309f281b9c310fc877f Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期三, 22 八月 2018 12:00:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into Skill_Polymorph_BeatBackPlayer

---
 UI/Common/UI3DModelFactory.cs |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/UI/Common/UI3DModelFactory.cs b/UI/Common/UI3DModelFactory.cs
index d7bf6e2..425916d 100644
--- a/UI/Common/UI3DModelFactory.cs
+++ b/UI/Common/UI3DModelFactory.cs
@@ -66,7 +66,7 @@
 
     public static GameObject LoadUINPC(int id)
     {
-        var config = ConfigManager.Instance.GetTemplate<NPCConfig>(id);
+        var config = Config.Instance.Get<NPCConfig>(id);
         var model = GameObjectPoolManager.Instance.RequestNpcGameObject(id);
 
         if (!model && config.NPCType == (int)E_NpcType.Func)
@@ -96,6 +96,7 @@
         var animator = model.GetComponent<Animator>();
         if (animator != null)
         {
+            ResetRealmBossAnimator(id, animator);
             animator.enabled = false;
         }
 
@@ -107,6 +108,27 @@
         else
         {
             GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(model);
+        }
+    }
+
+    private static void ResetRealmBossAnimator(int _id, Animator animator)
+    {
+        var configs = Config.Instance.GetAllValues<RealmConfig>();
+        var index = configs.FindIndex((x) =>
+        {
+            return x.BossID == _id;
+        });
+        if (index != -1)
+        {
+            var npcConfig = Config.Instance.Get<NPCConfig>(_id);
+            if (npcConfig != null)
+            {
+                var runtimeController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, npcConfig.MODE);
+                if (runtimeController != null)
+                {
+                    animator.runtimeAnimatorController = runtimeController;
+                }
+            }
         }
     }
 
@@ -163,7 +185,7 @@
 
         if (instance == null)
         {
-            var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(_id);
+            var config = Config.Instance.Get<TreasureConfig>(_id);
             var prefab = UILoader.LoadPrefab(config.Model);
             instance = GameObject.Instantiate(prefab);
             treasureModels[_id] = instance;

--
Gitblit v1.8.0