// using UnityEngine; // using System; // #if UNITY_EDITOR // using UnityEditor; // #endif // public class InstanceResourcesLoader // { // public static readonly string raceSuffix = "Prefab_Race_"; // public static readonly string horseSuffix = "Prefab_Horse_"; // public static readonly string weaponSuffix = "Prefab_Weapon_"; // public static readonly string secondarySuffix = "Prefab_Secondary_"; // public static readonly string handSuffix = "Prefab_Hand_"; // public static readonly string wingSuffix = "Prefab_Wing_"; // public static readonly string emptyJyName = "Prefab_Race_JY"; // public static GameObject LoadEmptyJY() // { // GameObject _prefab = null; // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/", // emptyJyName, // ".prefab"); // _prefab = AssetDatabase.LoadAssetAtPath(_resourcePath); // #endif // } // else // { // _prefab = AssetBundleUtility.Instance.Sync_LoadAsset("gmodels/prefab_race_jy", emptyJyName) as GameObject; // } // if (_prefab == null) // { // Debug.LogErrorFormat("InstanceResourcesLoader.LoadModel() => 加载不到资源: {0}/{1} ", "gmodels/prefab_race_jy", emptyJyName); // } // return _prefab; // } // // public static GameObject LoadNpc(int id) // // { // // NPCConfig _m = NPCConfig.Get(id); // // if (_m == null || string.IsNullOrEmpty(_m.MODE) || _m.MODE.Equals("0")) // // { // // return null; // // } // // return LoadModelPrefab(raceSuffix, _m.MODE); // // } // public static GameObject LoadDefaultFightNPC() // { // return LoadMob(GeneralDefine.ModeDefaultConfig[1][0], // GeneralDefine.ModeDefaultConfig[1][1]); // } // public static GameObject LoadDefaultFuncNPC() // { // return LoadMob(GeneralDefine.ModeDefaultConfig[0][0], // GeneralDefine.ModeDefaultConfig[0][1]); // } // public static void AsyncLoadDefaultFuncNpc(Action callBack) // { // AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[0][0], // GeneralDefine.ModeDefaultConfig[0][1], // callBack); // } // public static void AsyncLoadDefaultFightNpc(Action callBack) // { // AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[1][0], // GeneralDefine.ModeDefaultConfig[1][1], // callBack); // } // public static void AsyncLoadDefaultPet(Action callBack) // { // AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[2][0], // GeneralDefine.ModeDefaultConfig[2][1], // callBack); // } // public static GameObject LoadDefaultHorse() // { // return LoadMob(GeneralDefine.ModeDefaultConfig[3][0], // GeneralDefine.ModeDefaultConfig[3][1]); // } // public static GameObject LoadDefaultPet() // { // return LoadMob(GeneralDefine.ModeDefaultConfig[2][0], // GeneralDefine.ModeDefaultConfig[2][1]); // } // // public static GameObject LoadNpcPrefab(int npcID) // // { // // NPCConfig _m = NPCConfig.Get(npcID); // // if (_m == null || _m.MODE.Equals("0")) // // { // // return 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; // // } // // return LoadMob(_assetBundleName, _assetName); // // } // public static GameObject LoadModelRes(int id, bool _ui = false) // { // ModelResConfig _m = ModelResConfig.Get(id); // if (_m == null) // { // return null; // } // string _name = _m.ResourcesName; // int _index = _name.IndexOf('/'); // if (_index != -1) // { // _name = _name.Substring(_index + 1); // } // if (_m.Type == (int)E_ModelResType.Suit) // { // return LoadModelPrefab(raceSuffix, _name, _ui); // } // else if (_m.Type == (int)E_ModelResType.Horse) // { // return LoadModelPrefab(horseSuffix, _name, _ui); // } // else if (_m.Type == (int)E_ModelResType.Wing) // { // return LoadModelPrefab(wingSuffix, _name, _ui); // } // else if (_m.Type == (int)E_ModelResType.Weapon) // { // return LoadModelPrefab(weaponSuffix, _name, _ui); // } // else if (_m.Type == (int)E_ModelResType.Secondary) // { // return LoadModelPrefab(secondarySuffix, _name, _ui); // } // else if (_m.Type == (int)E_ModelResType.Hand) // { // return LoadModelPrefab(handSuffix, _name, _ui); // } // return null; // } // public static void LoadCreateRole(int job, Action _callBack) // { // string _name = "Zs"; // switch (job) // { // case 1: // _name = "Zs"; // break; // case 2: // _name = "Fs"; // break; // case 3: // _name = "Zs"; // break; // case 4: // _name = "Zs"; // break; // } // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/CreateRole/", // _name, // ".prefab"); // var gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // if (_callBack != null) // { // _callBack(true, gameObject); // } // #endif // } // else // { // var assetInfo = new AssetInfo("gmodels/createrole", _name); // AssetBundleUtility.Instance.Co_LoadAsset(assetInfo, _callBack); // } // } // private static GameObject LoadModelPrefab(string _suffix, string name) // { // GameObject _gameObject = null; // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/", // _suffix + name, // ".prefab"); // _gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // #endif // } // else // { // string _bundleName = StringUtility.Contact(ResourcesPath.MOB_FOLDER_NAME, "prefab_race_" + name.Replace("_UI", "")); // string _assetName = _suffix + name; // _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_bundleName, _assetName) as GameObject; // } // if (_gameObject == null) // { // Debug.LogErrorFormat("InstanceResourcesLoader.LoadModel() => 加载不到资源: {0} ", name); // } // return _gameObject; // } // public 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 void AsyncLoadModelRes(int id, Action callback = null) // { // ModelResConfig _m = ModelResConfig.Get(id); // if (_m == null) // { // return; // } // string _name = _m.ResourcesName; // int _index = _name.IndexOf('/'); // if (_index != -1) // { // _name = _name.Substring(_index + 1); // } // string _suffix = string.Empty; // if (_m.Type == (int)E_ModelResType.Suit) // { // _suffix = raceSuffix; // } // else if (_m.Type == (int)E_ModelResType.Horse) // { // _suffix = horseSuffix; // } // else if (_m.Type == (int)E_ModelResType.Wing) // { // _suffix = wingSuffix; // } // else if (_m.Type == (int)E_ModelResType.Weapon) // { // _suffix = weaponSuffix; // } // else if (_m.Type == (int)E_ModelResType.Secondary) // { // _suffix = secondarySuffix; // } // else if (_m.Type == (int)E_ModelResType.Hand) // { // _suffix = handSuffix; // } // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/", // _suffix + _name, // ".prefab"); // var _gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // if (_gameObject) // { // if (callback != null) // { // callback(true, _gameObject); // } // } // else // { // if (callback != null) // { // callback(false, null); // } // } // #endif // } // else // { // string _bundleName = StringUtility.Contact(ResourcesPath.MOB_FOLDER_NAME, "prefab_race_" + _name.Replace("_UI", "")); // string _assetName = _suffix + _name; // AssetBundleUtility.Instance.Co_LoadAsset(_bundleName, _assetName, callback); // } // } // public static GameObject LoadMob(string assetBundleName, string assetName) // { // GameObject _gameObject = null; // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/", // assetName, // ".prefab"); // _gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // #endif // } // else // { // _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(assetBundleName, assetName) as GameObject; // } // if (_gameObject == null) // { // Debug.LogErrorFormat("InstanceResourcesLoader.LoadModel() => 加载不到资源: {0}/{1} ", assetBundleName, assetName); // } // return _gameObject; // } // public static void UnloadAsset(string bundleName, string assetName) // { // if (!AssetSource.mobFromEditor) // { // AssetBundleUtility.Instance.UnloadAsset(bundleName, assetName); // AssetBundleUtility.Instance.UnloadAssetBundle(bundleName, true, false); // } // } // public static GameObject LoadEffect(int id) // { // GameObject _gameObject = null; // EffectConfig _effectModel = EffectConfig.Get(id); // if (_effectModel == null) // { // return null; // } // if (AssetSource.effectFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Effect/", // _effectModel.packageName, // "/", // _effectModel.fxName, // ".prefab"); // _gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // #endif // } // else // { // string _bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, _effectModel.packageName); // _gameObject = AssetBundleUtility.Instance.Sync_LoadAsset(_bundleName, _effectModel.fxName) as GameObject; // } // if (_gameObject == null) // { // Debug.LogErrorFormat("InstanceResourcesLoader.LoadSkillEffect() => 加载不到资源: {0}", _effectModel.fxName); // } // return _gameObject; // } // public static void LoadEffectAsync(int _id, Action _callBack = null) // { // GameObject gameObject = null; // var config = EffectConfig.Get(_id); // if (config == null) // { // return; // } // if (AssetSource.effectFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Effect/", // config.packageName, // "/", // config.fxName, // ".prefab"); // gameObject = AssetDatabase.LoadAssetAtPath(_resourcePath); // if (_callBack != null) // { // _callBack(gameObject != null, gameObject); // } // #endif // } // else // { // var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName); // AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, _callBack); // } // } // public static void AsyncLoadNpc(int npcID, Action callBack = null) // { // NPCConfig _m = NPCConfig.Get(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 callBack = null) // { // if (AssetSource.mobFromEditor) // { // #if UNITY_EDITOR // string _resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, // "Gmodels/", // assetName, // ".prefab"); // var _p = AssetDatabase.LoadAssetAtPath(_resourcePath); // if (callBack != null) // { // callBack(true, _p); // } // #endif // } // else // { // AssetBundleUtility.Instance.Co_LoadAsset(assetBundleName, assetName, callBack); // } // } // public static void PreloadSkillEffect(int id) // { // var _skillInfo = SkillHelper.Instance.Get(id); // // 技能特效预加载 // if (_skillInfo.config.EffectName > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_skillInfo.config.EffectName); // } // if (_skillInfo.config.BuffEffectID > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_skillInfo.config.EffectName); // } // var _soSkill = _skillInfo.soFile; // if (_soSkill != null) // { // for (int i = 0; i < _soSkill.animationEventList.Count; ++i) // { // if (_soSkill.animationEventList[i].frameEventType == E_FrameEventType.OnPlayEffect) // { // if (_soSkill.animationEventList[i].intParam > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_soSkill.animationEventList[i].intParam); // } // } // else if (_soSkill.animationEventList[i].frameEventType == E_FrameEventType.OnSkillEvent) // { // var _param = _soSkill.animationEventList[i].intParam; // var _type = SoSkill.GetAttactType(_param); // var _id = SoSkill.GetFrameEventId(_param); // if (_type == SoSkill.E_AttackType.Sweep) // { // var _config = ScriptableObjectLoader.LoadSoSweepHit(_id); // if (_config.hitEffectId > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_config.hitEffectId); // } // } // else if (_type == SoSkill.E_AttackType.FlyObject) // { // var _config = ScriptableObjectLoader.LoadSoFlyObject(_id); // if (_config.hitEffectId > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_config.hitEffectId); // } // if (_config.ammoEffectId > 0) // { // InstanceResourcesLoader.LoadEffectAsync(_config.hitEffectId); // } // } // } // } // } // } // }