|  | @@ -23,7 +23,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              for (int i = 0; i < boxColliders.Length; i++)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  Vector2 pos = boxColliders[i].transform.localPosition;
 | 
	
		
			
				|  |  | -                Vector2 size = boxColliders[i].size * boxColliders[i].transform.localScale;
 | 
	
		
			
				|  |  | +                Vector2 size = boxColliders[i].size * parentObj.transform.parent.localScale;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  right = Math.Max(size.x / 2 + pos.x, right);
 | 
	
		
			
				|  |  |                  left = Math.Min(pos.x - size.x / 2, left);
 | 
	
	
		
			
				|  | @@ -116,10 +116,16 @@ namespace GFGGame
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          public void SetLayer(GameObject hitGameObj, string state)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | +            if (hitGameObj == null) return;
 | 
	
		
			
				|  |  |              List<GameObject> itemGameObjs = PhotographDataManager.Instance.itemGameObjs;
 | 
	
		
			
				|  |  |              if (state != "refresh")
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  int index = itemGameObjs.IndexOf(hitGameObj);
 | 
	
		
			
				|  |  | +                if (index < 0)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    index = itemGameObjs.IndexOf(hitGameObj.transform.parent.gameObject);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  if (index == itemGameObjs.Count - 1 && state == "top") return;
 | 
	
		
			
				|  |  |                  if (state != "top")
 | 
	
		
			
				|  |  |                  {
 | 
	
	
		
			
				|  | @@ -164,7 +170,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              for (int i = 0; i < itemGameObjs.Count; i++)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                ChangeLayer(itemGameObjs[i], i * 300, state);
 | 
	
		
			
				|  |  | +                ChangeLayer(itemGameObjs[i], i * 400, state);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -205,6 +211,23 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                      maxLayer = sortingOrder;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            Collider2D[] collider = parentObj.GetComponentsInChildren<Collider2D>();//选中道具可能含有静态图
 | 
	
		
			
				|  |  | +            for (int i = 0; i < collider.Length; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                ParticleSystem[] particles = collider[i].gameObject.GetComponentsInChildren<ParticleSystem>();
 | 
	
		
			
				|  |  | +                for (int j = 0; j < particles.Length; j++)//静态图可能是动画
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    var renderer = particles[j].GetComponent<Renderer>();
 | 
	
		
			
				|  |  | +                    if (renderer != null)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        renderer.sortingOrder = renderer.sortingOrder + changeLayer;
 | 
	
		
			
				|  |  | +                        if (maxLayer < renderer.sortingOrder)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            maxLayer = renderer.sortingOrder;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              for (int i = 0; i < parentObj.transform.childCount; i++)//选中道具可能含有特效
 | 
	
	
		
			
				|  | @@ -223,6 +246,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  if (render != null && render.gameObject.activeSelf == true)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      render.SortingOrder = render.SortingOrder + changeLayer;
 | 
	
		
			
				|  |  | +                    if (maxLayer < render.SortingOrder)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        maxLayer = render.SortingOrder;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -237,15 +264,23 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  if (sp && layer < sp.sortingOrder)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      layer = sp.sortingOrder;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    ParticleSystem[] particles = sp.gameObject.GetComponentsInChildren<ParticleSystem>();
 | 
	
		
			
				|  |  | -                    for (int j = 0; j < particles.Length; j++)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>();
 | 
	
		
			
				|  |  | +                for (int j = 0; j < particles.Length; j++)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    var renderer = particles[j].GetComponent<Renderer>();
 | 
	
		
			
				|  |  | +                    if (renderer != null && layer < renderer.sortingOrder)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  | -                        var renderer = particles[j].GetComponent<Renderer>();
 | 
	
		
			
				|  |  | -                        if (renderer != null && layer < renderer.sortingOrder)
 | 
	
		
			
				|  |  | -                        {
 | 
	
		
			
				|  |  | -                            layer = renderer.sortingOrder;
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | +                        layer = renderer.sortingOrder;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                CubismRenderController[] cubismRenders = parentObj.GetComponentsInChildren<CubismRenderController>();
 | 
	
		
			
				|  |  | +                for (int j = 0; j < cubismRenders.Length; j++)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    CubismRenderController render = cubismRenders[j];
 | 
	
		
			
				|  |  | +                    if (render != null && render.gameObject.activeSelf == true && layer < render.SortingOrder)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        layer = render.SortingOrder;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -263,15 +298,23 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  if (sp && sp.sortingOrder < layer)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      layer = sp.sortingOrder;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    ParticleSystem[] particles = sp.gameObject.GetComponentsInChildren<ParticleSystem>();
 | 
	
		
			
				|  |  | -                    for (int j = 0; j < particles.Length; j++)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>();
 | 
	
		
			
				|  |  | +                for (int j = 0; j < particles.Length; j++)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    var renderer = particles[j].GetComponent<Renderer>();
 | 
	
		
			
				|  |  | +                    if (renderer != null && renderer.sortingOrder < layer)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  | -                        var renderer = particles[j].GetComponent<Renderer>();
 | 
	
		
			
				|  |  | -                        if (renderer != null && renderer.sortingOrder < layer)
 | 
	
		
			
				|  |  | -                        {
 | 
	
		
			
				|  |  | -                            layer = renderer.sortingOrder;
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | +                        layer = renderer.sortingOrder;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                CubismRenderController[] cubismRenders = parentObj.GetComponentsInChildren<CubismRenderController>();
 | 
	
		
			
				|  |  | +                for (int j = 0; j < cubismRenders.Length; j++)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    CubismRenderController render = cubismRenders[j];
 | 
	
		
			
				|  |  | +                    if (render != null && render.gameObject.activeSelf == true && render.SortingOrder < layer)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        layer = render.SortingOrder;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 |