2018正版葡京赌侠诗DoTween NGUI bug

屡次动画片导致UIPepsi-Cola丢失

DOTween动画举办日常和UICoca Cola有争论,DOTween多次重复同一个动画片时,UI可口可乐会莫名的遗失

UI七喜动画代码

CUIManager.Instance.OpenWindow(newCmd.UIName, newCmd.Args);
CUIManager.Instance.CallUI(newCmd.UIName, (ui, _args) =>
{
    CUIMask.Show(CUIMaskType.TransparentMask);  // 确保遮罩
    ui.transform.DOKill();
    ui.transform.DOLocalMoveFrom(ui.transform.localPosition + new Vector3(MOVE_ANIM_OFFSET, 0), UI_ANIM_TIME)
        //.SetEase(DG.Tweening.Ease.OutBack)
        .onComplete = CUIMask.Hide;

});

冲表现

DOTween的卡通举办经常,UI可口可乐会莫名地不见了

2018正版葡京赌侠诗 1

UISPrite解决办法

CUIManager.Instance.OpenWindow(newCmd.UIName, newCmd.Args);//打开窗口
        CUIManager.Instance.CallUI(newCmd.UIName, (ui, _args) =>
        {
            ui.transform.DOKill();
            var lastPos = ui.transform.localPosition;
            ui.transform.localPosition = ui.transform.localPosition + new Vector3(MOVE_ANIM_OFFSET, 0);
            var tweener = ui.transform.DOLocalMove(lastPos, UI_ANIM_TIME);

            tweener.OnComplete(CUIMask.Hide);

            // Fix: DOTween 与UISprite有一个冲突,DOTween进行时UISprite会莫名的丢失...强制DOTween进行中刷新uisprite
            tweener.OnUpdate(() =>
            {
                foreach (UISprite sprite in ui.GetComponentsInChildren<UISprite>())
                {
                    sprite.MarkAsChanged();

                }
            });

        });

在tweener的update函数中,让UISprite 执行rebuilt

一再卡通导致UILabel丢失

DOTween
和UILabel也起相同的闯,解决办法,同地点一样。

反复动画片导致UIPanel(Soft Clip)内容不见

当dotween的卡通片与Clipping为soft clip的UIPanel一起时,也暴发上述的bug

2018正版葡京赌侠诗 2

UIPanel解决措施

启用再夺panel

//dotween 和soft clip panel 有bug
public static void FixDotween_PanelsWrong (UIPanel[] panels)
{
    foreach (var panel in panels)
    {
        if (panel.clipping == UIDrawCall.Clipping.SoftClip)
        {
            panel.enabled = false;
            panel.enabled = true;
        }
    }
}

//使用
ui.Contain.DOLocalMove(endPos, UIAnimationTime)
.SetEase(ShowEaseFunc)
.OnComplete(() => FixDotween_PanelsWrong(panels));//fix bug

相关文章