最近工作中遇到了一个问题
NGUI的Tween动画完成 回调函数 偶尔不执行
偶现Bug 今天我仔细看了下代码发现
TweenPosition tempTween = varTar.GetComponent<TweenPosition>();
if (tempTween == null)
{
Debuger.LogError("MainUITaskAward: Play() tempTween == null");
return;
}
tempTween.ResetToBeginning();
tempTween.PlayForward(); EventDelegate.Callback del = delegate ()
{
if (tempTween != null)
{
Destroy(tempTween.gameObject);
}
}; tempTween.SetOnFinished(del);
我是先执行的PlayForwar() 后SetFinished()
在程序卡的时候就会出现已经完成了动画 但是没有回调
修改后
TweenPosition tempTween = varTar.GetComponent<TweenPosition>();
if (tempTween == null)
{
Debuger.LogError("MainUITaskAward: Play() tempTween == null");
return;
} EventDelegate.Callback del = delegate ()
{
if (tempTween != null)
{
Destroy(tempTween.gameObject);
}
}; tempTween.SetOnFinished(del); tempTween.ResetToBeginning();
tempTween.PlayForward();