|
@@ -41,6 +41,7 @@ namespace GFGGame
|
|
|
|
|
|
public void InitLayer(ItemCfg itemCfg, int layerId)
|
|
|
{
|
|
|
+ Debug.Log($"InitLayer {itemCfg.id}");
|
|
|
this.itemCfg = itemCfg;
|
|
|
this.layerId = layerId;
|
|
|
actionType = EAction.Layer;
|
|
@@ -48,6 +49,7 @@ namespace GFGGame
|
|
|
|
|
|
public void InitBody()
|
|
|
{
|
|
|
+ Debug.Log("InitBody");
|
|
|
actionType = EAction.Body;
|
|
|
}
|
|
|
|
|
@@ -55,11 +57,29 @@ namespace GFGGame
|
|
|
{
|
|
|
actionType = EAction.Head;
|
|
|
}
|
|
|
+ internal override bool CheckRepeated(DressUpOperationBase t)
|
|
|
+ {
|
|
|
+ var operation = t as DressUpLayerOperation;
|
|
|
+ if (operation != null && operation.actionType == this.actionType)
|
|
|
+ {
|
|
|
+ if(actionType == EAction.Layer)
|
|
|
+ {
|
|
|
+ return (operation.parentObj == this.parentObj
|
|
|
+ && operation.itemCfg == this.itemCfg
|
|
|
+ && operation.layerId == this.layerId);
|
|
|
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
/// <summary>
|
|
|
/// 取消下载
|
|
|
/// </summary>
|
|
|
- public void Cancel()
|
|
|
+ internal override void Cancel()
|
|
|
{
|
|
|
if (_steps != EDressUpSteps.Done)
|
|
|
{
|
|
@@ -68,20 +88,20 @@ namespace GFGGame
|
|
|
downloaderOperation.CancelDownload();
|
|
|
}
|
|
|
_steps = EDressUpSteps.Done;
|
|
|
- Status = EOperationStatus.Failed;
|
|
|
- Error = "User cancel.";
|
|
|
}
|
|
|
+ Status = EOperationStatus.Failed;
|
|
|
+ Error = "User cancel.";
|
|
|
}
|
|
|
|
|
|
internal override void UpdateView()
|
|
|
{
|
|
|
- ViewManager.Hide<ModalStatusView>();
|
|
|
- foreach (var t in preloadList)
|
|
|
+ if (parentObj == null)
|
|
|
{
|
|
|
- Live2dAnimationManager.Instance.FinishPreDrawed(t);
|
|
|
+ this.Release();
|
|
|
+ return;
|
|
|
}
|
|
|
- preloadList.Clear();
|
|
|
- preloadList = null;
|
|
|
+ ViewManager.Hide<ModalStatusView>();
|
|
|
+ TryFinishPreDraw();
|
|
|
|
|
|
switch (actionType)
|
|
|
{
|
|
@@ -101,11 +121,10 @@ namespace GFGGame
|
|
|
|
|
|
internal override void Release()
|
|
|
{
|
|
|
+ TryFinishPreDraw();
|
|
|
downloaderOperation = null;
|
|
|
this.itemCfg = null;
|
|
|
this.parentObj = null;
|
|
|
- preloadList?.Clear();
|
|
|
- preloadList = null;
|
|
|
}
|
|
|
|
|
|
internal override void Start()
|
|
@@ -140,7 +159,7 @@ namespace GFGGame
|
|
|
}
|
|
|
if(_steps == EDressUpSteps.PreDrawing)
|
|
|
{
|
|
|
- Debug.Log($"preRendering {preRendering} {resPath} {TimeHelper.ClientNow()}");
|
|
|
+ //Debug.Log($"preRendering {preRendering} {resPath} {TimeHelper.ClientNow()}");
|
|
|
if(preRendering <= 0)
|
|
|
{
|
|
|
_steps = EDressUpSteps.Done;
|
|
@@ -195,7 +214,7 @@ namespace GFGGame
|
|
|
//预渲染
|
|
|
var t = Live2dAnimationManager.Instance.PreDraw(resPath);
|
|
|
preloadList.Add(t);
|
|
|
- Debug.Log($"PreDraw {resPath} {TimeHelper.ClientNow()}");
|
|
|
+ //Debug.Log($"PreDraw {resPath} {TimeHelper.ClientNow()}");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -203,11 +222,26 @@ namespace GFGGame
|
|
|
Status = EOperationStatus.Succeed;
|
|
|
}
|
|
|
|
|
|
+ private void TryFinishPreDraw()
|
|
|
+ {
|
|
|
+ if(preloadList == null)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ foreach (var t in preloadList)
|
|
|
+ {
|
|
|
+ Live2dAnimationManager.Instance.FinishPreDrawed(t);
|
|
|
+ }
|
|
|
+ preloadList.Clear();
|
|
|
+ preloadList = null;
|
|
|
+ }
|
|
|
+
|
|
|
private void UpdateLayer()
|
|
|
{
|
|
|
+ Debug.Log($"UpdateLayer add {itemCfg.id}");
|
|
|
//清理旧的
|
|
|
var spritObjName = string.Format(DressUpUtil.FORMAT_SPRITE_NAME, itemCfg.subType, layerId);
|
|
|
- DressUpUtil.TryRemoveObj(parentObj, spritObjName);
|
|
|
+ DressUpUtil.TryRemoveSprite(parentObj, spritObjName);
|
|
|
var aniObjName = string.Format(DressUpUtil.FORMAT_ANIMATION_NAME, itemCfg.subType, layerId);
|
|
|
DressUpUtil.TryRemoveObj(parentObj, aniObjName);
|
|
|
string effectObjName = string.Format(DressUpUtil.FORMAT_EFFECT_OBJ_NAME, itemCfg.subType, layerId);
|
|
@@ -237,7 +271,7 @@ namespace GFGGame
|
|
|
int sortingOrder = 0;
|
|
|
var removeBodyAni = DressUpUtil.TryRemoveObj(parentObj, aniObjName);
|
|
|
DressUpUtil.TryRemoveObj(parentObj, effectObjName);
|
|
|
- DressUpUtil.TryRemoveObj(parentObj, spritObjName);
|
|
|
+ DressUpUtil.TryRemoveSprite(parentObj, spritObjName);
|
|
|
if (this.showAni)
|
|
|
{
|
|
|
DressUpUtil.AddAnimationObj(this.resPath, aniObjName, parentObj, sortingOrder);
|