問題描述
UI面板中使用了DOTween插件實現(xiàn)一個效果,在退出UI時消耗了UI面板,此時產生報錯。
DOTWEEN ? Tween startup failed (NULL target/property - ): the tween will now be killed ? The object of type ‘RectTransform’ has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
報錯如下圖
錯誤分析及解決辦法
結合這段錯描述,我在調用DOScale()
方法時,產生了Tweens對象,當Ui的GameObject在運行狀態(tài)下被銷毀時,Tweens對象也就完成了自己的工作,之后Tweens會被自動銷毀。在Gameobject被銷毀到Tweens自動銷毀的這段時間內,Tweens沒有立即停止工作,就會彈出如上圖的警告。
(Tweens仍在工作可能存在多種情況,比如我本人是因為一些特殊需求,DOScale在Update里進行調用。當然這部分的描述可能不太嚴謹,我也嘗試在Update中移除調用DOScale,結果并沒有產生任何警告或報錯。只是猜測是銷毀后,Update中的dotween某些插值運算還沒有真正停止。)
實際上,這個警告并不影響程序流程,但它會影響DebugConsole的美觀,如果Tweens自動銷毀稍晚一些,就會彈出很多很多條這樣的警告。如果DOTween的Preferences中沒有設置檢查SafeMode,那么這個警告就會變成錯誤。
綜上所述,需要關閉該警告,好的做法需要在Ui關閉或銷毀時,進行手動銷毀Tweens。比如OnDIsable() 或 OnDestroy() 中調用 DOTween.KillAll()
方法。如文章來源:http://www.zghlxwxcb.cn/news/detail-662201.html
private void OnDisable()
{
DOTween.KillAll();
}
這篇筆記是我在搜索解決辦法時,看到的一位日本大佬的QA,感謝有道翻譯。
原文地址:DOTWEEN ? Tween startup failed (NULL target/property - ): the tween will now be killed文章來源地址http://www.zghlxwxcb.cn/news/detail-662201.html
到了這里,關于報錯 DOTWEEN ? Tween startup failed (NULL target/property - ): the tween will now be killed...的解決辦法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!