zhaoyang 2 年之前
父节点
当前提交
be30af5177

+ 12 - 27
GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs

@@ -16,7 +16,6 @@ namespace GFGGame
             SpriteRenderer spr = tf.GetComponent<SpriteRenderer>();
             spr.sortingOrder = -200;
             SetBoxCollider2DToGameObject(tf.gameObject);
-
         }
 
         public void AddBorderItem(ItemCfg itemCfg)
@@ -76,6 +75,7 @@ namespace GFGGame
                 DressUpUtil.AddItem(itemId, sceneObj, false, true, gameObject, resLayer);
                 gameObject.transform.GetChild(0).localPosition = gameObject.transform.GetChild(0).localPosition - gameObject.transform.localPosition;
             }
+            PhotographUtil.Instance.SetGameObjectCenter(parentGameObj);
         }
 
         private void AddOnlyEffItemToScene(GameObject sceneObj, GameObject parentGameObj, int itemId, int resLayer)
@@ -90,6 +90,7 @@ namespace GFGGame
             SetBoxCollider2DToGameObject(gameObject);
             gameObject.GetComponent<SpriteRenderer>().enabled = false;
             DressUpUtil.AddItem(itemId, sceneObj, false, true, parentGameObj, resLayer);
+            PhotographUtil.Instance.SetGameObjectCenter(parentGameObj);
         }
 
         //拍照角色
@@ -98,31 +99,17 @@ namespace GFGGame
 
             PhotographDataManager.Instance.dressUpObj.setSceneObj(sceneObj, false, false, parentObj, false);
             PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MyDressUpHelper.dressUpObj.DressUpDataClone());
-            GameObject gameObject = parentObj.transform.Find("BodyRes").gameObject;
-            if (MyDressUpHelper.dressUpObj.actionId > 0)
-            {
-                var suitCfg = SuitCfgArray.Instance.GetCfg(MyDressUpHelper.dressUpObj.actionId);
-                string resPath = ResPathUtil.GetDressUpPath(suitCfg.picRes);
-                SetSpriteRendererToTransform(gameObject.transform, resPath);
-                SetBoxCollider2DToGameObject(gameObject);
-                SpriteRenderer spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
-                spriteRenderer.enabled = false;
-
-                DressUpUtil.LoadSpritePos(suitCfg.picRes, out float x, out float y);
-
-                Transform gameHead = parentObj.transform.Find("Head");
-                SpriteRenderer spriteHead = gameHead.GetComponent<SpriteRenderer>();
-                Vector2 distance = spriteRenderer.size / 2 - spriteHead.size / 2;
-                float resX = gameHead.localPosition.x + 1;
-                float resY = gameHead.localPosition.y - distance.y + 1;
-                gameObject.transform.localPosition = new Vector3(resX, resY, gameObject.transform.localPosition.z);
-                gameObject.transform.localPosition = Vector3.zero;
-            }
-            else
+
+            for (int i = 0; i < parentObj.transform.childCount; i++)
             {
-                PhotographUtil.Instance.SetGameObjectCenter(parentObj);
-                SetBoxCollider2DToGameObject(gameObject);
+                Transform transform = parentObj.transform.GetChild(i);
+                if (transform.name != DressUpUtil.BODY_ANIMATION_NAME)
+                {
+                    SetBoxCollider2DToGameObject(transform.gameObject);
+                }
             }
+            PhotographUtil.Instance.SetGameObjectCenter(parentObj);
+
         }
 
         //向Transform添加SpriteRenderer并设置资源
@@ -152,8 +139,6 @@ namespace GFGGame
             }
             polygonCollider2D = gameObject.AddComponent<BoxCollider2D>();
             polygonCollider2D.isTrigger = true;
-            polygonCollider2D.size = PhotographUtil.Instance.GetGameObjectBoundsSize(gameObject.transform.parent.gameObject) / 100;
-            // polygonCollider2D.offset = -gameObject.transform.localPosition;
         }
 
         private void AddItemGameObjectToList(GameObject parentGameObj, bool setLayer)
@@ -164,7 +149,7 @@ namespace GFGGame
             if (setLayer)
             {
                 int index = itemGameObjs.Count - 1;
-                PhotographUtil.Instance.ChangeLayer(itemGameObjs[index], index * 100, "up");
+                PhotographUtil.Instance.ChangeLayer(itemGameObjs[index], index * 300, "up");
             }
             itemGameObjs.Sort((GameObject a, GameObject b) =>
             {

+ 14 - 29
GameClient/Assets/Game/HotUpdate/Data/PhotographUtil.cs

@@ -12,24 +12,6 @@ namespace GFGGame
     {
 
         //传入父物体,返回边界大小
-        public Vector2 GetGameObjectBoxSize(GameObject parentObj)
-        {
-            Vector2 size = Vector2.one;
-            for (int i = 0; i < parentObj.transform.childCount; i++)
-            {
-                GameObject childGameObj = parentObj.transform.GetChild(i).gameObject;
-                BoxCollider2D boxCollider2D = childGameObj.GetComponent<BoxCollider2D>();
-                if (boxCollider2D != null)
-                {
-                    // size =GetGameObjectBoundsSize(parentObj);
-                    size = boxCollider2D.size * 100 * parentObj.transform.localScale;
-                    size.x = Math.Abs(size.x);
-                    size.y = Math.Abs(size.y);
-                    return size;
-                }
-            }
-            return Vector2.zero;
-        }
         public Vector2 GetGameObjectBoundsSize(GameObject parentObj)
         {
             float right = int.MinValue;
@@ -37,12 +19,11 @@ namespace GFGGame
             float top = int.MinValue;
             float bottom = int.MaxValue;
 
-            SpriteRenderer[] spriteRenderers = parentObj.transform.GetComponentsInChildren<SpriteRenderer>();
-            for (int i = 0; i < spriteRenderers.Length; i++)
+            BoxCollider2D[] boxColliders = parentObj.transform.GetComponentsInChildren<BoxCollider2D>();
+            for (int i = 0; i < boxColliders.Length; i++)
             {
-                Vector2 pos = spriteRenderers[i].transform.localPosition;
-                Vector2 size = spriteRenderers[i].size * 100 * parentObj.transform.localScale.x;
-                Debug.Log("size:" + size + "     pos:" + pos);
+                Vector2 pos = boxColliders[i].transform.localPosition;
+                Vector2 size = boxColliders[i].size * boxColliders[i].transform.localScale;
 
                 right = Math.Max(size.x / 2 + pos.x, right);
                 left = Math.Min(pos.x - size.x / 2, left);
@@ -51,6 +32,7 @@ namespace GFGGame
             }
 
             Vector2 boundsSize = new Vector2(right - left, top - bottom);
+            boundsSize = boundsSize * 100 * Math.Abs(parentObj.transform.localScale.x);
             return boundsSize;
 
         }
@@ -72,7 +54,7 @@ namespace GFGGame
             {
                 string[] strs = t.name.Split('_');
                 if (strs.Length > 1 && strs[1] == "eff") continue;//不计算特效大小
-                Renderer render = t.GetComponent<Renderer>();
+                BoxCollider2D render = t.GetComponent<BoxCollider2D>();
                 if (render)
                 {
                     index++;
@@ -85,7 +67,7 @@ namespace GFGGame
             {
                 string[] strs = t.name.Split('_');
                 if (strs.Length > 1 && strs[1] == "eff") continue;
-                Renderer render = t.GetComponent<Renderer>();
+                BoxCollider2D render = t.GetComponent<BoxCollider2D>();
                 if (render) bounds.Encapsulate(render.bounds);
             }
 
@@ -231,11 +213,14 @@ namespace GFGGame
                     DressUpUtil.SetParticleSortingOrder(tf.gameObject, changeLayer, true);
                 }
             }
-
-            var render = parentObj.GetComponentInChildren<CubismRenderController>();
-            if (render != null && render.gameObject.activeSelf == true)
+            CubismRenderController[] cubismRenders = parentObj.GetComponentsInChildren<CubismRenderController>();
+            for (int i = 0; i < cubismRenders.Length; i++)
             {
-                render.SortingOrder = render.SortingOrder + changeLayer;
+                CubismRenderController render = cubismRenders[i];
+                if (render != null && render.gameObject.activeSelf == true)
+                {
+                    render.SortingOrder = render.SortingOrder + changeLayer;
+                }
             }
         }
         private int GetMaxLayer(GameObject parentObj)

+ 1 - 1
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -11,7 +11,7 @@ namespace GFGGame
         private const string ROLE_OBJ_NAME = "Role";
         private const string HEAD_SPRITE_NAME = "Head";
         private const string BODY_SPRITE_NAME = "Body";
-        private const string BODY_ANIMATION_NAME = "Body_a";
+        public const string BODY_ANIMATION_NAME = "Body_a";
         private const string BODY_EFFECT_OBJ_NAME = "Body_eff";
         public const string FORMAT_SPRITE_NAME = "T{0}_s{1}";
         private const string FORMAT_ANIMATION_NAME = "T{0}_a{1}";

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

@@ -311,11 +311,6 @@ namespace GFGGame
                     {
                         PhotographUtil.Instance.SetLayer(hitGameObj, "top");
                     }
-
-                    if (!_equipDistance.ContainsKey(hitGameObj))
-                    {
-                        PhotographUtil.Instance.SetGameObjectCenter(hitGameObj);
-                    }
                 }
                 memoryHitGameObj = hitGameObj;
 
@@ -339,7 +334,7 @@ namespace GFGGame
                     }
                 }
                 _ui.m_comSelectBox.target.rotation = rotation;
-                _ui.m_comSelectBox.target.size = PhotographUtil.Instance.GetGameObjectBoxSize(hitGameObj);
+                _ui.m_comSelectBox.target.size = PhotographUtil.Instance.GetGameObjectBoundsSize(hitGameObj);
                 ControllerSelectBoxPos();
 
             }
@@ -467,7 +462,7 @@ namespace GFGGame
         {
             if (value > MaxScale || value < MinScale) return;
             gameObject.transform.localScale = new Vector3(value * sign, value, value);
-            Vector2 size = PhotographUtil.Instance.GetGameObjectBoxSize(gameObject);
+            Vector2 size = PhotographUtil.Instance.GetGameObjectBoundsSize(gameObject);
             _ui.m_comSelectBox.target.size = size;
         }
         private void ControllerRotate(float value, GameObject gameObject)

+ 31 - 100
GameClient/Assets/ResIn/Prefab/ScenePhotograph.prefab

@@ -222,11 +222,41 @@ Transform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 8933042270879769652}
+  - {fileID: 177624320223164717}
   - {fileID: 1387909070457341848}
   m_Father: {fileID: 8933042271082668914}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6507681665420882922
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 177624320223164717}
+  m_Layer: 0
+  m_Name: Role
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &177624320223164717
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6507681665420882922}
+  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: 5810125597218964383}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &6684280482706630978
 GameObject:
   m_ObjectHideFlags: 0
@@ -404,102 +434,3 @@ SpriteRenderer:
   m_WasSpriteAssigned: 0
   m_MaskInteraction: 0
   m_SpriteSortPoint: 0
---- !u!1001 &906528762196001978
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 5810125597218964383}
-    m_Modifications:
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      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}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalScale.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931757, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8605298645814931758, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-      propertyPath: m_Name
-      value: BodyRes
-      objectReference: {fileID: 0}
-    m_RemovedComponents:
-    - {fileID: 8605298645814931756, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-  m_SourcePrefab: {fileID: 100100000, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
---- !u!4 &8933042270879769652 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 8605298645749227662, guid: 8c54818580e6de44cbe90f73003c8b25, type: 3}
-  m_PrefabInstance: {fileID: 906528762196001978}
-  m_PrefabAsset: {fileID: 0}