瀏覽代碼

拍照层级

zhaoyang 2 年之前
父節點
當前提交
b2f3f3dea1

+ 21 - 3
GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs

@@ -143,6 +143,25 @@ namespace GFGGame
                 int index = itemGameObjs.Count - 1;
                 PhotographUtil.Instance.ChangeLayer(itemGameObjs[index], index * PhotographDataManager.layerCount, "up");
             }
+
+            itemGameObjs.Sort((GameObject a, GameObject b) =>
+            {
+                int layerA = PhotographUtil.Instance.GetMaxLayer(a);
+                int layerB = PhotographUtil.Instance.GetMaxLayer(b);
+                if (layerA < layerB)
+                {
+                    return -1;
+                }
+                else if (layerA > layerB)
+                {
+                    return 1;
+                }
+                return string.Compare(a.name, b.name);
+            });
+        }
+
+        private List<GameObject> SortItemGameObjsLayer(List<GameObject> itemGameObjs)
+        {
             itemGameObjs.Sort((GameObject a, GameObject b) =>
             {
 
@@ -156,11 +175,10 @@ namespace GFGGame
                 {
                     return 1;
                 }
-                return 0;
+                return string.Compare(a.name, b.name);
             });
-
+            return itemGameObjs;
         }
-
         //移除指定GameObject的BoxCollider2D
         public void DeleteBoxCollider2DFromGameObject(GameObject gameObject)
         {

+ 9 - 1
GameClient/Assets/Game/HotUpdate/Data/PhotographUtil.cs

@@ -95,7 +95,9 @@ namespace GFGGame
 
             for (int i = 0; i < hit2Ds.Length; i++)
             {
+                ET.Log.Debug("GetFirstHitObj:    name    " + hit2Ds[i].collider.transform.parent.gameObject);
                 int gameobjMaxlayer = GetMaxLayer(hit2Ds[i].collider.transform.parent.gameObject);
+                ET.Log.Debug("GetFirstHitObj:    Maxlayer    " + gameobjMaxlayer);
                 if (gameobjMaxlayer > layer)
                 {
                     layer = gameobjMaxlayer;
@@ -170,7 +172,13 @@ namespace GFGGame
 
             for (int i = 0; i < itemGameObjs.Count; i++)
             {
+                // ET.Log.Debug("SetLayer:    name    " + itemGameObjs[i].name);
+                // ET.Log.Debug("SetLayer:    GetMinLayer0    " + GetMinLayer(itemGameObjs[i]));
+                // ET.Log.Debug("SetLayer:    GetMaxLayer0    " + GetMaxLayer(itemGameObjs[i]));
                 ChangeLayer(itemGameObjs[i], i * PhotographDataManager.layerCount, state);
+                // ET.Log.Debug("SetLayer:    GetMinLayer1    " + GetMinLayer(itemGameObjs[i]));
+                // ET.Log.Debug("SetLayer:    GetMaxLayer1    " + GetMaxLayer(itemGameObjs[i]));
+
             }
 
         }
@@ -225,7 +233,7 @@ namespace GFGGame
                 }
             }
         }
-        private int GetMaxLayer(GameObject parentObj)
+        public int GetMaxLayer(GameObject parentObj)
         {
             int layer = int.MinValue;
             for (int i = 0; i < parentObj.transform.childCount; i++)