關於Dotween被誤殺(表現是沒播放完卡住)的問題

最近查看同事一個飄字卡住問題,飄字的動畫用dotween實現

飄字卡住的唯一原因是被誤殺

唯一調試方法就是的OnKill回調添加打印和OnComplete回調添加打印,

結果發現動畫還沒播放完這是被殺了,關鍵這個誤殺不是飄字裏面,而是其他模塊調用了kill觸發的

 

例如:

actionSequence = DOTween.Sequence();我用這個做飄字

另外一個模塊也聲明

        if (null != quence)

            quence.Kill();

        quence = DOTween.Sequence();

然後這個quence.Kill();會把飄字的動畫給殺了

結果不止這個包括所有dotween返回的tweener做kill會出現誤殺的情況

爲什麼存起來的tween kill有問題

這個關於設定問題,我們初始化設定dotween是有回收功能,有可能其他動畫的tween就是存起來的tween,如果執行kill可能把其他動畫殺掉,就會出現卡住問題

這時候要我們看看dotween的接口了

看到了第一個參數就是回收

看看下面參數說明

解決方法

1.存起來的tween可以根據onkill來賦值null,然後判斷存起的tween是否爲null來進行kill

2.把tweener存起來kill有問題,只能用setid和killid來實現

使用如下圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章