|
@@ -20,67 +20,6 @@ namespace GFGGame
|
|
|
public const string FORMAT_ANIMATION_NAME = "T{0}_a{1}";
|
|
|
public const string FORMAT_EFFECT_OBJ_NAME = "T{0}_e{1}";
|
|
|
|
|
|
- //public static void AddItem(int itemID, GameObject sceneObj, bool needSetMask = false, bool showAni = true, GameObject parentObj = null, int resLayer = 0)
|
|
|
- //{
|
|
|
- // ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
|
|
|
- // if (itemCfg == null) return;
|
|
|
-
|
|
|
- // if (parentObj == null)
|
|
|
- // {
|
|
|
- // if (itemCfg.subType == ConstDressUpItemType.BEI_JING || DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(itemCfg.subType))
|
|
|
- // {
|
|
|
- // parentObj = sceneObj;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // //角色
|
|
|
- // Transform role = sceneObj.transform.Find(ROLE_OBJ_NAME);
|
|
|
- // parentObj = role.gameObject;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // showAni = showAni || itemCfg.subType == ConstDressUpItemType.ZHUANG_RONG;
|
|
|
- // if (resLayer > 0)
|
|
|
- // {
|
|
|
- // string layerName = "";
|
|
|
- // switch (resLayer)
|
|
|
- // {
|
|
|
- // case 1:
|
|
|
- // layerName = itemCfg.resLayer1;
|
|
|
- // break;
|
|
|
- // case 2:
|
|
|
- // layerName = itemCfg.resLayer2;
|
|
|
- // break;
|
|
|
- // case 3:
|
|
|
- // layerName = itemCfg.resLayer3;
|
|
|
- // break;
|
|
|
- // }
|
|
|
- // if (!string.IsNullOrEmpty(layerName))
|
|
|
- // {
|
|
|
- // UpdateLayerRes(itemCfg, parentObj, resLayer, needSetMask, showAni);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // //普通层
|
|
|
- // if (!string.IsNullOrEmpty(itemCfg.resLayer1))
|
|
|
- // {
|
|
|
- // UpdateLayerRes(itemCfg, parentObj, 1, needSetMask, showAni);
|
|
|
- // }
|
|
|
- // //第二层
|
|
|
- // if (!string.IsNullOrEmpty(itemCfg.resLayer2))
|
|
|
- // {
|
|
|
-
|
|
|
- // UpdateLayerRes(itemCfg, parentObj, 2, needSetMask, showAni);
|
|
|
- // }
|
|
|
- // //第三层
|
|
|
- // if (!string.IsNullOrEmpty(itemCfg.resLayer3))
|
|
|
- // {
|
|
|
-
|
|
|
- // UpdateLayerRes(itemCfg, parentObj, 3, needSetMask, showAni);
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
public static List<DressUpLayerOperation> AddItemAsync(int itemID, GameObject sceneObj, bool needSetMask = false, bool showAni = true, GameObject parentObj = null, int resLayer = 0)
|
|
|
{
|
|
|
ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
|
|
@@ -213,32 +152,6 @@ namespace GFGGame
|
|
|
return operation;
|
|
|
}
|
|
|
|
|
|
- //public static void UpdateHead(bool show, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
|
|
|
- //{
|
|
|
- // var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);
|
|
|
- // parentObj = parentObj == null ? roleTf.gameObject : parentObj;
|
|
|
- // string resPath = ResPathUtil.GetDressUpPath(HEAD_DEFAULT_RES_NAME);
|
|
|
-
|
|
|
- // Transform transform_t = parentObj.transform.Find(HEAD_SPRITE_NAME);
|
|
|
- // if (show)
|
|
|
- // {
|
|
|
- // if (transform_t != null)
|
|
|
- // {
|
|
|
- // transform_t.gameObject.SetActive(true);
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // AddSpriteObj(resPath, HEAD_SPRITE_NAME, parentObj, 1, needSetMask);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // if (transform_t == null)
|
|
|
- // {
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // transform_t.gameObject.SetActive(false);
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
public static DressUpLayerOperation UpdateHeadAsync(bool show, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
|
|
|
{
|
|
|
var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);
|
|
@@ -256,52 +169,6 @@ namespace GFGGame
|
|
|
return handler;
|
|
|
}
|
|
|
|
|
|
- //public static void UpdateBody(string actionRes, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
|
|
|
- //{
|
|
|
- // //角色
|
|
|
- // var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);
|
|
|
- // parentObj = parentObj == null ? roleTf.gameObject : parentObj;
|
|
|
-
|
|
|
- // var extPng = "png";
|
|
|
- // if (!string.IsNullOrEmpty(actionRes))
|
|
|
- // {
|
|
|
- // string resPath = ResPathUtil.GetDressUpAnimationPath(actionRes);
|
|
|
- // if (GetGameObjExisted(parentObj, BODY_ANIMATION_NAME, resPath) != null)
|
|
|
- // {
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // string resPath = ResPathUtil.GetDressUpPath(BODY_DEFAULT_RES_NAME, extPng);
|
|
|
- // if (GetGameObjExisted(parentObj, BODY_SPRITE_NAME, resPath) != null)
|
|
|
- // {
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // var removeBodyAni = TryRemoveObj(parentObj, BODY_ANIMATION_NAME);
|
|
|
- // TryRemoveObj(parentObj, BODY_EFFECT_OBJ_NAME);
|
|
|
- // TryRemoveObj(parentObj, BODY_SPRITE_NAME);
|
|
|
- // if (!string.IsNullOrEmpty(actionRes))
|
|
|
- // {
|
|
|
-
|
|
|
- // string aniResPath = ResPathUtil.GetDressUpAnimationPath(actionRes);
|
|
|
- // var addAniObj = AddAnimationObj(aniResPath, BODY_ANIMATION_NAME, parentObj, 0);
|
|
|
- // //特效
|
|
|
- // var resPath = ResPathUtil.GetDressUpEffectPath(actionRes, addAniObj != null);
|
|
|
- // TryAddEffectObj(resPath, BODY_EFFECT_OBJ_NAME, parentObj, 0);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // AddSpriteObj(ResPathUtil.GetDressUpPath(BODY_DEFAULT_RES_NAME), BODY_SPRITE_NAME, parentObj, 0, needSetMask);
|
|
|
- // if (removeBodyAni)
|
|
|
- // {
|
|
|
- // parentObj.transform.SetPositionAndRotation(new Vector3(), new Quaternion());
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
public static DressUpLayerOperation UpdateBodyAsync(string actionRes, GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
|
|
|
{
|
|
|
//角色
|
|
@@ -348,80 +215,6 @@ namespace GFGGame
|
|
|
return handler;
|
|
|
}
|
|
|
|
|
|
- //private static void UpdateLayerRes(ItemCfg itemCfg, GameObject parentObj, int layerId, bool needSetMask, bool showAni = true)
|
|
|
- //{
|
|
|
- // string res = ResPathUtil.GetDressUpItemLayerRes(itemCfg, layerId);
|
|
|
- // string resPath = ResPathUtil.GetDressUpPath(itemCfg, layerId);
|
|
|
- // int sortingOrder = ItemTypeCfgArray.Instance.GetSortingOrder(itemCfg.subType, layerId);
|
|
|
-
|
|
|
- // //清理旧的
|
|
|
- // var spritObjName = string.Format(FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
|
|
|
- // TryRemoveObj(parentObj, spritObjName);
|
|
|
- // var objName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
|
|
|
- // TryRemoveObj(parentObj, objName);
|
|
|
- // string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
|
|
|
- // GameObject spriteObj = null;
|
|
|
- // if (DressUpMenuItemCfg1Array.Instance.CheckIsDefaultType(itemCfg.subType))
|
|
|
- // {
|
|
|
- // //默认类型的部件需要先添加静态图,防止加载动画有延迟,出现光头
|
|
|
- // spriteObj = AddSpriteObj(resPath, spritObjName, parentObj, sortingOrder, needSetMask);
|
|
|
- // }
|
|
|
-
|
|
|
- // GameObject addAniObj = null;
|
|
|
- // if (showAni)
|
|
|
- // {
|
|
|
- // string aniResPath = ResPathUtil.GetDressUpAnimationPath(res);
|
|
|
- // addAniObj = AddAnimationObj(aniResPath, objName, parentObj, sortingOrder);
|
|
|
- // if (addAniObj != null && spriteObj != null)
|
|
|
- // {
|
|
|
- // var dressUpPart = addAniObj.GetComponent<DressUpPart>();
|
|
|
- // if (dressUpPart == null)
|
|
|
- // {
|
|
|
- // dressUpPart = addAniObj.AddComponent<DressUpPart>();
|
|
|
- // }
|
|
|
- // dressUpPart.OnTimer = (obj) =>
|
|
|
- // {
|
|
|
- // if (parentObj != null && parentObj.transform != null)
|
|
|
- // {
|
|
|
- // string resPath = ResPathUtil.GetDressUpPath(itemCfg, layerId);
|
|
|
- // spriteObj = GetGameObjExisted(parentObj, spritObjName, resPath);
|
|
|
- // if (spriteObj != null)
|
|
|
- // {
|
|
|
- // PrefabManager.Instance.Restore(spriteObj);
|
|
|
- // }
|
|
|
-
|
|
|
- // //Transform tf = parentObj.transform.Find(spritObjName);
|
|
|
- // //if (tf != null && tf.gameObject != null && tf.gameObject.activeInHierarchy)
|
|
|
- // //{
|
|
|
- // // var assetDisposer = tf.gameObject.GetComponent<AssetReleaser>();
|
|
|
- // // if (assetDisposer != null)
|
|
|
- // // {
|
|
|
- // // if (!string.IsNullOrEmpty(assetDisposer.resPath))
|
|
|
- // // {
|
|
|
- // // string resPath = ResPathUtil.GetDressUpPath(itemCfg, layerId);
|
|
|
- // // if (assetDisposer.resPath == resPath)
|
|
|
- // // {
|
|
|
- // // TryRemoveObj(parentObj, spritObjName);
|
|
|
- // // }
|
|
|
- // // }
|
|
|
- // // }
|
|
|
- // //}
|
|
|
- // }
|
|
|
- // };
|
|
|
- // Timers.inst.Add(0.03f, 1, dressUpPart.OnTimer);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // if (spriteObj == null && addAniObj == null)
|
|
|
- // {
|
|
|
- // //如果两个都没有,就添加静态图
|
|
|
- // spriteObj = AddSpriteObj(resPath, spritObjName, parentObj, sortingOrder, needSetMask);
|
|
|
- // }
|
|
|
- // objName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, layerId);
|
|
|
- // TryRemoveObj(parentObj, objName);
|
|
|
- // resPath = ResPathUtil.GetDressUpEffectPath(res, addAniObj != null);
|
|
|
- // TryAddEffectObj(resPath, objName, parentObj, sortingOrder);
|
|
|
- //}
|
|
|
-
|
|
|
private static DressUpLayerOperation UpdateLayerResAsync(ItemCfg itemCfg, GameObject parentObj, int layerId, bool needSetMask, bool showAni = true)
|
|
|
{
|
|
|
string res = ResPathUtil.GetDressUpItemLayerRes(itemCfg, layerId);
|
|
@@ -524,15 +317,24 @@ namespace GFGGame
|
|
|
return gameObj;
|
|
|
}
|
|
|
gameObj = PrefabManager.Instance.SpawnSync(resPath);
|
|
|
- if(gameObj == null)
|
|
|
+ if (gameObj == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
if (objName == BODY_ANIMATION_NAME)
|
|
|
{
|
|
|
+ DressUpBodyOffsetInfo dressUpBodyOffsetInfo = gameObj.GetComponent<DressUpBodyOffsetInfo>();
|
|
|
+ if(dressUpBodyOffsetInfo == null)
|
|
|
+ {
|
|
|
+ dressUpBodyOffsetInfo = gameObj.AddComponent<DressUpBodyOffsetInfo>();
|
|
|
+ dressUpBodyOffsetInfo.OffsetPosition = gameObj.transform.localPosition;
|
|
|
+ dressUpBodyOffsetInfo.Rotation = gameObj.transform.localRotation;
|
|
|
+ }
|
|
|
//如果是动作动画,就根据动画位置及角度信息设置给Role对象
|
|
|
- parentObj.transform.SetPositionAndRotation(gameObj.transform.localPosition, gameObj.transform.localRotation);
|
|
|
- gameObj.transform.SetPositionAndRotation(new Vector3(), new Quaternion());
|
|
|
+ parentObj.transform.SetPositionAndRotation(dressUpBodyOffsetInfo.OffsetPosition, dressUpBodyOffsetInfo.Rotation);
|
|
|
+ gameObj.transform.localPosition = Vector3.zero;
|
|
|
+ gameObj.transform.rotation = Quaternion.identity;
|
|
|
+ //.SetPositionAndRotation(Vector3.zero, Quaternion.identity);
|
|
|
}
|
|
|
gameObj.name = objName;
|
|
|
gameObj.transform.SetParent(parentObj.transform, false);
|
|
@@ -649,18 +451,14 @@ namespace GFGGame
|
|
|
{
|
|
|
int index = resPath.LastIndexOf('.');
|
|
|
resPath = resPath.Substring(0, index) + ".bytes";
|
|
|
- //resPath = resPath.Replace(".png", ".bytes");
|
|
|
- //resPath = resPath.Replace(".jpg", ".bytes");
|
|
|
if (YooAssets.CheckResExist(resPath))
|
|
|
{
|
|
|
- //var asset = GFGAsset.Load<TextAsset>(resPath);
|
|
|
var handle = YooAssets.LoadAssetSync<TextAsset>(resPath);
|
|
|
TextAsset asset = handle.AssetObject as TextAsset;
|
|
|
var st = new MemoryStream(asset.bytes);
|
|
|
var br = new BinaryReader(st);
|
|
|
tx = br.ReadInt32() / 100f;
|
|
|
ty = -br.ReadInt32() / 100f;
|
|
|
- //GFGAsset.Release(resPath);
|
|
|
handle.Release();
|
|
|
}
|
|
|
else
|
|
@@ -706,23 +504,6 @@ namespace GFGGame
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //public static void SetSpriteRenderSortingOrder(GameObject gameObj, int sortingOrder, bool isAdd = false)
|
|
|
- //{
|
|
|
- // SpriteRenderer[] spriteRenders = gameObj.transform.GetComponentsInChildren<SpriteRenderer>();
|
|
|
- // for (int i = 0; i < spriteRenders.Length; i++)
|
|
|
- // {
|
|
|
-
|
|
|
- // if (isAdd)
|
|
|
- // {
|
|
|
- // spriteRenders[i].sortingOrder = spriteRenders[i].sortingOrder + sortingOrder;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
-
|
|
|
- // spriteRenders[i].sortingOrder = sortingOrder;
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
}
|
|
|
|
|
|
}
|