Browse Source

换装代码优化

guodong 2 years ago
parent
commit
61ac7b7255

+ 11 - 14
GameClient/Assets/Game/HotUpdate/Data/CustomSuitDataManager.cs

@@ -11,7 +11,7 @@ namespace GFGGame
 
 
         private static Dictionary<int, CustomSuitData> _dataDic = new Dictionary<int, CustomSuitData>();
-        public static void SaveSuit(int index, List<int> arrayList, int bgID = 0, int suitId = 0, bool pic = false)
+        public static void SaveSuit(int index, EquipData equipData)
         {
             CustomSuitData suitSavedData = null;
             if (_dataDic.ContainsKey(index))
@@ -23,10 +23,7 @@ namespace GFGGame
                 suitSavedData = new CustomSuitData(index);
                 _dataDic.Add(index, suitSavedData);
             }
-            suitSavedData.equipDatas = arrayList;
-            suitSavedData.bg = bgID;
-            suitSavedData.pic = pic;
-            suitSavedData.suitId = suitId;
+            suitSavedData.EquipData = equipData;
         }
 
         public static CustomSuitData GetSuitList(int index)
@@ -47,10 +44,10 @@ namespace GFGGame
         public static CustomSuitData CreateDefaultSuitData(int index)
         {
             CustomSuitData suitSavedData = new CustomSuitData(index);
-            suitSavedData.equipDatas = new List<int> { ConstItemID.DEFULT_FA_XING, ConstItemID.DEFULT_LIAN_YI_QUN };
-            suitSavedData.bg = 180001;
-            suitSavedData.suitId = 0;
-            suitSavedData.pic = false;
+            suitSavedData.EquipData.equipDatas = new List<int> { ConstItemID.DEFULT_FA_XING, ConstItemID.DEFULT_LIAN_YI_QUN };
+            suitSavedData.EquipData.bgId = 180001;
+            suitSavedData.EquipData.suitId = 0;
+            suitSavedData.EquipData.isAction = false;
             return suitSavedData;
         }
 
@@ -65,7 +62,7 @@ namespace GFGGame
             {
                 currentIndex = index;
             }
-            CustomSuitSProxy.UpdateCustomSuit(index, EquipDataCache.cacher.equipDatas, EquipDataCache.cacher.bgId, EquipDataCache.cacher.suitId, EquipDataCache.cacher.picStatus).Coroutine();
+            CustomSuitSProxy.UpdateCustomSuit(index, EquipDataCache.cacher.GetEquiptDataClone()).Coroutine();
         }
 
         public static void InitServerData(List<CustomSuitProto> list)
@@ -77,12 +74,12 @@ namespace GFGGame
                 {
                     CustomSuitData suitSavedData = new CustomSuitData(suitProto.Pos);
                     _dataDic[suitProto.Pos] = suitSavedData;
-                    suitSavedData.bg = suitProto.BgId;
-                    suitSavedData.suitId = suitProto.SuitId;
-                    suitSavedData.pic = suitProto.Pic;
+                    suitSavedData.EquipData.bgId = suitProto.BgId;
+                    suitSavedData.EquipData.suitId = suitProto.SuitId;
+                    suitSavedData.EquipData.isAction = suitProto.Pic;
                     foreach (var equipId in suitProto.EquipIds)
                     {
-                        suitSavedData.equipDatas.Add(equipId);
+                        suitSavedData.EquipData.equipDatas.Add(equipId);
                     }
                 }
             }

+ 1 - 4
GameClient/Assets/Game/HotUpdate/Data/VO/CustomSuitData.cs

@@ -8,9 +8,6 @@ namespace GFGGame
             this.pos = index;
         }
         public int pos;
-        public int bg;
-        public int suitId;
-        public bool pic;
-        public List<int> equipDatas = new List<int>();
+        public EquipData EquipData = new EquipData();
     }
 }

+ 25 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/EquipData.cs

@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+
+namespace GFGGame
+{
+    public class EquipData
+    {
+        public int bgId;
+        public int suitId;
+        public bool isAction;
+        public List<int> equipDatas = new List<int>();
+
+        public EquipData Clone()
+        {
+            var equipData = new EquipData();
+            equipData.bgId = bgId;
+            equipData.suitId = bgId;
+            equipData.isAction = isAction;
+            foreach(var t in equipDatas)
+            {
+                equipData.equipDatas.Add(t);
+            }
+            return equipData;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/VO/EquipData.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: de6d230b9aa41db41b67f0bf1a8b7499
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 101 - 107
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -2,7 +2,6 @@ using System.Collections.Generic;
 using UnityEngine;
 using System;
 using System.Linq;
-using FairyGUI;
 using ET;
 
 namespace GFGGame
@@ -11,50 +10,77 @@ namespace GFGGame
     {
         private GameObject _sceneObj;
         private bool _needSetMask;
-        public void setSceneObj(GameObject sceneObj, bool needSetMask = false)
-        {
-            _sceneObj = sceneObj;
-            _needSetMask = needSetMask;
-        }
-        private int _bgId;
+
+        private EquipData _equipData = new EquipData();
+
         public int bgId
         {
             get
             {
-                return _bgId;
+                return _equipData.bgId;
             }
         }
-        private int _suitId;
         public int suitId
         {
             get
             {
-                return _suitId;
+                return _equipData.suitId;
             }
         }
 
-        private bool _isPic;
-        public bool picStatus
+        public bool IsAction
         {
             get
             {
-                return _isPic;
+                return _equipData.suitId > 0 && _equipData.isAction;
             }
         }
 
-        private List<int> _equipDatas = new List<int>();
+        public bool HasSuitPicRes
+        {
+            get
+            {
+                if (_equipData.suitId > 0)
+                {
+                    SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_equipData.suitId);
+                    if (suitCfg.picRes != null && suitCfg.picRes.Length > 0)
+                    {
+                        return true;
+                    }
+                }
+                return false;
+            }
+        }
         public List<int> equipDatas
         {
             get
             {
-                return _equipDatas.ToList();
+                return _equipData.equipDatas.ToList();
             }
             set
             {
-                _equipDatas = value;
+                if(value != null)
+                {
+                    _equipData.equipDatas.Clear();
+                    foreach(var t in value)
+                    {
+                        _equipData.equipDatas.Add(t);
+                    }
+                }
             }
         }
 
+        public void setSceneObj(GameObject sceneObj, bool needSetMask = false)
+        {
+            _sceneObj = sceneObj;
+            _needSetMask = needSetMask;
+        }
+
+        public EquipData GetEquiptDataClone()
+        {
+            return _equipData.Clone();
+        }
+
         public void Dispose()
         {
             _sceneObj = null;
@@ -62,25 +88,25 @@ namespace GFGGame
 
         private void Add(int value)
         {
-            if (!_equipDatas.Contains(value))
+            if (!_equipData.equipDatas.Contains(value))
             {
-                _equipDatas.Add(value);
+                _equipData.equipDatas.Add(value);
                 DressUpUtil.AddItem(value, _sceneObj, _needSetMask);
                 FightDataManager.Instance.score += ItemDataManager.GetItemAdditionScore(value, InstanceZonesDataManager.currentScoreType, InstanceZonesDataManager.currentFightTags);
             }
             int dressSuitId = CheckCurDressIsSuit();
-            if (dressSuitId > 0) _suitId = dressSuitId;
+            if (dressSuitId > 0) _equipData.suitId = dressSuitId;
         }
 
         private void Remove(int value)
         {
-            if (_equipDatas == null)
+            if (_equipData.equipDatas == null)
             {
                 return;
             }
-            if (_equipDatas.Contains(value))
+            if (_equipData.equipDatas.Contains(value))
             {
-                _equipDatas.Remove(value);
+                _equipData.equipDatas.Remove(value);
                 DressUpUtil.RemoveItem(value, _sceneObj);
                 FightDataManager.Instance.score -= ItemDataManager.GetItemAdditionScore(value, InstanceZonesDataManager.currentScoreType, InstanceZonesDataManager.currentFightTags);
             }
@@ -88,23 +114,23 @@ namespace GFGGame
         //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
         public int CheckCurDressIsSuit()
         {
-            if (_suitId > 0) return _suitId;
+            if (_equipData.suitId > 0) return _equipData.suitId;
 
-            //  var equipDatas = _equipDatas;
+            //  var equipDatas = EquipData.equipDatas;
             int dressSuitId = 0;
             List<int> equipDatas = new List<int>();
-            for (int i = 0; i < _equipDatas.Count; i++)
+            for (int i = 0; i < _equipData.equipDatas.Count; i++)
             {
-                if (DressUpMenuItemDataManager.CheckIsSceneType(_equipDatas[i])) continue;
-                if (_equipDatas[i] != ConstItemID.DEFULT_FA_XING && _equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && _equipDatas[i] != ConstItemID.DEFULT_NEI_DA && _equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
+                if (DressUpMenuItemDataManager.CheckIsSceneType(_equipData.equipDatas[i])) continue;
+                if (_equipData.equipDatas[i] != ConstItemID.DEFULT_FA_XING && _equipData.equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && _equipData.equipDatas[i] != ConstItemID.DEFULT_NEI_DA && _equipData.equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
                 {
-                    int suitId = SuitCfgManager.Instance.GetItemSuitId(_equipDatas[i]);
+                    int suitId = SuitCfgManager.Instance.GetItemSuitId(_equipData.equipDatas[i]);
                     if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
 
                     if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
                     dressSuitId = suitId;
 
-                    equipDatas.Add(_equipDatas[i]);
+                    equipDatas.Add(_equipData.equipDatas[i]);
                 }
             }
             if (dressSuitId == 0) return dressSuitId;
@@ -124,7 +150,7 @@ namespace GFGGame
         /// <returns></returns>
         public bool CheckDressUpItemIsOn(int id)
         {
-            if (id == _bgId)
+            if (id == _equipData.bgId)
             {
                 return true;
             }
@@ -136,7 +162,7 @@ namespace GFGGame
             //         return true;
             //     }
             // }
-            return _equipDatas.Contains(id);
+            return _equipData.equipDatas.Contains(id);
         }
 
         /// <summary>
@@ -168,8 +194,8 @@ namespace GFGGame
             int subType = ItemUtilCS.GetItemSubType(value);
             if (subType == ConstDressUpItemType.BEI_JING)
             {
-                _bgId = value;
-                DressUpUtil.AddItem(_bgId, _sceneObj, _needSetMask);
+                _equipData.bgId = value;
+                DressUpUtil.AddItem(_equipData.bgId, _sceneObj, _needSetMask);
             }
             else
             {
@@ -199,9 +225,9 @@ namespace GFGGame
         {
             int count = 0;
             int firstTeshuId = 0;
-            for (int i = 0; i < _equipDatas.Count; i++)
+            for (int i = 0; i < _equipData.equipDatas.Count; i++)
             {
-                int itemID = (int)_equipDatas[i];
+                int itemID = (int)_equipData.equipDatas[i];
                 int subType = ItemUtilCS.GetItemSubType(itemID);
                 if (subType == type
                     || (type == ConstDressUpItemType.LIAN_YI_QUN && (subType == ConstDressUpItemType.SHANG_YI || subType == ConstDressUpItemType.XIA_ZHUANG || subType == ConstDressUpItemType.NEI_DA))
@@ -230,7 +256,7 @@ namespace GFGGame
 
         private void checkDefaultItem()
         {
-            if (!IsSuitPic)
+            if (!IsAction)
             {
                 //检查默认资源
                 //是否有头发
@@ -247,9 +273,9 @@ namespace GFGGame
                 bool hasNeiDaDefault = false;
                 //是否有默认下装
                 bool hasXiaZhuangDefault = false;
-                for (int i = 0; i < _equipDatas.Count; i++)
+                for (int i = 0; i < _equipData.equipDatas.Count; i++)
                 {
-                    int itemID = (int)_equipDatas[i];
+                    int itemID = (int)_equipData.equipDatas[i];
                     int subType = ItemUtilCS.GetItemSubType(itemID);
                     if (subType == (int)ConstDressUpItemType.FA_XING)
                     {
@@ -307,11 +333,11 @@ namespace GFGGame
                 }
             }
         }
-        private void UpdatePicAction()
+        private void UpdateBody()
         {
-            if (IsSuitPic)
+            if (IsAction)
             {
-                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_suitId);
+                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_equipData.suitId);
                 var hasAniRes = !string.IsNullOrEmpty(suitCfg.aniRes);
                 var res = hasAniRes ? suitCfg.aniRes : suitCfg.picRes;
                 DressUpUtil.UpdateBody(res, _sceneObj, hasAniRes, suitCfg.effRes);
@@ -324,8 +350,8 @@ namespace GFGGame
 
         public void TakeOffAll(bool checkDefault = true)
         {
-            _suitId = 0;
-            _isPic = false;
+            _equipData.suitId = 0;
+            _equipData.isAction = false;
             // AddOrRemove(propID, false, true);
             var tempList = equipDatas;
             foreach (int itemID in tempList)
@@ -335,11 +361,11 @@ namespace GFGGame
             if (checkDefault)
             {
                 checkDefaultItem();
-                UpdatePicAction();
+                UpdateBody();
             }
             RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));
             FightDataManager.Instance.score = roleLevelCfg.baseScore;
-            foreach (int itemId in _equipDatas)
+            foreach (int itemId in _equipData.equipDatas)
             {
                 FightDataManager.Instance.score += ItemDataManager.GetItemAdditionScore(itemId, InstanceZonesDataManager.currentScoreType, InstanceZonesDataManager.currentFightTags);
             }
@@ -351,9 +377,9 @@ namespace GFGGame
             {
                 return;
             }
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_suitId);
-            _isPic = !_isPic;
-            if (_isPic)
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_equipData.suitId);
+            _equipData.isAction = !_equipData.isAction;
+            if (IsAction)
             {
                 var tempList = equipDatas;
                 foreach (int itemID in tempList)
@@ -377,59 +403,27 @@ namespace GFGGame
                 }
             }
             checkDefaultItem();
-            UpdatePicAction();
+            UpdateBody();
         }
 
         public void TryCancelSuit(int itemID)
         {
-            if (_suitId > 0)
+            if (_equipData.suitId > 0)
             {
                 if (!DressUpMenuItemDataManager.CheckIsSceneType(itemID))
                 {
-                    if (_isPic)
+                    if (_equipData.isAction)
                     {
                         ChangeAction();
                     }
-                    _suitId = 0;
+                    _equipData.suitId = 0;
                 }
             }
         }
 
-        public bool IsSuitPic
-        {
-            get
-            {
-                return _suitId > 0 && _isPic;
-            }
-        }
-
-        public bool HasSuitPicRes
-        {
-            get
-            {
-                if (_suitId > 0)
-                {
-                    SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_suitId);
-                    if (suitCfg.picRes != null && suitCfg.picRes.Length > 0)
-                    {
-                        return true;
-                    }
-                }
-                return false;
-            }
-        }
         public void UpdateRole()
         {
-            var tempEquipDatas = equipDatas.GetRange(0, equipDatas.Count);
-            TakeOffAll(false);
-            int count = tempEquipDatas.Count;
-            for (int i = 0; i < count; i++)
-            {
-                int itemID = (int)equipDatas[i];
-                AddOrRemove(itemID, false, true);
-            }
-            checkDefaultItem();
-            UpdatePicAction();
+            PutOnEquipData(GetEquiptDataClone());
         }
 
         /// <summary>
@@ -443,14 +437,14 @@ namespace GFGGame
         /// <param name="CheckOwn">是否只显示主角拥有的部件</param>
         public void PutOnSuitCfg(int id, bool checkPic, bool noSceneType, int[] excludeType = null, bool showOptional = true, bool CheckOwn = true)
         {
-            if (_suitId == id)
+            if (_equipData.suitId == id)
             {
                 return;
             }
             TakeOffAll(false);
-            _suitId = id;
-            _isPic = HasSuitPicRes && checkPic;
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_suitId);
+            _equipData.suitId = id;
+            _equipData.isAction = HasSuitPicRes && checkPic;
+            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_equipData.suitId);
             List<int> items = new List<int>(suitCfg.partsArr);
             if (showOptional)
             {
@@ -467,7 +461,7 @@ namespace GFGGame
                 {
                     bool isSceneType = DressUpMenuItemDataManager.CheckIsSceneType(itemID);
                     subType = ItemUtilCS.GetItemSubType(itemID);
-                    if (!_isPic || isSceneType)
+                    if (!_equipData.isAction || isSceneType)
                     {
                         if (!noSceneType || !isSceneType)
                         {
@@ -480,44 +474,44 @@ namespace GFGGame
                 }
             }
             checkDefaultItem();
-            UpdatePicAction();
+            UpdateBody();
         }
         
         public void PutOnSuitSavedByPos(int index, bool showBg = true)
         {
 
             CustomSuitData suitSavedData = CustomSuitDataManager.GetSuitList(index);
-            PutOnSuitSavedByData(suitSavedData, showBg);
+            PutOnEquipData(suitSavedData.EquipData, showBg);
         }
 
-        public void PutOnSuitSavedByData(CustomSuitData suitSavedData, bool showBg = true)
+        public void PutOnEquipData(EquipData equipData, bool showBg = true)
         {
             TakeOffAll(false);
-            if (showBg && suitSavedData.bg > 0)
+            if (showBg && equipData.bgId > 0)
             {
-                AddOrRemove(suitSavedData.bg, false);
+                AddOrRemove(equipData.bgId, false);
             }
-            foreach (int itemID in suitSavedData.equipDatas)
+            foreach (int itemID in equipData.equipDatas)
             {
                 AddOrRemove(itemID, false, true);
             }
-            _suitId = suitSavedData.suitId;
-            _isPic = suitSavedData.pic;
+            _equipData.suitId = equipData.suitId;
+            _equipData.isAction = equipData.isAction;
             checkDefaultItem();
-            UpdatePicAction();
+            UpdateBody();
 
         }
         public void PutOnSuitSavedInFight(int index)
         {
             TakeOffAll(false);
             CustomSuitData suitSavedData = CustomSuitDataManager.GetSuitList(index);
-            if (suitSavedData.suitId > 0)
+            if (suitSavedData.EquipData.suitId > 0)
             {
-                PutOnSuitCfg(suitSavedData.suitId, false, true);
+                PutOnSuitCfg(suitSavedData.EquipData.suitId, false, true);
             }
             else
             {
-                foreach (int itemID in suitSavedData.equipDatas)
+                foreach (int itemID in suitSavedData.EquipData.equipDatas)
                 {
                     if (!DressUpMenuItemDataManager.CheckIsSceneType(itemID))
                     {
@@ -537,19 +531,19 @@ namespace GFGGame
         {
             TakeOffAll(false);
             CustomSuitData suitSavedData = CustomSuitDataManager.CreateDefaultSuitData(0);
-            foreach (int itemID in suitSavedData.equipDatas)
+            foreach (int itemID in suitSavedData.EquipData.equipDatas)
             {
                 AddOrRemove(itemID, false, true);
             }
             if (withBg)
             {
-                if (suitSavedData.bg > 0)
+                if (suitSavedData.EquipData.bgId > 0)
                 {
-                    AddOrRemove(suitSavedData.bg, false);
+                    AddOrRemove(suitSavedData.EquipData.bgId, false);
                 }
             }
             checkDefaultItem();
-            UpdatePicAction();
+            UpdateBody();
         }
 
         public void PutOnRecommendItems()
@@ -662,7 +656,7 @@ namespace GFGGame
                 AddOrRemove(itemID, false, true);
             }
             checkDefaultItem();
-            UpdatePicAction();
+            UpdateBody();
         }
         private int CheckIndex(int _subType, List<int> recommendList)
         {

+ 1 - 4
GameClient/Assets/Game/HotUpdate/DressUp/EquipDataCache.cs

@@ -20,10 +20,7 @@ namespace GFGGame
         public static CustomSuitData GetCurSuitData(int index)
         {
             CustomSuitData suitSavedData = new CustomSuitData(index);
-            suitSavedData.equipDatas = EquipDataCache.cacher.equipDatas;
-            suitSavedData.bg = EquipDataCache.cacher.bgId;
-            suitSavedData.pic = EquipDataCache.cacher.picStatus;
-            suitSavedData.suitId = EquipDataCache.cacher.suitId;
+            suitSavedData.EquipData = EquipDataCache.cacher.GetEquiptDataClone();
             return suitSavedData;
         }
 

+ 3 - 7
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -1,10 +1,7 @@
 using UnityEngine;
-using System.Collections;
 using System;
-using UnityEditor;
 using FairyGUI;
 using System.Collections.Generic;
-using System.Linq;
 
 namespace GFGGame
 {
@@ -42,7 +39,7 @@ namespace GFGGame
             //角色
             CustomSuitData suitSavedData = CustomSuitDataManager.GetCurrentSuitList();
             EquipDataCache.cacher.setSceneObj(sceneObj);
-            EquipDataCache.cacher.PutOnSuitSavedByData(suitSavedData, false);
+            EquipDataCache.cacher.PutOnEquipData(suitSavedData.EquipData, false);
         }
 
 
@@ -172,7 +169,7 @@ namespace GFGGame
         public static void UpdatePhotographBody(List<int> equipDatas, GameObject sceneObj, GameObject parentObj)
         {
             SceneController.UpdateRole(equipDatas, sceneObj, false, null, false, parentObj);
-            if (EquipDataCache.cacher.IsSuitPic && EquipDataCache.cacher.suitId > 0)
+            if (EquipDataCache.cacher.IsAction && EquipDataCache.cacher.suitId > 0)
             {
                 SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(EquipDataCache.cacher.suitId);
                 DressUpUtil.UpdateBody(suitCfg.picRes, sceneObj, false, null, false, parentObj);
@@ -239,6 +236,7 @@ namespace GFGGame
             polygonCollider2D.isTrigger = true;
 
         }
+
         //移除指定GameObject的BoxCollider2D
         public static void DeleteBoxCollider2DFromGameObject(GameObject gameObject)
         {
@@ -249,8 +247,6 @@ namespace GFGGame
             }
         }
 
-
-
         //传入父物体,返回体碰撞盒大小
         public static Vector2 GetGameObjectSize(GameObject parentObj)
         {

+ 6 - 6
GameClient/Assets/Game/HotUpdate/ServerProxy/CustomSuitSProxy.cs

@@ -9,14 +9,14 @@ namespace GFGGame
 {
     public class CustomSuitSProxy
     {
-        public static async ETTask UpdateCustomSuit(int index, List<int> arrayList, int bgID = 0, int suitId = 0, bool pic = false)
+        public static async ETTask UpdateCustomSuit(int index, EquipData equipData)
         {
             CustomSuitProto suitProto = new CustomSuitProto();
             suitProto.Pos = index;
-            suitProto.BgId = bgID;
-            suitProto.SuitId = suitId;
-            suitProto.Pic = pic;
-            foreach (var equipId in arrayList)
+            suitProto.BgId = equipData.bgId;
+            suitProto.SuitId = equipData.suitId;
+            suitProto.Pic = equipData.isAction;
+            foreach (var equipId in equipData.equipDatas)
             {
                 suitProto.EquipIds.Add(equipId);
             }
@@ -28,7 +28,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-                    CustomSuitDataManager.SaveSuit(index, arrayList, bgID, suitId, pic);
+                    CustomSuitDataManager.SaveSuit(index, equipData);
                     PromptController.Instance.ShowFloatTextPrompt("保存成功", MessageType.SUCCESS);
 
                 }

+ 4 - 4
GameClient/Assets/Game/HotUpdate/ServerProxy/RoleInfoSProxy.cs

@@ -68,10 +68,10 @@ namespace GFGGame
                     if (response.CustomSuit != null)
                     {
                         roleInfoDetail.customSuitData = new CustomSuitData(response.CustomSuit.Pos);
-                        roleInfoDetail.customSuitData.bg = response.CustomSuit.BgId;
-                        roleInfoDetail.customSuitData.suitId = response.CustomSuit.SuitId;
-                        roleInfoDetail.customSuitData.equipDatas = response.CustomSuit.EquipIds;
-                        roleInfoDetail.customSuitData.pic = response.CustomSuit.Pic;
+                        roleInfoDetail.customSuitData.EquipData.bgId = response.CustomSuit.BgId;
+                        roleInfoDetail.customSuitData.EquipData.suitId = response.CustomSuit.SuitId;
+                        roleInfoDetail.customSuitData.EquipData.equipDatas = response.CustomSuit.EquipIds;
+                        roleInfoDetail.customSuitData.EquipData.isAction = response.CustomSuit.Pic;
                     }
 
                     return roleInfoDetail;

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -425,8 +425,8 @@ namespace GFGGame
         {
             int _suitId = EquipDataCache.cacher.CheckCurDressIsSuit();
             bool isNoSuit = _fightCfg.needSuitId > 0 && _suitId != _fightCfg.needSuitId;//需要套装但未穿套装
-
-            bool isNoItem = _fightCfg.needItemId > 0 && (_suitId <= 0 && EquipDataCache.cacher.equipDatas.IndexOf(_fightCfg.needItemId) < 0 || _suitId > 0 && Array.IndexOf(SuitCfgArray.Instance.GetCfg(_suitId).partsArr, _fightCfg.needItemId) < 0);
+            
+            bool isNoItem = _fightCfg.needItemId > 0 && (_suitId <= 0 && !EquipDataCache.cacher.CheckDressUpItemIsOn(_fightCfg.needItemId) || _suitId > 0 && Array.IndexOf(SuitCfgArray.Instance.GetCfg(_suitId).partsArr, _fightCfg.needItemId) < 0);
 
             if (isNoSuit || isNoItem)
             {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -186,7 +186,7 @@ namespace GFGGame
         {
             if (_stepIndex - 1 < 0) return;
             _stepIndex--;
-            EquipDataCache.cacher.PutOnSuitSavedByData(_dressMemory[_stepIndex]);
+            EquipDataCache.cacher.PutOnEquipData(_dressMemory[_stepIndex].EquipData);
             _ui.m_comboBox.selectedIndex = _dressMemory[_stepIndex].pos;
             UpdateStepBtn();
         }
@@ -194,7 +194,7 @@ namespace GFGGame
         {
             if (_stepIndex + 1 >= MAX_MEMORY_STEP) return;
             _stepIndex++;
-            EquipDataCache.cacher.PutOnSuitSavedByData(_dressMemory[_stepIndex]);
+            EquipDataCache.cacher.PutOnEquipData(_dressMemory[_stepIndex].EquipData);
             _ui.m_comboBox.selectedIndex = _dressMemory[_stepIndex].pos;
             UpdateStepBtn();
 

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/Friend/FriendView.cs

@@ -74,7 +74,7 @@ namespace GFGGame
                 CustomSuitData customSuit = CustomSuitDataManager.GetSuitList(CustomSuitDataManager.currentIndex);
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
                 _dressUpObjDataCache.setSceneObj(_sceneObject);
-                _dressUpObjDataCache.AddOrRemove(customSuit.bg, true);
+                _dressUpObjDataCache.AddOrRemove(customSuit.EquipData.bgId, true);
             }
             FriendDataManager.Instance.UpdateFriendList(true);
             _ui.m_list.numItems = FriendDataManager.Instance.FriendDatas.Count;
@@ -277,7 +277,7 @@ namespace GFGGame
 
             if (suitSavedData != null)
             {
-                _dressUpObjDataCache.PutOnSuitSavedByData(suitSavedData);
+                _dressUpObjDataCache.PutOnEquipData(suitSavedData.EquipData);
                 _ui.m_txtName.text = string.Format("我的套装{0}", NumberUtil.GetChiniseNumberText(suitSavedData.pos + 1));
 
             }

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs

@@ -47,7 +47,8 @@ namespace GFGGame
             {
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
-            SceneController.UpdateRole(EquipDataCache.cacher.equipDatas, _sceneObject);
+            EquipDataCache.cacher.setSceneObj(_sceneObject);
+            EquipDataCache.cacher.UpdateRole();
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
             if (!string.IsNullOrEmpty(fightCfg.music))

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs

@@ -262,7 +262,8 @@ namespace GFGGame
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
 
-            SceneController.UpdateRole(EquipDataCache.cacher.equipDatas, _sceneObject);
+            EquipDataCache.cacher.setSceneObj(_sceneObject);
+            EquipDataCache.cacher.UpdateRole();
             _levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID);
             SceneController.UpdateFightTarget(fightCfg.targetRes, _sceneObject);

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetView.cs

@@ -48,7 +48,8 @@ namespace GFGGame
             {
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
-            SceneController.UpdateRole(EquipDataCache.cacher.equipDatas, _sceneObject, true);
+            EquipDataCache.cacher.setSceneObj(_sceneObject, true);
+            EquipDataCache.cacher.UpdateRole();
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
             SceneController.UpdateFightTarget(fightCfg.targetRes, _sceneObject);

+ 0 - 20
GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs

@@ -19,26 +19,12 @@ namespace GFGGame
     public class StroyFightResultView : BaseView
     {
         private UI_StoryFightResultUI _ui;
-        private GameObject _sceneObject;
-        private GameObject _scenePrefab;
 
-        private GameObject _gameObject;
-        private GameObject _gameObject1;
-        private GoWrapper _wrapper;
-        private GoWrapper _wrapper1;
         private StoryLevelCfg _levelCfg;
         private StoryFightResultData _resultData;
 
         public override void Dispose()
         {
-            SceneController.DestroyObjectFromView(_gameObject, _wrapper);
-            SceneController.DestroyObjectFromView(_gameObject1, _wrapper1);
-
-            if (_sceneObject != null)
-            {
-                GameObject.Destroy(_sceneObject);
-                _sceneObject = null;
-            }
 
             if (_ui != null)
             {
@@ -56,7 +42,6 @@ namespace GFGGame
             viewCom = _ui.target;
             isfullScreen = true;
 
-            _scenePrefab = GFGAsset.Load<GameObject>(ResPathUtil.GetPrefabPath("SceneFightResult"));
         }
 
         protected override void OnInit()
@@ -147,11 +132,6 @@ namespace GFGGame
             base.OnHide();
             InstanceZonesDataManager.isResultFighting = false;
             // Timers.inst.Remove(AddExp);
-            if (_sceneObject != null)
-            {
-                GameObject.Destroy(_sceneObject);
-                _sceneObject = null;
-            }
             MusicManager.Instance.Play(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));
             _ui.m_comResult.target.height = 0;
             _ui.m_comExpBar.target.alpha = 0;

+ 0 - 186
GameClient/Assets/ResIn/Prefab/SceneFightResult.prefab

@@ -1,186 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &8934048990313003903
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 8934048990313003902}
-  - component: {fileID: 8934048990313003901}
-  m_Layer: 0
-  m_Name: Bg
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &8934048990313003902
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8934048990313003903}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 8934048990737965464}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &8934048990313003901
-SpriteRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8934048990313003903}
-  m_Enabled: 1
-  m_CastShadows: 0
-  m_ReceiveShadows: 0
-  m_DynamicOccludee: 1
-  m_MotionVectors: 1
-  m_LightProbeUsage: 1
-  m_ReflectionProbeUsage: 1
-  m_RayTracingMode: 0
-  m_RayTraceProcedural: 0
-  m_RenderingLayerMask: 1
-  m_RendererPriority: 0
-  m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
-  m_StaticBatchInfo:
-    firstSubMesh: 0
-    subMeshCount: 0
-  m_StaticBatchRoot: {fileID: 0}
-  m_ProbeAnchor: {fileID: 0}
-  m_LightProbeVolumeOverride: {fileID: 0}
-  m_ScaleInLightmap: 1
-  m_ReceiveGI: 1
-  m_PreserveUVs: 0
-  m_IgnoreNormalsForChartDetection: 0
-  m_ImportantGI: 0
-  m_StitchLightmapSeams: 1
-  m_SelectedEditorRenderState: 0
-  m_MinimumChartSize: 4
-  m_AutoUVMaxDistance: 0.5
-  m_AutoUVMaxAngle: 89
-  m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
-  m_SortingOrder: -999
-  m_Sprite: {fileID: 21300000, guid: 859afd0190d7e284f8a4dfffbf313f68, type: 3}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_FlipX: 0
-  m_FlipY: 0
-  m_DrawMode: 0
-  m_Size: {x: 12, y: 24}
-  m_AdaptiveModeThreshold: 0.5
-  m_SpriteTileMode: 0
-  m_WasSpriteAssigned: 1
-  m_MaskInteraction: 0
-  m_SpriteSortPoint: 0
---- !u!1 &8934048990737965465
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 8934048990737965464}
-  m_Layer: 0
-  m_Name: SceneFightResult
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &8934048990737965464
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8934048990737965465}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 8934048990313003902}
-  - {fileID: 3768987550495608174}
-  m_Father: {fileID: 0}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1001 &4837441816534019552
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 8934048990737965464}
-    m_Modifications:
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_RootOrder
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalScale.x
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalScale.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0.22
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227663, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_Name
-      value: Role
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
---- !u!4 &3768987550495608174 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-  m_PrefabInstance: {fileID: 4837441816534019552}
-  m_PrefabAsset: {fileID: 0}

+ 0 - 7
GameClient/Assets/ResIn/Prefab/SceneFightResult.prefab.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: e7c3284f76bcf1a468d5fc71d0184479
-PrefabImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: