1.暫停動畫的問題
使用DOTween.PauseAll();
出現了有的對象暫停了,有的對象沒有暫停的bug
使用 DOTween.timeScale = 0;代替
2.委託內的變量問題
成百上千個物體放在List列表裏面循環,每個物體都要使用移動和移動結束事件。
BUG:
動畫結束之後我想隱藏該物體,結果卻沒有正常的隱藏,代碼如下
foreach (var item in lists)
{
if (item != null)
{
item .transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() =>
{
item .gameObject.SetActive(false);
});
}
}
產生的表現:
這個List的最後一個item纔會被正常的隱藏。
原因:匿名委託中使用的item指向了lists的最後一個item
解決辦法:
將Item的引用緩存起來,代碼如下
foreach (var item in lists)
{
if (item != null)
{
var go = item;
go.transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() =>
{
go.gameObject.SetActive(false);
});
}
}