|
@@ -186,7 +186,7 @@ namespace GFGGame
|
|
|
//特效
|
|
|
if (!string.IsNullOrEmpty(effRes))
|
|
|
{
|
|
|
- TryAddEffectObj(effRes, BODY_EFFECT_OBJ_NAME, parentObj, 0);
|
|
|
+ TryAddEffectObj(effRes, BODY_EFFECT_OBJ_NAME, parentObj, 0, false);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -237,9 +237,10 @@ namespace GFGGame
|
|
|
//这里需要先添加静态图,防止加载动画有延迟,出现光头
|
|
|
GameObject spriteObj = AddSpriteObj(res, ext, spritObjName, parentObj, sortingOrder, needSetMask);
|
|
|
|
|
|
+ GameObject aniObj = null;
|
|
|
if (showAni)
|
|
|
{
|
|
|
- var aniObj = AddAnimationObj(res, aniObjName, parentObj, sortingOrder);
|
|
|
+ aniObj = AddAnimationObj(res, aniObjName, parentObj, sortingOrder);
|
|
|
if (aniObj != null && spriteObj != null)
|
|
|
{
|
|
|
Timers.inst.Add(0.03f, 1, (obj) =>
|
|
@@ -269,7 +270,7 @@ namespace GFGGame
|
|
|
|
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, layerId);
|
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
|
- TryAddEffectObj(res, aniObjName, parentObj, sortingOrder);
|
|
|
+ TryAddEffectObj(res, aniObjName, parentObj, sortingOrder, aniObj != null);
|
|
|
}
|
|
|
|
|
|
private static GameObject AddSpriteObj(string res, string ext, string objName, GameObject parentObj, int sortingOrder, bool needSetMask)
|
|
@@ -387,7 +388,7 @@ namespace GFGGame
|
|
|
{
|
|
|
render.SortingOrder = sortingOrder;
|
|
|
}
|
|
|
- SetParticleSortingOrder(gameObj, sortingOrder);
|
|
|
+ SetRenderersOrder(gameObj, sortingOrder);
|
|
|
return gameObj;
|
|
|
}
|
|
|
|
|
@@ -423,9 +424,9 @@ namespace GFGGame
|
|
|
return gameObj;
|
|
|
}
|
|
|
|
|
|
- private static void TryAddEffectObj(string res, string objName, GameObject parentObj, int sortingOrder)
|
|
|
+ private static void TryAddEffectObj(string res, string objName, GameObject parentObj, int sortingOrder, bool inAni)
|
|
|
{
|
|
|
- var resPath = ResPathUtil.GetDressUpEffectPath(res);
|
|
|
+ var resPath = ResPathUtil.GetDressUpEffectPath(res, inAni);
|
|
|
if (!VEngine.Versions.Contains(resPath))
|
|
|
{
|
|
|
return;
|
|
@@ -436,12 +437,11 @@ namespace GFGGame
|
|
|
gameObj.transform.SetParent(parentObj.transform, false);
|
|
|
gameObj.name = objName;
|
|
|
var sortingGroup = gameObj.transform.GetComponent<SortingGroup>();
|
|
|
- if (sortingGroup == null)
|
|
|
+ if (sortingGroup != null)
|
|
|
{
|
|
|
- sortingGroup = gameObj.AddComponent<SortingGroup>();
|
|
|
+ GameObject.Destroy(sortingGroup);
|
|
|
}
|
|
|
- sortingGroup.sortingOrder = sortingOrder + 1;//特效层默认高一个层级
|
|
|
- //SetParticleSortingOrder(gameObj, sortingOrder + 1);//特效层默认高一个层级
|
|
|
+ SetRenderersOrder(gameObj, sortingOrder + 1);//特效层默认高一个层级
|
|
|
}
|
|
|
|
|
|
public static void LoadSpritePos(string res, out float tx, out float ty)
|
|
@@ -464,9 +464,25 @@ namespace GFGGame
|
|
|
ty = 0;
|
|
|
}
|
|
|
|
|
|
- public static void SetParticleSortingOrder(GameObject gameObj, int sortingOrder, bool isAdd = false)
|
|
|
+ public static void SetRenderersOrder(GameObject gameObj, int sortingOrder, bool isAdd = false)
|
|
|
{
|
|
|
+ var meshRenderers = gameObj.transform.GetComponentsInChildren<MeshRenderer>();
|
|
|
+ for (int i = 0; i < meshRenderers.Length; i++)
|
|
|
+ {
|
|
|
+ var renderer = meshRenderers[i].GetComponent<Renderer>();
|
|
|
+ if (renderer != null)
|
|
|
+ {
|
|
|
+ if (isAdd)
|
|
|
+ {
|
|
|
+ renderer.sortingOrder = renderer.sortingOrder + sortingOrder;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
|
|
|
+ renderer.sortingOrder = sortingOrder;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
ParticleSystem[] particles = gameObj.transform.GetComponentsInChildren<ParticleSystem>();
|
|
|
for (int i = 0; i < particles.Length; i++)
|
|
|
{
|