|
@@ -92,9 +92,9 @@ namespace GFGGame
|
|
|
{
|
|
|
int layer = int.MinValue;
|
|
|
GameObject gameObject = null;
|
|
|
+
|
|
|
for (int i = 0; i < hit2Ds.Length; i++)
|
|
|
{
|
|
|
-
|
|
|
int gameobjMaxlayer = GetMaxLayer(hit2Ds[i].collider.transform.parent.gameObject);
|
|
|
if (gameobjMaxlayer > layer)
|
|
|
{
|
|
@@ -189,56 +189,32 @@ namespace GFGGame
|
|
|
}
|
|
|
int changeLayer = count;
|
|
|
|
|
|
- int maxLayer = int.MinValue;
|
|
|
SpriteRenderer[] sps = parentObj.GetComponentsInChildren<SpriteRenderer>();//选中道具可能含有静态图
|
|
|
for (int i = 0; i < sps.Length; i++)
|
|
|
{
|
|
|
int sortingOrder = sps[i].sortingOrder + changeLayer;
|
|
|
sps[i].sortingOrder = sortingOrder;
|
|
|
-
|
|
|
- ParticleSystem[] particles = sps[i].gameObject.GetComponentsInChildren<ParticleSystem>();
|
|
|
- for (int j = 0; j < particles.Length; j++)//静态图可能是动画
|
|
|
- {
|
|
|
- var renderer = particles[j].GetComponent<Renderer>();
|
|
|
- if (renderer != null)
|
|
|
- {
|
|
|
- renderer.sortingOrder = sortingOrder;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (maxLayer < sortingOrder)
|
|
|
- {
|
|
|
- maxLayer = sortingOrder;
|
|
|
- }
|
|
|
}
|
|
|
- Collider2D[] collider = parentObj.GetComponentsInChildren<Collider2D>();//选中道具可能含有静态图
|
|
|
- for (int i = 0; i < collider.Length; i++)
|
|
|
+
|
|
|
+ ParticleSystem[] particleSystems = parentObj.GetComponentsInChildren<ParticleSystem>();
|
|
|
+ for (int i = 0; i < particleSystems.Length; i++)//选中道具可能含有特效
|
|
|
{
|
|
|
- ParticleSystem[] particles = collider[i].gameObject.GetComponentsInChildren<ParticleSystem>();
|
|
|
- for (int j = 0; j < particles.Length; j++)//静态图可能是动画
|
|
|
+ var renderer = particleSystems[i].GetComponent<Renderer>();
|
|
|
+ if (renderer != null)
|
|
|
{
|
|
|
- var renderer = particles[j].GetComponent<Renderer>();
|
|
|
- if (renderer != null)
|
|
|
- {
|
|
|
- renderer.sortingOrder = renderer.sortingOrder + changeLayer;
|
|
|
- if (maxLayer < renderer.sortingOrder)
|
|
|
- {
|
|
|
- maxLayer = renderer.sortingOrder;
|
|
|
- }
|
|
|
- }
|
|
|
+ renderer.sortingOrder = renderer.sortingOrder + changeLayer;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- for (int i = 0; i < parentObj.transform.childCount; i++)//选中道具可能含有特效
|
|
|
+ MeshRenderer[] meshRenderers = parentObj.GetComponentsInChildren<MeshRenderer>();
|
|
|
+ for (int i = 0; i < meshRenderers.Length; i++)
|
|
|
{
|
|
|
- Transform tf = parentObj.transform.GetChild(i);
|
|
|
- string[] strs = tf.name.Split('_');
|
|
|
- if (strs.Length > 1 && strs[1].IndexOf("e") >= 0)//子物体是特效
|
|
|
+ var renderer = meshRenderers[i].GetComponent<Renderer>();
|
|
|
+ if (renderer != null)
|
|
|
{
|
|
|
- DressUpUtil.SetRenderersOrder(tf.gameObject, changeLayer, true);
|
|
|
+ renderer.sortingOrder = renderer.sortingOrder + changeLayer;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
CubismRenderController[] cubismRenders = parentObj.GetComponentsInChildren<CubismRenderController>();
|
|
|
for (int i = 0; i < cubismRenders.Length; i++)
|
|
|
{
|
|
@@ -246,10 +222,6 @@ namespace GFGGame
|
|
|
if (render != null && render.gameObject.activeSelf == true)
|
|
|
{
|
|
|
render.SortingOrder = render.SortingOrder + changeLayer;
|
|
|
- if (maxLayer < render.SortingOrder)
|
|
|
- {
|
|
|
- maxLayer = render.SortingOrder;
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -258,13 +230,21 @@ namespace GFGGame
|
|
|
int layer = int.MinValue;
|
|
|
for (int i = 0; i < parentObj.transform.childCount; i++)
|
|
|
{
|
|
|
+
|
|
|
GameObject gameObject = parentObj.transform.GetChild(i).gameObject;
|
|
|
- Transform tf = gameObject.transform;
|
|
|
- SpriteRenderer sp = tf.GetComponent<SpriteRenderer>();
|
|
|
- if (sp && layer < sp.sortingOrder)
|
|
|
+
|
|
|
+ if (gameObject.activeSelf == false) continue;
|
|
|
+
|
|
|
+ SpriteRenderer[] sprites = gameObject.GetComponentsInChildren<SpriteRenderer>();
|
|
|
+ for (int j = 0; j < sprites.Length; j++)
|
|
|
{
|
|
|
- layer = sp.sortingOrder;
|
|
|
+
|
|
|
+ if (sprites[j] != null && layer < sprites[j].sortingOrder)
|
|
|
+ {
|
|
|
+ layer = sprites[j].sortingOrder;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>();
|
|
|
for (int j = 0; j < particles.Length; j++)
|
|
|
{
|
|
@@ -274,31 +254,49 @@ namespace GFGGame
|
|
|
layer = renderer.sortingOrder;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ MeshRenderer[] meshRenderers = gameObject.GetComponentsInChildren<MeshRenderer>();
|
|
|
+ for (int j = 0; j < meshRenderers.Length; j++)
|
|
|
+ {
|
|
|
+ var renderer = meshRenderers[j].GetComponent<Renderer>();
|
|
|
+ if (renderer != null && 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)
|
|
|
+ CubismRenderController cubism = cubismRenders[j];
|
|
|
+ if (cubism != null && cubism.gameObject.activeSelf == true && layer < cubism.SortingOrder)
|
|
|
{
|
|
|
- layer = render.SortingOrder;
|
|
|
+ layer = cubism.SortingOrder;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return layer;
|
|
|
}
|
|
|
+
|
|
|
public int GetMinLayer(GameObject parentObj)
|
|
|
{
|
|
|
int layer = int.MaxValue;
|
|
|
for (int i = 0; i < parentObj.transform.childCount; i++)
|
|
|
{
|
|
|
GameObject gameObject = parentObj.transform.GetChild(i).gameObject;
|
|
|
- Transform tf = gameObject.transform;
|
|
|
- if (tf.gameObject.activeSelf == false) continue;
|
|
|
- SpriteRenderer sp = tf.GetComponent<SpriteRenderer>();
|
|
|
- if (sp && sp.sortingOrder < layer)
|
|
|
+
|
|
|
+ if (gameObject.activeSelf == false) continue;
|
|
|
+
|
|
|
+ SpriteRenderer[] sprites = gameObject.GetComponentsInChildren<SpriteRenderer>();
|
|
|
+ for (int j = 0; j < sprites.Length; j++)
|
|
|
{
|
|
|
- layer = sp.sortingOrder;
|
|
|
+
|
|
|
+ if (sprites[j] != null && sprites[j].sortingOrder < layer)
|
|
|
+ {
|
|
|
+ layer = sprites[j].sortingOrder;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>();
|
|
|
for (int j = 0; j < particles.Length; j++)
|
|
|
{
|
|
@@ -308,6 +306,17 @@ namespace GFGGame
|
|
|
layer = renderer.sortingOrder;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ MeshRenderer[] meshRenderers = gameObject.GetComponentsInChildren<MeshRenderer>();
|
|
|
+ for (int j = 0; j < meshRenderers.Length; j++)
|
|
|
+ {
|
|
|
+ var renderer = meshRenderers[j].GetComponent<Renderer>();
|
|
|
+ if (renderer != null && renderer.sortingOrder < layer)
|
|
|
+ {
|
|
|
+ layer = renderer.sortingOrder;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
CubismRenderController[] cubismRenders = parentObj.GetComponentsInChildren<CubismRenderController>();
|
|
|
for (int j = 0; j < cubismRenders.Length; j++)
|
|
|
{
|