unity 里 DOTweentimeScale = 0 后Tweener的回调正常触发但Sequence 的回调不被触发如何解决
在Unity中,当你将DOTween.timeScale设置为0时,Tweeners的回调仍然会触发,但是Sequences的回调不会被触发。这是因为DOTween.timeScale是控制整个DOTween引擎的时间缩放,而Sequences是基于Tweeners的组合动画,所以它们的回调受到DOTween.timeScale的影响。
如果你想要在DOTween.timeScale为0时,Sequences的回调仍然被触发,可以使用DOTween的SetUpdate方法来设置Sequence的更新模式为UpdateType.Normal,而不是默认的UpdateType.Fixed。
下面是一个示例代码:
// 创建一个Sequence
Sequence sequence = DOTween.Sequence();
// 向Sequence中添加Tweeners或其他Sequences
// 设置Sequence的回调
sequence.OnComplete(() =>
{
Debug.Log("Sequence Complete");
});
// 设置Sequence的更新模式为Normal
sequence.SetUpdate(UpdateType.Normal);
// 暂停DOTween引擎
DOTween.timeScale = 0;
通过将Sequence的更新模式设置为UpdateType.Normal,即使DOTween.timeScale为0,Sequence的回调仍然会被触发。
原文地址: https://www.cveoy.top/t/topic/i5Zf 著作权归作者所有。请勿转载和采集!