少年修仙传客户端代码仓库
client_linchunjie
2018-11-13 9b9078cb50aaa5e2da14255e4b0f4a85fe49ddce
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
8个文件已修改
412 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AssetBundle/AssetBundleUtility.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/InstanceResourcesLoader.cs 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SFX/SFXPlayUtility.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageManager.cs 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/IceCrystalVeinWin.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DShowHero.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
@@ -68,7 +68,8 @@
            {
                SkillHelper.Instance.OnSpSkillChange(vNetData.NewSkillID, 1);
            }
        }
    }
            InstanceResourcesLoader.PreloadSkillEffect(vNetData.NewSkillID);
        }
    }
}
Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -8,6 +8,8 @@
public class AssetBundleUtility : SingletonMonobehaviour<AssetBundleUtility>
{
    private List<AssetBundleInfo> m_AssetBundleInfoList = new List<AssetBundleInfo>();
    private List<string> m_LoadingAssetBundleList = new List<string>();
    private List<string> m_LoadingAssetList = new List<string>();
    private Dictionary<string, AssetInfo> m_AssetInfoDict = new Dictionary<string, AssetInfo>();
    private Dictionary<string, AssetBundle> m_AssetBundleDict = new Dictionary<string, AssetBundle>();
    private Dictionary<string, Dictionary<string, UnityEngine.Object>> m_AssetDict = new Dictionary<string, Dictionary<string, UnityEngine.Object>>();
@@ -187,6 +189,18 @@
            yield break;
        }
        if (m_LoadingAssetBundleList.Contains(assetBundleName))
        {
            while (!m_AssetBundleDict.ContainsKey(assetBundleName))
            {
                // Debug.Log(Time.frameCount + " ] 正在加载AssetBundle: " + assetBundleName + ", 请等待...");
                yield return null;
            }
            yield break;
        }
        m_LoadingAssetBundleList.Add(assetBundleName);
        var _assetBundleInfo = GetAssetBundleInfo(assetBundleName);
        if (_assetBundleInfo == null)
        {
@@ -211,6 +225,8 @@
        }
        CacheAssetBundle(assetBundleName, _request.assetBundle);
        m_LoadingAssetBundleList.Remove(assetBundleName);
    }
    private IEnumerator Co_LoadAssetBundleDependenice(AssetBundleInfo assetBundleInfo)
@@ -242,11 +258,35 @@
    private IEnumerator Co_DoLoadAsset(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
    {
#if UNITY_5
        assetBundleName = assetBundleName.ToLower();
#endif
#if UNITY_EDITOR
        RunTimeABLoadLog.AddLog(assetBundleName, assetName, UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
#endif
        yield return Co_LoadAssetBundle(assetBundleName);
        string _checkTag = assetBundleName + "@" + assetName;
        if (m_LoadingAssetList.Contains(_checkTag))
        {
            while (!m_AssetDict.ContainsKey(assetBundleName)
                || !m_AssetDict[assetBundleName].ContainsKey(assetName))
            {
                //                Debug.Log(Time.frameCount + " ] 正在加载Asset: " + _checkTag + ", 请等待...");
                yield return null;
            }
            if (callBack != null)
            {
                callBack(true, m_AssetDict[assetBundleName][assetName]);
            }
            yield break;
        }
        m_LoadingAssetList.Add(_checkTag);
        var request = m_AssetBundleDict[assetBundleName].LoadAssetAsync(assetName);
        while (!request.isDone)
@@ -270,6 +310,7 @@
            }
        }
        m_LoadingAssetList.Remove(_checkTag);
    }
    private IEnumerator Co_DoLoadAsset(AssetInfo assetInfo, Action<bool, UnityEngine.Object> callBack = null)
Core/ResModule/InstanceResourcesLoader.cs
@@ -29,25 +29,25 @@
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Fight()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[1][1]);
                                                          GeneralDefine.ModeDefaultConfig[1][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Func()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[0][1]);
                                                          GeneralDefine.ModeDefaultConfig[0][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Horse()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[3][1]);
                                                          GeneralDefine.ModeDefaultConfig[3][1].Replace("Prefab_Horse_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Pet()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[2][1]);
                                                          GeneralDefine.ModeDefaultConfig[2][1].Replace("Prefab_Race_", ""));
    }
    public static GameObject LoadDefaultFightNPC()
@@ -60,6 +60,25 @@
    {
        return LoadMob(GeneralDefine.ModeDefaultConfig[0][0],
                       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 void AsyncLoadDefaultFightNpc(Action<bool, UnityEngine.Object> callBack)
    {
        AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[1][0],
                     GeneralDefine.ModeDefaultConfig[1][1],
                     callBack);
    }
    public static void AsyncLoadDefaultPet(Action<bool, UnityEngine.Object> callBack)
    {
        AsyncLoadNpc(GeneralDefine.ModeDefaultConfig[2][0],
                     GeneralDefine.ModeDefaultConfig[2][1],
                     callBack);
    }
    public static GameObject LoadDefaultHorse()
@@ -228,6 +247,84 @@
        return prefab;
    }
    public static void AsyncLoadModelRes(int id, Action<bool, UnityEngine.Object> callback = null)
    {
        ModelResConfig _m = Config.Instance.Get<ModelResConfig>(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,
                                                        "Mob/",
                                                        _suffix + _name,
                                                        ".prefab");
            var _gameObject = AssetDatabase.LoadAssetAtPath<GameObject>(_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;
@@ -301,8 +398,7 @@
        return _gameObject;
    }
    public static void LoadEffectAsync(int _id, Action<bool, UnityEngine.Object> _callBack)
    public static void LoadEffectAsync(int _id, Action<bool, UnityEngine.Object> _callBack = null)
    {
        GameObject gameObject = null;
        var config = Config.Instance.Get<EffectConfig>(_id);
@@ -334,4 +430,110 @@
            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);
        }
    }
    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;
        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);
                    }
                }
            }
        }
    }
}
Core/SFX/SFXPlayUtility.cs
@@ -18,7 +18,6 @@
    public SFXController PlayEffectAsync(int id, Transform parent, float scale = 1)
    {
        var config = Config.Instance.Get<EffectConfig>(id);
        Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
        var bundleName = StringUtility.Contact(ResourcesPath.EFFECT_Folder_Name, config.packageName);
        if (AssetSource.effectFromEditor || AssetBundleUtility.Instance.JudgeExistAsset(bundleName, config.fxName))
        {
@@ -41,7 +40,6 @@
        }
        else
        {
            Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, OnEffectLoaded);
            return null;
        }
@@ -55,7 +53,6 @@
            if (_prefab)
            {
                GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
                Debug.LogFormat("[{0}] 异步加载: {1} 完毕", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), _prefab.name);
            }
        }
    }
@@ -134,7 +131,7 @@
        }
        else
        {
            Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
            // Debug.LogFormat("[{0}] 开始异步加载: {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), config.fxName);
            AssetBundleUtility.Instance.Co_LoadAsset(bundleName, config.fxName, OnEffectLoaded);
            return null;
        }
Fight/Stage/StageManager.cs
@@ -19,32 +19,40 @@
    public event Action<float> loadingProgressEvent;
    bool m_IsServerPreparing = false;
    public bool isServerPreparing {
    public bool isServerPreparing
    {
        get { return m_IsServerPreparing; }
        set { m_IsServerPreparing = value; }
    }
    public Stage.E_StageType StageType {
        get {
    public Stage.E_StageType StageType
    {
        get
        {
            return m_StageType;
        }
    }
    public Stage CurrentStage {
        get {
    public Stage CurrentStage
    {
        get
        {
            return m_CurrentStage;
        }
    }
    int m_CurrentMapId;
    public int currentMapId {
    public int currentMapId
    {
        get { return m_CurrentMapId; }
        private set { m_CurrentMapId = value; }
    }
    int m_CurrentMapResID;
    public int currentMapResId {
        get {
    public int currentMapResId
    {
        get
        {
            return m_CurrentMapResID;
        }
        private set { m_CurrentMapResID = value; }
@@ -55,9 +63,11 @@
    float m_LoadingProgress = 0f;
    float loadingProgress {
    float loadingProgress
    {
        get { return m_LoadingProgress; }
        set {
        set
        {
            m_LoadingProgress = value;
            if (loadingProgressEvent != null)
            {
@@ -584,6 +594,15 @@
        _hero.RequestLight();
        PlayerDatas.Instance.hero = _hero;
        var _preloadEffectList = GeneralDefine.PreloadSkillEffect[_hero.JobSetup.Job - 1];
        if (_preloadEffectList != null && _preloadEffectList.Length > 0)
        {
            foreach (var _id in _preloadEffectList)
            {
                InstanceResourcesLoader.PreloadSkillEffect(_id);
            }
        }
    }
    private string GetAssetBundleNameByStageId(int stageID, int mapResID)
System/Dungeon/IceCrystalVeinWin.cs
@@ -19,11 +19,35 @@
        [SerializeField] Button m_CloseButton;
        [SerializeField] Button m_SweepingButton;//扫荡
        [SerializeField] Button m_ChallengeButton;//挑战
        [SerializeField] Transform m_GridMiddle;//中间组
        [SerializeField] Transform m_GridBottom;//底层组
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        private int IndexSelect = 1;
        private List<int> IceCrystalVeinMiddle = new List<int>();
        private List<int> IceCrystalVeinStarBottom = new List<int>();
        private List<int> IceCrystalVeinBottom = new List<int>();
        #region Built-in
        protected override void BindController()
        {
            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
            var _IceCrystalVeinReward = Config.Instance.Get<FuncConfigConfig>("IceCrystalVeinReward");
            int[] IceCrystalVeinReward = ConfigParse.GetMultipleStr<int>(_IceCrystalVeinReward.Numerical1);
            for (int i = 0; i < IceCrystalVeinReward.Length; i++)
            {
                IceCrystalVeinMiddle.Add(IceCrystalVeinReward[i]);
            }
            var _IceCrystalVeinStarReward = Config.Instance.Get<FuncConfigConfig>("IceCrystalVeinStarReward");
            int[] _IceCrystalVeinStarBottom = ConfigParse.GetMultipleStr<int>(_IceCrystalVeinStarReward.Numerical1);
            for (int i = 0; i < _IceCrystalVeinStarBottom.Length; i++)
            {
                IceCrystalVeinStarBottom.Add(_IceCrystalVeinStarBottom[i]);
            }
            int[] _IceCrystalVeinBottom = ConfigParse.GetMultipleStr<int>(_IceCrystalVeinStarReward.Numerical2);
            for (int i = 0; i < _IceCrystalVeinBottom.Length; i++)
            {
                IceCrystalVeinBottom.Add(_IceCrystalVeinBottom[i]);
            }
        }
        protected override void AddListeners()
@@ -36,6 +60,8 @@
        protected override void OnPreOpen()
        {
            OnCreateGridLineCell(m_ScrollerController);
            SetGridMiddle();
            SetGridBotton();
        }
        protected override void OnAfterOpen()
@@ -101,6 +127,58 @@
                });
            }
        }
        private void SetGridMiddle()
        {
            for (int i = 0; i < m_GridMiddle.childCount; i++)
            {
                GameObject ObjChild = m_GridMiddle.GetChild(i).gameObject;
                if (i < IceCrystalVeinMiddle.Count)
                {
                    ObjChild.SetActive(true);
                    ItemCell _ItemCell = ObjChild.GetComponent<ItemCell>();
                    ItemCellModel cellModel = new ItemCellModel(IceCrystalVeinMiddle[i], true, (ulong)1);
                    _ItemCell.Init(cellModel);
                    int type = i;
                    _ItemCell.cellBtn.SetListener(()=>
                    {
                        ItemAttrData attrData = new ItemAttrData(IceCrystalVeinMiddle[type], false, (ulong)1);
                        itemTipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    ObjChild.SetActive(false);
                }
            }
        }
        private void SetGridBotton()
        {
            for (int i = 0; i < m_GridBottom.childCount; i++)
            {
                GameObject ObjChild = m_GridBottom.GetChild(i).gameObject;
                if (i < IceCrystalVeinBottom.Count)
                {
                    ObjChild.SetActive(true);
                    ItemCell _ItemCell = ObjChild.transform.Find("ItemCell_1").GetComponent<ItemCell>();
                    Text TextStar= ObjChild.transform.Find("Text_Star").GetComponent<Text>();
                    TextStar.text = "0/"+IceCrystalVeinStarBottom[i];
                    ItemCellModel cellModel = new ItemCellModel(IceCrystalVeinBottom[i], true, (ulong)1);
                    _ItemCell.Init(cellModel);
                    int type = i;
                    _ItemCell.cellBtn.SetListener(() =>
                    {
                        ItemAttrData attrData = new ItemAttrData(IceCrystalVeinBottom[type], false, (ulong)1);
                        itemTipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    ObjChild.SetActive(false);
                }
            }
        }
    }
}
System/GeneralConfig/GeneralDefine.cs
@@ -122,6 +122,7 @@
    public static List<int> dogzNoRebornRemindMaps = null;
    public static string[][] ModeDefaultConfig { get; private set; }
    public static int[][] PreloadSkillEffect { get; private set; }
    public static int[] RealmGroup { get; private set; }
    public static float PrefightAtkRange { get; private set; }
@@ -529,6 +530,11 @@
            fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
            fairyLandBuffId = GetInt("XjmjAddHarm", 2);
            achievementEarlierStageLevel = GetInt("AchieveLV");
            func = Config.Instance.Get<FuncConfigConfig>("PreloadSkillEffect");
            PreloadSkillEffect = new int[2][];
            PreloadSkillEffect[0] = GetIntArray("PreloadSkillEffect");
            PreloadSkillEffect[1] = GetIntArray("PreloadSkillEffect", 2);
        }
        catch (Exception ex)
        {
UI/Common/UI3DShowHero.cs
@@ -108,7 +108,7 @@
            if (weaponId != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(weaponId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(weaponId);
                if (prefab)
                {
                    pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -119,7 +119,7 @@
            if (secondaryId != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(secondaryId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(secondaryId);
                if (prefab)
                {
                    if (secondaryModel)
@@ -134,7 +134,7 @@
            if (wingsId != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(wingsId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(wingsId);
                if (prefab)
                {
                    pool = GameObjectPoolManager.Instance.RequestPool(prefab);
@@ -329,18 +329,18 @@
            if (oldWeapon != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(oldWeapon, true);
                prefab = InstanceResourcesLoader.LoadModelRes(oldWeapon);
                pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                pool.Release(weaponModel);
                weaponModel = null;
            }
            prefab = InstanceResourcesLoader.LoadModelRes(resoureceId, true);
            prefab = InstanceResourcesLoader.LoadModelRes(resoureceId);
            if (!prefab)
            {
                resoureceId = config.BaseEquip[1];
                prefab = InstanceResourcesLoader.LoadModelRes(resoureceId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(resoureceId);
            }
            if (prefab)
@@ -372,7 +372,7 @@
            if (oldSecondary != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(oldSecondary, true);
                prefab = InstanceResourcesLoader.LoadModelRes(oldSecondary);
                pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                pool.Release(secondaryModel);
                secondaryModel = null;
@@ -380,12 +380,12 @@
            if (secondaryResId != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(secondaryResId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(secondaryResId);
                if (!prefab)
                {
                    var config = Config.Instance.Get<JobSetupConfig>(_job);
                    secondaryResId = config.BaseEquip[2];
                    prefab = InstanceResourcesLoader.LoadModelRes(secondaryResId, true);
                    prefab = InstanceResourcesLoader.LoadModelRes(secondaryResId);
                }
                if (prefab)
@@ -415,7 +415,7 @@
            if (oldWings != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(oldWings, true);
                prefab = InstanceResourcesLoader.LoadModelRes(oldWings);
                pool = GameObjectPoolManager.Instance.RequestPool(prefab);
                pool.Release(wingsModel);
                wingsModel = null;
@@ -423,12 +423,12 @@
            if (resourceId != 0)
            {
                prefab = InstanceResourcesLoader.LoadModelRes(resourceId, true);
                prefab = InstanceResourcesLoader.LoadModelRes(resourceId);
                if (!prefab)
                {
                    resourceId = config.BaseEquip[3];
                    prefab = InstanceResourcesLoader.LoadModelRes(resourceId, true);
                    prefab = InstanceResourcesLoader.LoadModelRes(resourceId);
                }
                if (prefab)