|
@@ -108,7 +108,7 @@ namespace GFGGame
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer1))
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer1))
|
|
{
|
|
{
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 1);
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 1);
|
|
- TryClearSpriteObj(parentObj, spritObjName);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, spritObjName);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 1);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 1);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 1);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 1);
|
|
@@ -118,7 +118,7 @@ namespace GFGGame
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer2))
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer2))
|
|
{
|
|
{
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 2);
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 2);
|
|
- TryClearSpriteObj(parentObj, spritObjName);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, spritObjName);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 2);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 2);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 2);
|
|
@@ -128,7 +128,7 @@ namespace GFGGame
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer3))
|
|
if (!string.IsNullOrEmpty(itemCfg.resLayer3))
|
|
{
|
|
{
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 3);
|
|
spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, 3);
|
|
- TryClearSpriteObj(parentObj, spritObjName);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, spritObjName);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 3);
|
|
aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, 3);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 3);
|
|
aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, 3);
|
|
@@ -167,7 +167,7 @@ namespace GFGGame
|
|
}
|
|
}
|
|
|
|
|
|
//清理旧的
|
|
//清理旧的
|
|
- TryClearSpriteObj(parentObj, BODY_SPRITE_NAME);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, BODY_SPRITE_NAME);
|
|
var removeBodyAni = TryRemoveObj(parentObj, BODY_ANIMATION_NAME);
|
|
var removeBodyAni = TryRemoveObj(parentObj, BODY_ANIMATION_NAME);
|
|
TryRemoveObj(parentObj, BODY_EFFECT_OBJ_NAME);
|
|
TryRemoveObj(parentObj, BODY_EFFECT_OBJ_NAME);
|
|
|
|
|
|
@@ -242,7 +242,7 @@ namespace GFGGame
|
|
|
|
|
|
//清理旧的
|
|
//清理旧的
|
|
var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
|
|
var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
|
|
- TryClearSpriteObj(parentObj, spritObjName);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, spritObjName);
|
|
var aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
|
|
var aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
TryRemoveObj(parentObj, aniObjName);
|
|
string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
|
|
string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
|
|
@@ -270,7 +270,7 @@ namespace GFGGame
|
|
string resPath = ResPathUtil.GetDressUpPath(res, ext);
|
|
string resPath = ResPathUtil.GetDressUpPath(res, ext);
|
|
if (assetDisposer.resPath == resPath)
|
|
if (assetDisposer.resPath == resPath)
|
|
{
|
|
{
|
|
- TryClearSpriteObj(parentObj, spritObjName);
|
|
|
|
|
|
+ TryRemoveObj(parentObj, spritObjName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -331,44 +331,6 @@ namespace GFGGame
|
|
return gameObj;
|
|
return gameObj;
|
|
}
|
|
}
|
|
|
|
|
|
- public static void TryClearSpriteObj(GameObject parentObj, string spritObjName)
|
|
|
|
- {
|
|
|
|
- if (parentObj == null)
|
|
|
|
- {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- Transform transform_t = parentObj.transform.Find(spritObjName);
|
|
|
|
- if (transform_t != null)
|
|
|
|
- {
|
|
|
|
- GameObject gameObj_t = transform_t.gameObject;
|
|
|
|
- if (gameObj_t != null)
|
|
|
|
- {
|
|
|
|
- //SpriteRenderer spr = null;
|
|
|
|
- //spr = gameObj_t.GetComponent<SpriteRenderer>();
|
|
|
|
- //if(spr != null)
|
|
|
|
- //{
|
|
|
|
- // spr.sprite = null;
|
|
|
|
- //}
|
|
|
|
- // var assetDisposer = gameObj_t.GetComponent<AssetReleaser>();
|
|
|
|
- // if (assetDisposer != null)
|
|
|
|
- // {
|
|
|
|
- // if (!string.IsNullOrEmpty(assetDisposer.resPath))
|
|
|
|
- // {
|
|
|
|
- // GFGAsset.Release(assetDisposer.resPath);
|
|
|
|
- // assetDisposer.resPath = null;
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // SpriteRenderer spr = gameObj_t.GetComponent<SpriteRenderer>();
|
|
|
|
- // if (spr != null)
|
|
|
|
- // {
|
|
|
|
- // GameObject.Destroy(spr);
|
|
|
|
- // }
|
|
|
|
- GameObject.DestroyImmediate(gameObj_t);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private static GameObject AddAnimationObj(string res, string objName, GameObject parentObj, int sortingOrder)
|
|
private static GameObject AddAnimationObj(string res, string objName, GameObject parentObj, int sortingOrder)
|
|
{
|
|
{
|
|
string resPath = ResPathUtil.GetDressUpAnimationPath(res);
|
|
string resPath = ResPathUtil.GetDressUpAnimationPath(res);
|
|
@@ -376,6 +338,10 @@ namespace GFGGame
|
|
{
|
|
{
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+ if(CheckGameObjExisted(parentObj, objName, resPath))
|
|
|
|
+ {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
var prefab = GFGAsset.Load<GameObject>(resPath);
|
|
var prefab = GFGAsset.Load<GameObject>(resPath);
|
|
var gameObj = GameObject.Instantiate(prefab);
|
|
var gameObj = GameObject.Instantiate(prefab);
|
|
AddAssetReleaser(gameObj, resPath);
|
|
AddAssetReleaser(gameObj, resPath);
|
|
@@ -404,13 +370,13 @@ namespace GFGGame
|
|
return gameObj;
|
|
return gameObj;
|
|
}
|
|
}
|
|
|
|
|
|
- private static bool TryRemoveObj(GameObject parentObj, string aniObjName)
|
|
|
|
|
|
+ private static bool TryRemoveObj(GameObject parentObj, string objName)
|
|
{
|
|
{
|
|
if (parentObj == null)
|
|
if (parentObj == null)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- Transform transform = parentObj.transform.Find(aniObjName);
|
|
|
|
|
|
+ Transform transform = parentObj.transform.Find(objName);
|
|
if (transform != null)
|
|
if (transform != null)
|
|
{
|
|
{
|
|
GameObject gameObj = transform.gameObject;
|
|
GameObject gameObj = transform.gameObject;
|
|
@@ -423,6 +389,32 @@ namespace GFGGame
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static bool CheckGameObjExisted(GameObject parentObj, string objName, string resPath)
|
|
|
|
+ {
|
|
|
|
+ if (parentObj == null)
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ Transform transform = parentObj.transform.Find(objName);
|
|
|
|
+ if (transform != null)
|
|
|
|
+ {
|
|
|
|
+ GameObject gameObj = transform.gameObject;
|
|
|
|
+ if (gameObj != null)
|
|
|
|
+ {
|
|
|
|
+ var assetReleaser = gameObj.GetComponent<AssetReleaser>();
|
|
|
|
+ if (assetReleaser != null)
|
|
|
|
+ {
|
|
|
|
+ if (assetReleaser.resPath == resPath)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
public static GameObject CreateAnimationObj(string resPath)
|
|
public static GameObject CreateAnimationObj(string resPath)
|
|
{
|
|
{
|
|
// string resPath = ResPathUtil.GetCardAnimationPath(res);
|
|
// string resPath = ResPathUtil.GetCardAnimationPath(res);
|