Browse Source

换装优化

guodong 2 years ago
parent
commit
0ee180249b

+ 7 - 4
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs

@@ -171,6 +171,10 @@ namespace GFGGame
                 {
                 {
                     if (!isRemove)
                     if (!isRemove)
                     {
                     {
+                        if (checkDefault)
+                        {
+                            TryCancelActionWhenPutOn(itemId);
+                        }
                         checkRemoveSameType(subType);
                         checkRemoveSameType(subType);
                         Add(itemId);
                         Add(itemId);
                     }
                     }
@@ -258,7 +262,7 @@ namespace GFGGame
         }
         }
 
 
         //当穿一件部件时检查是否需要取消动作,如果需要则取消该动作
         //当穿一件部件时检查是否需要取消动作,如果需要则取消该动作
-        public void CheckCancelActionWhenPutOn(int itemId)
+        public void TryCancelActionWhenPutOn(int itemId)
         {
         {
             if (_dressUpData.actionId > 0)
             if (_dressUpData.actionId > 0)
             {
             {
@@ -328,7 +332,7 @@ namespace GFGGame
         //穿上一个动作
         //穿上一个动作
         public void PutOnAction(int actionId)
         public void PutOnAction(int actionId)
         {
         {
-            bool hasSuitActionRes = DressUpMenuSuitDataManager.CheckSuitHasActionRes(_dressUpData.suitId);
+            bool hasSuitActionRes = DressUpMenuSuitDataManager.CheckSuitHasActionRes(actionId);
             _dressUpData.actionId = actionId;
             _dressUpData.actionId = actionId;
             if(hasSuitActionRes)
             if(hasSuitActionRes)
             {
             {
@@ -378,8 +382,7 @@ namespace GFGGame
                     }
                     }
                 }
                 }
             }
             }
-            checkDefaultItem();
-            UpdateWholeBodyView();
+            UpdateRoleView();
         }
         }
 
 
         //穿戴一组换装数据
         //穿戴一组换装数据

+ 38 - 46
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -108,7 +108,7 @@ namespace GFGGame
                 if (!string.IsNullOrEmpty(itemCfg.resLayer1))
                 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);
+                    TryRemoveObj(parentObj, spritObjName);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 1);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 1);
                     TryRemoveObj(parentObj, aniObjName);
                     TryRemoveObj(parentObj, aniObjName);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 1);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 1);
@@ -118,7 +118,7 @@ namespace GFGGame
                 if (!string.IsNullOrEmpty(itemCfg.resLayer2))
                 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);
+                    TryRemoveObj(parentObj, spritObjName);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
                     TryRemoveObj(parentObj, aniObjName);
                     TryRemoveObj(parentObj, aniObjName);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 2);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 2);
@@ -128,7 +128,7 @@ namespace GFGGame
                 if (!string.IsNullOrEmpty(itemCfg.resLayer3))
                 if (!string.IsNullOrEmpty(itemCfg.resLayer3))
                 {
                 {
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 3);
                     spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 3);
-                    TryClearSpriteObj(parentObj, spritObjName);
+                    TryRemoveObj(parentObj, spritObjName);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 3);
                     aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 3);
                     TryRemoveObj(parentObj, aniObjName);
                     TryRemoveObj(parentObj, aniObjName);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 3);
                     aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 3);
@@ -167,7 +167,7 @@ namespace GFGGame
             }
             }
 
 
             //清理旧的
             //清理旧的
-            TryClearSpriteObj(parentObj, BODY_SPRITE_NAME);
+            TryRemoveObj(parentObj, BODY_SPRITE_NAME);
             var removeBodyAni = TryRemoveObj(parentObj, BODY_ANIMATION_NAME);
             var removeBodyAni = TryRemoveObj(parentObj, BODY_ANIMATION_NAME);
             TryRemoveObj(parentObj, BODY_EFFECT_OBJ_NAME);
             TryRemoveObj(parentObj, BODY_EFFECT_OBJ_NAME);
 
 
@@ -242,7 +242,7 @@ namespace GFGGame
 
 
             //清理旧的
             //清理旧的
             var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
             var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
-            TryClearSpriteObj(parentObj, spritObjName);
+            TryRemoveObj(parentObj, spritObjName);
             var aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
             var aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
             TryRemoveObj(parentObj, aniObjName);
             TryRemoveObj(parentObj, aniObjName);
             string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
             string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
@@ -270,7 +270,7 @@ namespace GFGGame
                                         string resPath = ResPathUtil.GetDressUpPath(res, ext);
                                         string resPath = ResPathUtil.GetDressUpPath(res, ext);
                                         if (assetDisposer.resPath == resPath)
                                         if (assetDisposer.resPath == resPath)
                                         {
                                         {
-                                            TryClearSpriteObj(parentObj, spritObjName);
+                                            TryRemoveObj(parentObj, spritObjName);
                                         }
                                         }
                                     }
                                     }
                                 }
                                 }
@@ -331,44 +331,6 @@ namespace GFGGame
             return gameObj;
             return gameObj;
         }
         }
 
 
-        public static void TryClearSpriteObj(GameObject parentObj, string spritObjName)
-        {
-            if (parentObj == null)
-            {
-                return;
-            }
-            Transform transform_t = parentObj.transform.Find(spritObjName);
-            if (transform_t != null)
-            {
-                GameObject gameObj_t = transform_t.gameObject;
-                if (gameObj_t != null)
-                {
-                    //SpriteRenderer spr = null;
-                    //spr = gameObj_t.GetComponent<SpriteRenderer>();
-                    //if(spr != null)
-                    //{
-                    //    spr.sprite = null;
-                    //}
-                    // var assetDisposer = gameObj_t.GetComponent<AssetReleaser>();
-                    // if (assetDisposer != null)
-                    // {
-                    //     if (!string.IsNullOrEmpty(assetDisposer.resPath))
-                    //     {
-                    //         GFGAsset.Release(assetDisposer.resPath);
-                    //         assetDisposer.resPath = null;
-                    //     }
-                    // }
-                    // SpriteRenderer spr = gameObj_t.GetComponent<SpriteRenderer>();
-                    // if (spr != null)
-                    // {
-                    //     GameObject.Destroy(spr);
-                    // }
-                    GameObject.DestroyImmediate(gameObj_t);
-
-                }
-            }
-        }
-
         private static GameObject AddAnimationObj(string res, string objName, GameObject parentObj, int sortingOrder)
         private static GameObject AddAnimationObj(string res, string objName, GameObject parentObj, int sortingOrder)
         {
         {
             string resPath = ResPathUtil.GetDressUpAnimationPath(res);
             string resPath = ResPathUtil.GetDressUpAnimationPath(res);
@@ -376,6 +338,10 @@ namespace GFGGame
             {
             {
                 return null;
                 return null;
             }
             }
+            if(CheckGameObjExisted(parentObj, objName, resPath))
+            {
+                return null;
+            }
             var prefab = GFGAsset.Load<GameObject>(resPath);
             var prefab = GFGAsset.Load<GameObject>(resPath);
             var gameObj = GameObject.Instantiate(prefab);
             var gameObj = GameObject.Instantiate(prefab);
             AddAssetReleaser(gameObj, resPath);
             AddAssetReleaser(gameObj, resPath);
@@ -404,13 +370,13 @@ namespace GFGGame
             return gameObj;
             return gameObj;
         }
         }
 
 
-        private static bool TryRemoveObj(GameObject parentObj, string aniObjName)
+        private static bool TryRemoveObj(GameObject parentObj, string objName)
         {
         {
             if (parentObj == null)
             if (parentObj == null)
             {
             {
                 return false;
                 return false;
             }
             }
-            Transform transform = parentObj.transform.Find(aniObjName);
+            Transform transform = parentObj.transform.Find(objName);
             if (transform != null)
             if (transform != null)
             {
             {
                 GameObject gameObj = transform.gameObject;
                 GameObject gameObj = transform.gameObject;
@@ -423,6 +389,32 @@ namespace GFGGame
             return false;
             return false;
         }
         }
 
 
+        private static bool CheckGameObjExisted(GameObject parentObj, string objName, string resPath)
+        {
+            if (parentObj == null)
+            {
+                return false;
+            }
+            Transform transform = parentObj.transform.Find(objName);
+            if (transform != null)
+            {
+                GameObject gameObj = transform.gameObject;
+                if (gameObj != null)
+                {
+                     var assetReleaser = gameObj.GetComponent<AssetReleaser>();
+                    if (assetReleaser != null)
+                    {
+                        if (assetReleaser.resPath == resPath)
+                        {
+
+                            return true;
+                        }
+                    }
+                }
+            }
+            return false;
+        }
+
         public static GameObject CreateAnimationObj(string resPath)
         public static GameObject CreateAnimationObj(string resPath)
         {
         {
             // string resPath = ResPathUtil.GetCardAnimationPath(res);
             // string resPath = ResPathUtil.GetCardAnimationPath(res);

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

@@ -300,7 +300,6 @@ namespace GFGGame
                     PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
                     PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
                     return;
                     return;
                 }
                 }
-                MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(id);
                 MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
                 MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             }
             }
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
@@ -328,7 +327,6 @@ namespace GFGGame
                 return;
                 return;
             }
             }
 
 
-            MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(id);
             MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             UpdateListSuitPartsSelected();
             UpdateListSuitPartsSelected();

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

@@ -336,7 +336,6 @@ namespace GFGGame
                     PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
                     PromptController.Instance.ShowFloatTextPrompt("饰品穿戴数量已达上限");
                     return;
                     return;
                 }
                 }
-                MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(id);
                 MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
                 MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             }
             }
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
@@ -363,7 +362,6 @@ namespace GFGGame
                 return;
                 return;
             }
             }
 
 
-            MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(id);
             MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             MyDressUpHelper.dressUpObj.AddOrRemove(id, true);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             _ui.m_txtDressLimit.text = string.Format("饰品穿戴限制:{0}/{1}", MyDressUpHelper.GetCurrentOrnamentCount(), GlobalCfgArray.globalCfg.dressLimitCount);
             UpdateListSuitPartsSelected();
             UpdateListSuitPartsSelected();
@@ -526,7 +524,6 @@ namespace GFGGame
                 this.hideListParts2();
                 this.hideListParts2();
                 this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true);
                 this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true);
             }
             }
-            MyDressUpHelper.dressUpObj.CheckCancelActionWhenPutOn(_currentSuitId);
             InstanceZonesDataManager.usedRecommend = true;
             InstanceZonesDataManager.usedRecommend = true;
             // MyDressUpHelper.PutOnRecommendItems();
             // MyDressUpHelper.PutOnRecommendItems();
             MyDressUpHelper.PutOnRecommendItems2();
             MyDressUpHelper.PutOnRecommendItems2();

+ 1 - 1
GameClient/Assets/Scenes/GameLauncher.unity

@@ -277,7 +277,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 170410349}
   m_GameObject: {fileID: 170410349}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 2.8125, y: -5, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Children: []
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}