报错 DOTWEEN ► Tween startup failed (NULL target/property - ): the tween will now be killed...的解决办法

问题描述

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关闭或销毁时,进行手动销毁Tweens。比如OnDIsable() 或 OnDestroy() 中调用 DOTween.KillAll() 方法。如

private void OnDisable()
{
   DOTween.KillAll();
}

这篇笔记是我在搜索解决办法时,看到的一位日本大佬的QA,感谢有道翻译。
原文地址:DOTWEEN ► Tween startup failed (NULL target/property - ): the tween will now be killed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明天不吃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值