问题描述
UI面板中使用了DOTween插件实现一个效果,在退出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在运行状态下被销毁时,Tweens对象也就完成了自己的工作,之后Tweens会被自动销毁。在Gameobject被销毁到Tweens自动销毁的这段时间内,Tweens没有立即停止工作,就会弹出如上图的警告。
(Tweens仍在工作可能存在多种情况,比如我本人是因为一些特殊需求,DOScale在Update里进行调用。当然这部分的描述可能不太严谨,我也尝试在Update中移除调用DOScale,结果并没有产生任何警告或报错。只是猜测是销毁后,Update中的dotween某些插值运算还没有真正停止。)
实际上,这个警告并不影响程序流程,但它会影响DebugConsole的美观,如果Tweens自动销毁稍晚一些,就会弹出很多很多条这样的警告。如果DOTween的Preferences中没有设置检查SafeMode,那么这个警告就会

当UI面板使用DOTween插件并被销毁时,会出现TweenStartupFailed错误。这是因为Tweens对象在GameObject销毁后还在尝试访问已被销毁的对象。虽然不影响程序运行,但会污染DebugConsole。为消除警告,应在UI关闭或销毁时手动调用DOTween.KillAll(),例如在OnDisable()方法中执行。
最低0.47元/天 解锁文章
222

被折叠的 条评论
为什么被折叠?



