|
@@ -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;
|
|
|
}
|
|
|
}
|
|
|
}
|