// using UnityEngine; // using System.Collections.Generic; // using System; // public class UI3DModelFactory // { // static UI3DModelFactory() // { // GlobalTimeEvent.Instance.minuteEvent += OnPerMinute; // } // public static GameObject LoadUINPC(int id) // { // if (!NPCConfig.Has(id)) // { // return null; // } // try // { // var config = NPCConfig.Get(id); // var model = GameObjectPoolManager.Instance.RequestNpcGameObject(id); // if (!model && config.NPCType == (int)E_NpcType.Func) // { // model = GameObjectPoolManager.Instance.RequestDefaultFuncNpc(); // } // if (!model) // { // return null; // } // var animator = model.GetComponent(); // if (animator != null) // { // var suffix = AnimatorControllerLoader.controllerUISuffix; // var _modeName = config.MODE; // if (config.MODE.StartsWith("A_Zs")) // { // _modeName = "A_Zs"; // } // else if (config.MODE.StartsWith("A_Fs")) // { // _modeName = "A_Fs"; // } // var animatorController = AnimatorControllerLoader.LoadMobController(suffix, _modeName); // if (animatorController != null) // { // animator.runtimeAnimatorController = animatorController; // } // var isDance = false; // if (config.NPCType == (int)E_NpcType.Func) // { // var clipInfos = animator.runtimeAnimatorController.animationClips; // foreach (var item in clipInfos) // { // if (item.name == "Idle2") // { // isDance = true; // break; // } // } // } // animator.enabled = true; // if (isDance) // { // animator.Play(GAStaticDefine.State_Dance); // } // else // { // animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_Idle); // animator.Play(GAStaticDefine.State_IdleHash); // } // } // LayerUtility.SetLayer(model, LayerUtility.Monster, true); // return model; // } // catch (Exception e) // { // Debug.Log("LoadUINPC Error: " + e.Message); // return null; // } // } // public static void ReleaseUINPC(int id, GameObject model) // { // var animator = model.GetComponent(); // if (animator != null) // { // ResetRealmBossAnimator(id, animator); // animator.enabled = false; // } // if (model) // { // model.transform.localScale = Vector3.one; // } // var prefab = InstanceResourcesLoader.LoadNpcPrefab(id); // if (prefab) // { // GameObjectPoolManager.Instance.ReleaseGameObject(prefab, model); // } // else // { // GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(model); // } // } // private static void ResetRealmBossAnimator(int _id, Animator animator) // { // if (RealmLVUPTaskConfig.IsRealmBoss(_id)) // { // var npcConfig = NPCConfig.Get(_id); // if (npcConfig != null) // { // var runtimeController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, npcConfig.MODE); // if (runtimeController != null) // { // animator.runtimeAnimatorController = runtimeController; // } // } // } // } // public static GameObject LoadUIHorse(int id) // { // var prefab = InstanceResourcesLoader.LoadModelRes(id, false); // if (prefab == null) // { // return null; // } // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var model = pool.Request(); // var animator = model.GetComponent(); // if (animator != null) // { // var config = ModelResConfig.Get(id); // var suffix = AnimatorControllerLoader.controllerUISuffix; // var animatorController = AnimatorControllerLoader.LoadMobController(suffix, config.ResourcesName); // if (animatorController != null) // { // animator.runtimeAnimatorController = animatorController; // } // animator.enabled = true; // animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_Idle); // animator.Play(GAStaticDefine.State_IdleHash); // } // return model; // } // public static void ReleaseUIHourse(int id, GameObject model) // { // var prefab = InstanceResourcesLoader.LoadModelRes(id, false); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var animator = model.GetComponent(); // if (animator != null) // { // animator.enabled = false; // } // pool.Release(model); // } // static Dictionary treasureModels = new Dictionary(); // static Dictionary treasureModelReleaseTimes = new Dictionary(); // public static GameObject LoadUITreasure(int _id) // { // GameObject instance = null; // if (treasureModels.ContainsKey(_id)) // { // instance = treasureModels[_id]; // if (instance == null) // { // treasureModels.Remove(_id); // } // } // if (instance == null) // { // var config = TreasureConfig.Get(_id); // var folder = string.Empty; // switch ((TreasureCategory)config.Category) // { // case TreasureCategory.Human: // folder = "RenZu"; // break; // case TreasureCategory.Demon: // folder = "MoZu"; // break; // case TreasureCategory.Fairy: // folder = "XianZu"; // break; // case TreasureCategory.King: // folder = "WangZhe"; // break; // default: // break; // } // var prefab = UILoader.LoadTreasure(folder, config.Model); // instance = GameObject.Instantiate(prefab); // treasureModels[_id] = instance; // UILoader.UnLoadTreasure(folder, config.Model); // } // var animator = instance.GetComponent(); // if (animator != null) // { // animator.enabled = true; // } // LayerUtility.SetLayer(instance, LayerUtility.UILayer, true); // if (treasureModelReleaseTimes.ContainsKey(_id)) // { // treasureModelReleaseTimes.Remove(_id); // } // return instance; // } // public static void ReleaseUITreasure(int _id, GameObject _model) // { // treasureModelReleaseTimes[_id] = DateTime.Now; // var animator = _model.GetComponent(); // if (animator != null) // { // animator.enabled = false; // } // _model.SetActive(false); // } // private static void OnPerMinute() // { // var keys = new List(treasureModelReleaseTimes.Keys); // for (int i = 0; i < keys.Count; i++) // { // var key = keys[i]; // var releaseTime = treasureModelReleaseTimes[key]; // if ((DateTime.Now - releaseTime).TotalSeconds > Constants.UnUsedRes_Unload_Delay) // { // if (treasureModels.ContainsKey(key)) // { // var model = treasureModels[key]; // treasureModels.Remove(key); // if (model != null) // { // GameObject.Destroy(model); // } // } // } // } // } // //法器 // public static GameObject LoadUIFaqi(string pathName, string modelName) // { // var prefab = UILoader.LoadFaqi(pathName, modelName); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var model = pool.Request(); // var animator = model.GetComponent(); // if (animator != null) // { // animator.enabled = true; // } // LayerUtility.SetLayer(model, LayerUtility.UILayer, true); // return model; // } // public static GameObject LoadUIGodWeapon(int _type) // { // var prefab = UILoader.LoadGodWeapon(GeneralDefine.godWeaponMobs[_type]); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var model = pool.Request(); // var animator = model.GetComponent(); // if (animator != null) // { // animator.enabled = true; // } // LayerUtility.SetLayer(model, LayerUtility.UILayer, true); // return model; // } // public static void ReleaseUIGodWeapon(int _type, GameObject _model) // { // if (!GameObjectPoolManager.IsValid()) // { // return; // } // if (!GeneralDefine.godWeaponMobs.ContainsKey(_type)) // { // return; // } // var prefab = UILoader.LoadGodWeapon(GeneralDefine.godWeaponMobs[_type]); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var animator = _model.GetComponent(); // if (animator != null) // { // animator.enabled = false; // } // pool.Release(_model); // } // public static void ReleaseUIFaqi(string pathName, string modelName, GameObject _model) // { // if (!GameObjectPoolManager.IsValid()) // { // return; // } // var prefab = UILoader.LoadFaqi(pathName, modelName); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var animator = _model.GetComponent(); // if (animator != null) // { // animator.enabled = false; // } // pool.Release(_model); // } // public static GameObject LoadUIWing(int _id) // { // var prefab = InstanceResourcesLoader.LoadModelRes(_id, false); // if (prefab == null) // { // return null; // } // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var model = pool.Request(); // var animator = model.GetComponent(); // if (animator != null) // { // animator.enabled = true; // } // return model; // } // public static void ReleaseUIWing(int _id, GameObject _model) // { // var prefab = InstanceResourcesLoader.LoadModelRes(_id, false); // var pool = GameObjectPoolManager.Instance.RequestPool(prefab); // var animator = _model.GetComponent(); // if (animator != null) // { // animator.enabled = false; // } // pool.Release(_model); // } // }