瀏覽代碼

换装部件加层

zhaoyang 3 年之前
父節點
當前提交
1e8dcbfcfe

+ 8 - 8
GameClient/Assets/Editor/Excel/CodeBuilder.cs

@@ -131,8 +131,8 @@ namespace GFGEditor
             configArrayStr = configArrayStr.Replace("{allFunction}", FunctionAllStr);
             configArrayStr = configArrayStr.Replace("{allFunction}", FunctionAllStr);
             //if (needAll)
             //if (needAll)
             //{
             //{
-                configArrayStr = configArrayStr.Replace("{editorConditionStart}", "");
-                configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "");
+            configArrayStr = configArrayStr.Replace("{editorConditionStart}", "");
+            configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "");
             //}
             //}
             //else
             //else
             //{
             //{
@@ -271,7 +271,7 @@ namespace GFGEditor
             var keyValue = excelRange[row, 1].Text.Trim();
             var keyValue = excelRange[row, 1].Text.Trim();
             foreach (var i in _indexs)
             foreach (var i in _indexs)
             {
             {
-                var fieldName = _names[i-1];
+                var fieldName = _names[i - 1];
                 var value = excelRange[row, i].Text.Trim();
                 var value = excelRange[row, i].Text.Trim();
                 if (configArrayName == nameof(ItemTypeCfgArray))
                 if (configArrayName == nameof(ItemTypeCfgArray))
                 {
                 {
@@ -329,11 +329,11 @@ namespace GFGEditor
                     }
                     }
                 }
                 }
             }
             }
-            else if (fieldName == "resLayer1" || fieldName == "resLayer2")
-            {
-                value = value.Replace('n', '1');
-                value = value.Replace('t', '2');
-            }
+            // else if (fieldName == "resLayer1" || fieldName == "resLayer2")
+            // {
+            //     value = value.Replace('n', '1');
+            //     value = value.Replace('t', '2');
+            // }
         }
         }
 
 
         private static void CreateParamsString(List<string> keyNames, List<string> keyTypes, out string paramStr, out string colNames, out string colValues)
         private static void CreateParamsString(List<string> keyNames, List<string> keyTypes, out string paramStr, out string colNames, out string colValues)

+ 45 - 45
GameClient/Assets/Editor/Excel/ExcelChecker.cs

@@ -31,10 +31,10 @@ namespace GFGEditor
         {
         {
             LuckyBoxCfgArray cfgArray = LuckyBoxCfgArray.Instance;
             LuckyBoxCfgArray cfgArray = LuckyBoxCfgArray.Instance;
             LuckyBoxCfg[] dataArray = cfgArray.dataArray;
             LuckyBoxCfg[] dataArray = cfgArray.dataArray;
-            foreach(LuckyBoxCfg boxCfg in dataArray)
+            foreach (LuckyBoxCfg boxCfg in dataArray)
             {
             {
                 CheckItemIdExist(boxCfg.costID, "抽奖LuckyBoxCfg.costID");
                 CheckItemIdExist(boxCfg.costID, "抽奖LuckyBoxCfg.costID");
-                foreach(int valueInt in boxCfg.bonusShowArr)
+                foreach (int valueInt in boxCfg.bonusShowArr)
                 {
                 {
                     CheckBonusExist(valueInt, "抽奖LuckyBoxCfg.bonusShow");
                     CheckBonusExist(valueInt, "抽奖LuckyBoxCfg.bonusShow");
                 }
                 }
@@ -45,9 +45,9 @@ namespace GFGEditor
         {
         {
             BonusListCfgArray cfgArray = BonusListCfgArray.Instance;
             BonusListCfgArray cfgArray = BonusListCfgArray.Instance;
             BonusListCfg[] dataArray = cfgArray.dataArray;
             BonusListCfg[] dataArray = cfgArray.dataArray;
-            foreach(BonusListCfg cfg in dataArray)
+            foreach (BonusListCfg cfg in dataArray)
             {
             {
-                foreach(int[] values in cfg.bonusListArr)
+                foreach (int[] values in cfg.bonusListArr)
                 {
                 {
                     CheckItemIdExist(values[0], "抽奖BonusListCfg.bonusList");
                     CheckItemIdExist(values[0], "抽奖BonusListCfg.bonusList");
                 }
                 }
@@ -58,9 +58,9 @@ namespace GFGEditor
         {
         {
             DropOutCfgArray cfgArray = DropOutCfgArray.Instance;
             DropOutCfgArray cfgArray = DropOutCfgArray.Instance;
             DropOutCfg[] dataArray = cfgArray.dataArray;
             DropOutCfg[] dataArray = cfgArray.dataArray;
-            foreach(DropOutCfg cfg in dataArray)
+            foreach (DropOutCfg cfg in dataArray)
             {
             {
-                if(cfg.item >= 10000000)//掉落id
+                if (cfg.item >= 10000000)//掉落id
                 {
                 {
                     CheckDropOutExist(cfg.item, "掉落DropOutCfg.item");
                     CheckDropOutExist(cfg.item, "掉落DropOutCfg.item");
                 }
                 }
@@ -75,7 +75,7 @@ namespace GFGEditor
         {
         {
             StoryChapterCfgArray cfgArray = StoryChapterCfgArray.Instance;
             StoryChapterCfgArray cfgArray = StoryChapterCfgArray.Instance;
             StoryChapterCfg[] dataArray = cfgArray.dataArray;
             StoryChapterCfg[] dataArray = cfgArray.dataArray;
-            foreach(StoryChapterCfg cfg in dataArray)
+            foreach (StoryChapterCfg cfg in dataArray)
             {
             {
                 CheckItemsExist(cfg.bonus1Arr, "剧情副本StoryChapterCfg.bonus1");
                 CheckItemsExist(cfg.bonus1Arr, "剧情副本StoryChapterCfg.bonus1");
                 CheckItemsExist(cfg.bonus2Arr, "剧情副本StoryChapterCfg.bonus2");
                 CheckItemsExist(cfg.bonus2Arr, "剧情副本StoryChapterCfg.bonus2");
@@ -87,7 +87,7 @@ namespace GFGEditor
         {
         {
             StoryLevelCfgArray cfgArray = StoryLevelCfgArray.Instance;
             StoryLevelCfgArray cfgArray = StoryLevelCfgArray.Instance;
             StoryLevelCfg[] dataArray = cfgArray.dataArray;
             StoryLevelCfg[] dataArray = cfgArray.dataArray;
-            foreach(StoryLevelCfg cfg in dataArray)
+            foreach (StoryLevelCfg cfg in dataArray)
             {
             {
                 CheckItemsExist(cfg.bonusOnceArr, "剧情副本StoryLevelCfg.bonusOnce");
                 CheckItemsExist(cfg.bonusOnceArr, "剧情副本StoryLevelCfg.bonusOnce");
                 CheckStoryDialogExist(cfg.storyStartID, "剧情副本StoryLevelCfg.storyStartID");
                 CheckStoryDialogExist(cfg.storyStartID, "剧情副本StoryLevelCfg.storyStartID");
@@ -99,18 +99,18 @@ namespace GFGEditor
         {
         {
             StoryFightCfgArray cfgArray = StoryFightCfgArray.Instance;
             StoryFightCfgArray cfgArray = StoryFightCfgArray.Instance;
             StoryFightCfg[] dataArray = cfgArray.dataArray;
             StoryFightCfg[] dataArray = cfgArray.dataArray;
-            foreach(StoryFightCfg cfg in dataArray)
+            foreach (StoryFightCfg cfg in dataArray)
             {
             {
-                if(cfg.needSuitId > 0)
+                if (cfg.needSuitId > 0)
                 {
                 {
                     CheckSuitExist(cfg.needSuitId, "剧情副本StoryFightCfg.needSuitId");
                     CheckSuitExist(cfg.needSuitId, "剧情副本StoryFightCfg.needSuitId");
                 }
                 }
-                else if(cfg.needItemId > 0)
+                else if (cfg.needItemId > 0)
                 {
                 {
                     CheckItemIdExist(cfg.needItemId, "剧情副本StoryFightCfg.needItemId");
                     CheckItemIdExist(cfg.needItemId, "剧情副本StoryFightCfg.needItemId");
                 }
                 }
                 CheckItemsExist(cfg.bonusBaseArr, "剧情副本StoryFightCfg.bonusBase");
                 CheckItemsExist(cfg.bonusBaseArr, "剧情副本StoryFightCfg.bonusBase");
-                foreach(int value in cfg.bonusRandomArr)
+                foreach (int value in cfg.bonusRandomArr)
                 {
                 {
                     CheckDropOutExist(value, "剧情副本StoryFightCfg.bonusRandom");
                     CheckDropOutExist(value, "剧情副本StoryFightCfg.bonusRandom");
                 }
                 }
@@ -121,7 +121,7 @@ namespace GFGEditor
         {
         {
             ShopCfgClothingArray cfgArray = ShopCfgClothingArray.Instance;
             ShopCfgClothingArray cfgArray = ShopCfgClothingArray.Instance;
             ShopCfg[] dataArray = cfgArray.dataArray;
             ShopCfg[] dataArray = cfgArray.dataArray;
-            foreach(ShopCfg cfg in dataArray)
+            foreach (ShopCfg cfg in dataArray)
             {
             {
                 CheckItemIdExist(cfg.itemID, "商城ClothingShopCfg.itemID");
                 CheckItemIdExist(cfg.itemID, "商城ClothingShopCfg.itemID");
                 CheckItemIdExist(cfg.costID, "商城ClothingShopCfg.costID");
                 CheckItemIdExist(cfg.costID, "商城ClothingShopCfg.costID");
@@ -132,7 +132,7 @@ namespace GFGEditor
         {
         {
             SuitCfgArray cfgArray = SuitCfgArray.Instance;
             SuitCfgArray cfgArray = SuitCfgArray.Instance;
             SuitCfg[] dataArray = cfgArray.dataArray;
             SuitCfg[] dataArray = cfgArray.dataArray;
-            foreach(SuitCfg suitCfg in dataArray)
+            foreach (SuitCfg suitCfg in dataArray)
             {
             {
                 CheckItemsExist(suitCfg.partsArr, "套装suitCfg.parts");
                 CheckItemsExist(suitCfg.partsArr, "套装suitCfg.parts");
                 CheckItemsExist(suitCfg.partsOptionalArr, "套装suitCfg.partsOptional");
                 CheckItemsExist(suitCfg.partsOptionalArr, "套装suitCfg.partsOptional");
@@ -143,14 +143,14 @@ namespace GFGEditor
         {
         {
             SuitGuideMenuCfgArray cfgArray = SuitGuideMenuCfgArray.Instance;
             SuitGuideMenuCfgArray cfgArray = SuitGuideMenuCfgArray.Instance;
             SuitGuideMenuCfg[] dataArray = cfgArray.dataArray;
             SuitGuideMenuCfg[] dataArray = cfgArray.dataArray;
-            foreach(SuitGuideMenuCfg cfg in dataArray)
+            foreach (SuitGuideMenuCfg cfg in dataArray)
             {
             {
-                if(cfg.suitIds.Length > 0)
+                if (cfg.suitIds.Length > 0)
                 {
                 {
                     string[] values = cfg.suitIds.Split(';');
                     string[] values = cfg.suitIds.Split(';');
-                    foreach(string value in values)
+                    foreach (string value in values)
                     {
                     {
-                        if(value.Length > 0)
+                        if (value.Length > 0)
                         {
                         {
                             int valueInt = int.Parse(value);
                             int valueInt = int.Parse(value);
                             CheckSuitExist(valueInt, "图鉴SuitGuideMenuCfg.suitIds");
                             CheckSuitExist(valueInt, "图鉴SuitGuideMenuCfg.suitIds");
@@ -175,11 +175,11 @@ namespace GFGEditor
         {
         {
             ItemCfgArray cfgArray = ItemCfgArray.Instance;
             ItemCfgArray cfgArray = ItemCfgArray.Instance;
             ItemCfg[] dataArray = cfgArray.dataArray;
             ItemCfg[] dataArray = cfgArray.dataArray;
-            foreach(ItemCfg cfg in dataArray)
+            foreach (ItemCfg cfg in dataArray)
             {
             {
-                if (cfg.resLayer1 == 0 && cfg.resLayer2 == 0 && ItemUtilCS.IsDressUpItem(cfg.id))
+                if (!string.IsNullOrEmpty(cfg.resLayer1) && !string.IsNullOrEmpty(cfg.resLayer2) && !string.IsNullOrEmpty(cfg.resLayer3) && ItemUtilCS.IsDressUpItem(cfg.id))
                 {
                 {
-                    ET.Log.Error (new Exception("物品" + cfg.id + "没有配置显示层"));
+                    ET.Log.Error(new Exception("物品" + cfg.id + "没有配置显示层"));
                 }
                 }
                 CheckClothingSyntheticCfgExist(cfg);
                 CheckClothingSyntheticCfgExist(cfg);
             }
             }
@@ -188,13 +188,13 @@ namespace GFGEditor
 
 
         private static void CheckItemIdExist(int id, string keyName)
         private static void CheckItemIdExist(int id, string keyName)
         {
         {
-            if(id > 0)
+            if (id > 0)
             {
             {
                 ItemCfgArray cfgArray = ItemCfgArray.Instance;
                 ItemCfgArray cfgArray = ItemCfgArray.Instance;
                 ItemCfg itemCfg = cfgArray.GetCfg(id);
                 ItemCfg itemCfg = cfgArray.GetCfg(id);
-                if(itemCfg == null)
+                if (itemCfg == null)
                 {
                 {
-                    Debug.LogErrorFormat("{0}配置的物品{1}不存在", new object[]{keyName, id} );
+                    Debug.LogErrorFormat("{0}配置的物品{1}不存在", new object[] { keyName, id });
                 }
                 }
             }
             }
         }
         }
@@ -202,9 +202,9 @@ namespace GFGEditor
         private static void CheckItemsExist(string itemsStr, string keyName)
         private static void CheckItemsExist(string itemsStr, string keyName)
         {
         {
             string[] itemInfos = itemsStr.Split(';');
             string[] itemInfos = itemsStr.Split(';');
-            foreach(string itemInfo in itemInfos)
+            foreach (string itemInfo in itemInfos)
             {
             {
-                if(itemInfo.Length > 0)
+                if (itemInfo.Length > 0)
                 {
                 {
                     string[] itemValues = itemInfo.Split('*');
                     string[] itemValues = itemInfo.Split('*');
                     CheckItemIdExist(int.Parse(itemValues[0]), keyName);
                     CheckItemIdExist(int.Parse(itemValues[0]), keyName);
@@ -232,34 +232,34 @@ namespace GFGEditor
         {
         {
             BonusListCfgArray cfgArray = BonusListCfgArray.Instance;
             BonusListCfgArray cfgArray = BonusListCfgArray.Instance;
             BonusListCfg cfg = cfgArray.GetCfg(id);
             BonusListCfg cfg = cfgArray.GetCfg(id);
-            if(cfg == null)
+            if (cfg == null)
             {
             {
-                Debug.LogErrorFormat("{0}配置的奖励{1}不存在", new object[]{keyName, id} );
+                Debug.LogErrorFormat("{0}配置的奖励{1}不存在", new object[] { keyName, id });
             }
             }
         }
         }
 
 
         private static void CheckStoryDialogExist(string id, string keyName)
         private static void CheckStoryDialogExist(string id, string keyName)
         {
         {
-            if(id.Length > 0)
+            if (id.Length > 0)
             {
             {
                 StoryDialogCfgArray cfgArray = StoryDialogCfgArray.Instance;
                 StoryDialogCfgArray cfgArray = StoryDialogCfgArray.Instance;
                 List<StoryDialogCfg> cfg = cfgArray.GetCfgs(id);
                 List<StoryDialogCfg> cfg = cfgArray.GetCfgs(id);
-                if(cfg == null && cfg.Count > 0)
+                if (cfg == null && cfg.Count > 0)
                 {
                 {
-                    Debug.LogErrorFormat("{0}配置的对话{1}不存在", new object[]{keyName, id} );
+                    Debug.LogErrorFormat("{0}配置的对话{1}不存在", new object[] { keyName, id });
                 }
                 }
             }
             }
         }
         }
 
 
         private static void CheckStoryFightExist(string id, string keyName)
         private static void CheckStoryFightExist(string id, string keyName)
         {
         {
-            if(id.Length > 0)
+            if (id.Length > 0)
             {
             {
                 StoryFightCfgArray cfgArray = StoryFightCfgArray.Instance;
                 StoryFightCfgArray cfgArray = StoryFightCfgArray.Instance;
                 StoryFightCfg cfg = cfgArray.GetCfg(id);
                 StoryFightCfg cfg = cfgArray.GetCfg(id);
-                if(cfg == null)
+                if (cfg == null)
                 {
                 {
-                    Debug.LogErrorFormat("{0}配置的战斗{1}不存在", new object[]{keyName, id} );
+                    Debug.LogErrorFormat("{0}配置的战斗{1}不存在", new object[] { keyName, id });
                 }
                 }
             }
             }
         }
         }
@@ -268,33 +268,33 @@ namespace GFGEditor
         {
         {
             var arr = DropOutCfgArray.Instance.GetCfgs(id);
             var arr = DropOutCfgArray.Instance.GetCfgs(id);
             List<DropOutCfg> dropOutCfgs = new List<DropOutCfg>(arr);
             List<DropOutCfg> dropOutCfgs = new List<DropOutCfg>(arr);
-            if(dropOutCfgs == null || dropOutCfgs.Count <= 0)
+            if (dropOutCfgs == null || dropOutCfgs.Count <= 0)
             {
             {
-                Debug.LogErrorFormat("{0}配置的掉落{1}不存在", new object[]{keyName, id} );
+                Debug.LogErrorFormat("{0}配置的掉落{1}不存在", new object[] { keyName, id });
             }
             }
         }
         }
 
 
         private static void CheckSuitExist(int id, string keyName)
         private static void CheckSuitExist(int id, string keyName)
         {
         {
-            if(id > 0)
+            if (id > 0)
             {
             {
                 SuitCfgArray cfgArray = SuitCfgArray.Instance;
                 SuitCfgArray cfgArray = SuitCfgArray.Instance;
                 SuitCfg cfg = cfgArray.GetCfg(id);
                 SuitCfg cfg = cfgArray.GetCfg(id);
-                if(cfg == null)
+                if (cfg == null)
                 {
                 {
-                    Debug.LogErrorFormat("{0}配置的套装{1}不存在", new object[]{keyName, id} );
+                    Debug.LogErrorFormat("{0}配置的套装{1}不存在", new object[] { keyName, id });
                 }
                 }
             }
             }
         }
         }
 
 
         private static void CheckClothingSyntheticCfgExist(ItemCfg itemCfg)
         private static void CheckClothingSyntheticCfgExist(ItemCfg itemCfg)
         {
         {
-            if(itemCfg.suitId > 0)
+            if (itemCfg.suitId > 0)
             {
             {
                 var suitCfg = SuitCfgArray.Instance.GetCfg(itemCfg.suitId);
                 var suitCfg = SuitCfgArray.Instance.GetCfg(itemCfg.suitId);
-                if(suitCfg != null && suitCfg.syntheticType > 0)
+                if (suitCfg != null && suitCfg.syntheticType > 0)
                 {
                 {
-                    if(itemCfg.syntheticCostID <= 0 || itemCfg.syntheticCostNum <= 0 || itemCfg.syntheticMateriarsArr.Length <= 0)
+                    if (itemCfg.syntheticCostID <= 0 || itemCfg.syntheticCostNum <= 0 || itemCfg.syntheticMateriarsArr.Length <= 0)
                     {
                     {
                         Debug.LogErrorFormat("服装{0}没有对应的合成消耗配置", new object[] { itemCfg.id });
                         Debug.LogErrorFormat("服装{0}没有对应的合成消耗配置", new object[] { itemCfg.id });
                     }
                     }
@@ -304,11 +304,11 @@ namespace GFGEditor
 
 
         private static void CheckStoryLevelCfgExist(int id, string keyName)
         private static void CheckStoryLevelCfgExist(int id, string keyName)
         {
         {
-            if(id > 0)
+            if (id > 0)
             {
             {
                 StoryLevelCfgArray cfgArray = StoryLevelCfgArray.Instance;
                 StoryLevelCfgArray cfgArray = StoryLevelCfgArray.Instance;
                 StoryLevelCfg cfg = cfgArray.GetCfg(id);
                 StoryLevelCfg cfg = cfgArray.GetCfg(id);
-                if(cfg == null)
+                if (cfg == null)
                 {
                 {
                     Debug.LogErrorFormat("{0}配置的关卡{1}不存在", new object[] { keyName, id });
                     Debug.LogErrorFormat("{0}配置的关卡{1}不存在", new object[] { keyName, id });
                 }
                 }
@@ -317,7 +317,7 @@ namespace GFGEditor
         private static void CheckCardStarCfg()
         private static void CheckCardStarCfg()
         {
         {
             CardStarCfgArray cfgArray = CardStarCfgArray.Instance;
             CardStarCfgArray cfgArray = CardStarCfgArray.Instance;
-           CardStarCfg [] dataArray = cfgArray.dataArray;
+            CardStarCfg[] dataArray = cfgArray.dataArray;
             foreach (CardStarCfg cfg in dataArray)
             foreach (CardStarCfg cfg in dataArray)
             {
             {
                 CheckItemsExist(cfg.materiarsArr, "卡牌CardStarCfg.materiars");
                 CheckItemsExist(cfg.materiarsArr, "卡牌CardStarCfg.materiars");

+ 66 - 28
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -17,7 +17,7 @@ namespace GFGGame
         private const string FORMAT_EFFECT_OBJ_NAME = "T{0}_eff";
         private const string FORMAT_EFFECT_OBJ_NAME = "T{0}_eff";
         private const string FORMAT_LAYER_RES_NAME_WITH_T = "{0}_t";
         private const string FORMAT_LAYER_RES_NAME_WITH_T = "{0}_t";
 
 
-        public static void AddItem(int itemID, GameObject sceneObj, bool needSetMask = false, bool showAni = true, GameObject parentObj = null, int resLayer = int.MinValue)
+        public static void AddItem(int itemID, GameObject sceneObj, bool needSetMask = false, bool showAni = true, GameObject parentObj = null, int resLayer = 0)
         {
         {
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
             if (itemCfg != null)
             if (itemCfg != null)
@@ -36,24 +36,47 @@ namespace GFGGame
                         parentObj = role.gameObject;
                         parentObj = role.gameObject;
                     }
                     }
                 }
                 }
-                // if (resLayer > int.MinValue)
-                // {
-                //     updateLayerRes(itemCfg, parentObj, resLayer, resLayer == 2, needSetMask, showAni);
-                // }
-                // else
-                // {
-                //普通层
-                if (itemCfg.resLayer1 > 0)
+                if (resLayer > 0)
                 {
                 {
-                    updateLayerRes(itemCfg, parentObj, 1, itemCfg.resLayer1 == 2, needSetMask, showAni);
+                    string layerName = "";
+                    switch (resLayer)
+                    {
+                        case 1:
+                            layerName = itemCfg.resLayer1;
+                            break;
+                        case 2:
+                            layerName = itemCfg.resLayer2;
+                            break;
+                        case 3:
+                            layerName = itemCfg.resLayer3;
+                            break;
+                    }
+                    if (!string.IsNullOrEmpty(layerName))
+                    {
+                        updateLayerRes(itemCfg, parentObj, resLayer, needSetMask, showAni);
+                    }
+                    // updateLayerRes(itemCfg, parentObj, resLayer, resLayer == 2, needSetMask, showAni);
                 }
                 }
-                //特殊层
-                if (itemCfg.resLayer2 > 0)
+                else
                 {
                 {
+                    //普通层
+                    if (!string.IsNullOrEmpty(itemCfg.resLayer1))
+                    {
+                        updateLayerRes(itemCfg, parentObj, 1, needSetMask, showAni);
+                    }
+                    //第二层
+                    if (!string.IsNullOrEmpty(itemCfg.resLayer2))
+                    {
+
+                        updateLayerRes(itemCfg, parentObj, 2, needSetMask, showAni);
+                    }
+                    //第三层
+                    if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+                    {
 
 
-                    updateLayerRes(itemCfg, parentObj, 2, itemCfg.resLayer2 == 2, needSetMask, showAni);
+                        updateLayerRes(itemCfg, parentObj, 3, needSetMask, showAni);
+                    }
                 }
                 }
-                // }
 
 
                 //特效
                 //特效
                 if (itemCfg.effLayer > 0)
                 if (itemCfg.effLayer > 0)
@@ -89,7 +112,7 @@ namespace GFGGame
                 string spritObjName;
                 string spritObjName;
                 string aniObjName;
                 string aniObjName;
                 //默认层
                 //默认层
-                if (itemCfg.resLayer1 > 0)
+                if (!string.IsNullOrEmpty(itemCfg.resLayer1))
                 {
                 {
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 1);
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 1);
                     TryClearSpriteObj(parentObj, spritObjName);
                     TryClearSpriteObj(parentObj, spritObjName);
@@ -97,13 +120,21 @@ namespace GFGGame
                     TryRemoveAnimationObj(parentObj, aniObjName);
                     TryRemoveAnimationObj(parentObj, aniObjName);
                 }
                 }
                 //特殊层
                 //特殊层
-                if (itemCfg.resLayer2 > 0)
+                if (!string.IsNullOrEmpty(itemCfg.resLayer2))
                 {
                 {
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 2);
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 2);
                     TryClearSpriteObj(parentObj, spritObjName);
                     TryClearSpriteObj(parentObj, spritObjName);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
                     TryRemoveAnimationObj(parentObj, aniObjName);
                     TryRemoveAnimationObj(parentObj, aniObjName);
                 }
                 }
+                //第三层
+                if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+                {
+                    spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 3);
+                    TryClearSpriteObj(parentObj, spritObjName);
+                    aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 3);
+                    TryRemoveAnimationObj(parentObj, aniObjName);
+                }
 
 
                 //特效
                 //特效
                 if (itemCfg.effLayer > 0)
                 if (itemCfg.effLayer > 0)
@@ -168,21 +199,28 @@ namespace GFGGame
             assetDisposer.resPath = resPath;
             assetDisposer.resPath = resPath;
         }
         }
 
 
-        private static void updateLayerRes(ItemCfg itemCfg, GameObject parentObj, int layerId, bool isT, bool needSetMask, bool showAni = true)
+        private static void updateLayerRes(ItemCfg itemCfg, GameObject parentObj, int layerId, bool needSetMask, bool showAni = true)
         {
         {
 
 
             ItemTypeCfg typeCfg = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType);
             ItemTypeCfg typeCfg = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType);
-            //string objName = string.Format(FORMAT_SPRITE_NAME, typeCfg.type, layerId);
+
             string res = itemCfg.res;
             string res = itemCfg.res;
             int sortingOrder = typeCfg.defaultLayer;
             int sortingOrder = typeCfg.defaultLayer;
-            if (layerId == 2)
-            {
-                sortingOrder = typeCfg.specialLayer;
-            }
-            if (isT)
+            switch (layerId)
             {
             {
-                res = string.Format(FORMAT_LAYER_RES_NAME_WITH_T, res);
+                case 1:
+                    res = itemCfg.resLayer1 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer1);
+                    break;
+                case 2:
+                    sortingOrder = typeCfg.specialLayer;
+                    res = itemCfg.resLayer2 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer2);
+                    break;
+                case 3:
+                    sortingOrder = typeCfg.thirdlLayer;
+                    res = itemCfg.resLayer3 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer3);
+                    break;
             }
             }
+
             //清理旧的
             //清理旧的
             var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
             var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
             TryClearSpriteObj(parentObj, spritObjName);
             TryClearSpriteObj(parentObj, spritObjName);
@@ -195,7 +233,7 @@ namespace GFGGame
                 AddAnimationObj(res, aniObjName, parentObj, sortingOrder);
                 AddAnimationObj(res, aniObjName, parentObj, sortingOrder);
                 Timers.inst.Add(0.03f, 1, (obj) =>
                 Timers.inst.Add(0.03f, 1, (obj) =>
                 {
                 {
-                    if(parentObj != null && parentObj.transform != null)
+                    if (parentObj != null && parentObj.transform != null)
                     {
                     {
                         Transform tf = parentObj.transform.Find(spritObjName);
                         Transform tf = parentObj.transform.Find(spritObjName);
                         if (tf != null && tf.gameObject != null && tf.gameObject.activeInHierarchy)
                         if (tf != null && tf.gameObject != null && tf.gameObject.activeInHierarchy)
@@ -224,14 +262,14 @@ namespace GFGGame
             string resPath = ResPathUtil.GetDressUpPath(res, ext);
             string resPath = ResPathUtil.GetDressUpPath(res, ext);
             SpriteRenderer spr = null;
             SpriteRenderer spr = null;
             var gameObj = parentObj.transform.Find(objName)?.gameObject;
             var gameObj = parentObj.transform.Find(objName)?.gameObject;
-            if(gameObj == null)
+            if (gameObj == null)
             {
             {
                 gameObj = new GameObject(objName);
                 gameObj = new GameObject(objName);
                 gameObj.transform.SetParent(parentObj.transform, false);
                 gameObj.transform.SetParent(parentObj.transform, false);
                 AddAssetReleaser(gameObj, resPath);
                 AddAssetReleaser(gameObj, resPath);
             }
             }
             spr = gameObj.GetComponent<SpriteRenderer>();
             spr = gameObj.GetComponent<SpriteRenderer>();
-            if(spr == null)
+            if (spr == null)
             {
             {
                 spr = gameObj.AddComponent<SpriteRenderer>();
                 spr = gameObj.AddComponent<SpriteRenderer>();
             }
             }
@@ -255,7 +293,7 @@ namespace GFGGame
 
 
         private static void TryClearSpriteObj(GameObject parentObj, string spritObjName)
         private static void TryClearSpriteObj(GameObject parentObj, string spritObjName)
         {
         {
-            if(parentObj == null)
+            if (parentObj == null)
             {
             {
                 return;
                 return;
             }
             }

+ 16 - 12
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -49,7 +49,7 @@ namespace GFGGame
 
 
         public static void UpdateRole(int[] equipDatas, GameObject sceneObj, bool needSetMask = false, int[] exceptTypes = null, bool showAni = true, GameObject parentObj = null, bool reset = true)
         public static void UpdateRole(int[] equipDatas, GameObject sceneObj, bool needSetMask = false, int[] exceptTypes = null, bool showAni = true, GameObject parentObj = null, bool reset = true)
         {
         {
-            if(reset)
+            if (reset)
             {
             {
                 Reset(sceneObj);
                 Reset(sceneObj);
             }
             }
@@ -196,17 +196,21 @@ namespace GFGGame
             parentGameObj.transform.SetParent(sceneObj.transform.Find("Scene"), false);
             parentGameObj.transform.SetParent(sceneObj.transform.Find("Scene"), false);
             DressUpUtil.AddItem(itemId, sceneObj, false, false, parentGameObj, resLayer);
             DressUpUtil.AddItem(itemId, sceneObj, false, false, parentGameObj, resLayer);
 
 
-            if (parentGameObj.transform.childCount > 1)
-            {
-                if (resLayer == itemCfg.resLayer1)
-                {
-                    GameObject.DestroyImmediate(parentGameObj.transform.GetChild(1).gameObject);
-                }
-                else if (resLayer == itemCfg.resLayer2)
-                {
-                    GameObject.DestroyImmediate(parentGameObj.transform.GetChild(0).gameObject);
-                }
-            }
+            // if (parentGameObj.transform.childCount > 1)
+            // {
+            //     if (resLayer == 1)
+            //     {
+            //         GameObject.DestroyImmediate(parentGameObj.transform.GetChild(1).gameObject);
+            //     }
+            //     else if (resLayer == 2)
+            //     {
+            //         GameObject.DestroyImmediate(parentGameObj.transform.GetChild(0).gameObject);
+            //     }
+            //     else if (resLayer == 3)
+            //     {
+
+            //     }
+            // }
 
 
             SceneController.SetBoxCollider2DToGameObject(parentGameObj.transform.GetChild(0).gameObject);
             SceneController.SetBoxCollider2DToGameObject(parentGameObj.transform.GetChild(0).gameObject);
         }
         }

+ 25 - 14
GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs

@@ -215,32 +215,43 @@ namespace GFGGame
 
 
         private void AddSceneItem(ItemCfg itemCfg, bool setLayer)
         private void AddSceneItem(ItemCfg itemCfg, bool setLayer)
         {
         {
-            Vector2 pos = Vector2.zero;
-            if (itemCfg.resLayer2 > 0)
+            Vector3 pos = Vector3.zero;
+            if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+            {
+                GameObject parentGameObj3 = new GameObject(string.Format("{0}_{1}", itemCfg.id, 3));
+                PhotographSceneManager.Instance.AddSceneItem(parentGameObj3, itemCfg, 3, setLayer);
+                if (setLayer)
+                {
+                    parentGameObj3.transform.localPosition = -parentGameObj3.transform.GetChild(0).localPosition;
+                    pos = parentGameObj3.transform.localPosition;
+                }
+            }
+            if (!string.IsNullOrEmpty(itemCfg.resLayer2))
             {
             {
                 GameObject parentGameObj2 = new GameObject(string.Format("{0}_{1}", itemCfg.id, 2));
                 GameObject parentGameObj2 = new GameObject(string.Format("{0}_{1}", itemCfg.id, 2));
-                PhotographSceneManager.Instance.AddSceneItem(parentGameObj2, itemCfg, itemCfg.resLayer2, setLayer);
+                PhotographSceneManager.Instance.AddSceneItem(parentGameObj2, itemCfg, 2, setLayer);
                 if (setLayer)
                 if (setLayer)
                 {
                 {
-                    parentGameObj2.transform.localPosition = -parentGameObj2.transform.GetChild(0).localPosition;
+                    parentGameObj2.transform.localPosition = pos == Vector3.zero ? -parentGameObj2.transform.GetChild(0).localPosition : pos;
+                    // parentGameObj2.transform.localPosition = -parentGameObj2.transform.GetChild(0).localPosition;
                     pos = parentGameObj2.transform.localPosition;
                     pos = parentGameObj2.transform.localPosition;
                 }
                 }
             }
             }
-            if (itemCfg.resLayer1 > 0)
+            if (!string.IsNullOrEmpty(itemCfg.resLayer1))
             {
             {
                 GameObject parentGameObj1 = new GameObject(string.Format("{0}_{1}", itemCfg.id, 1));
                 GameObject parentGameObj1 = new GameObject(string.Format("{0}_{1}", itemCfg.id, 1));
-                PhotographSceneManager.Instance.AddSceneItem(parentGameObj1, itemCfg, itemCfg.resLayer1, setLayer);
+                PhotographSceneManager.Instance.AddSceneItem(parentGameObj1, itemCfg, 1, setLayer);
 
 
                 if (setLayer)
                 if (setLayer)
                 {
                 {
-                    if (itemCfg.resLayer2 > 0)
-                    {
-                        parentGameObj1.transform.localPosition = pos;
-                    }
-                    else
-                    {
-                        parentGameObj1.transform.localPosition = -parentGameObj1.transform.GetChild(0).localPosition;
-                    }
+                    // if (!string.IsNullOrEmpty(itemCfg.resLayer2))
+                    // {
+                    //     parentGameObj1.transform.localPosition = pos;
+                    // }
+                    // else
+                    // {
+                    parentGameObj1.transform.localPosition = pos == Vector3.zero ? -parentGameObj1.transform.GetChild(0).localPosition : pos;
+                    // }
                 }
                 }
             }
             }
 
 

二進制
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes