首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您是如何使用Time.timeScale的宽松功能来激活统一DOTween的?

您是如何使用Time.timeScale的宽松功能来激活统一DOTween的?
EN

Stack Overflow用户
提问于 2015-09-22 02:14:23
回答 2查看 7.9K关注 0票数 4

我正试图用一个使用Time.timescale的宽松函数来动画DOTween。

推特价值本身似乎是可行的:

DG.Tweening.DOTween.To(value => Time.timeScale = value, 1, 0, 0.4f);

但是文档中提到的所有SetX()方法在返回的对象上都不可用,而且当我发现可以设置timeScale属性时,似乎没有任何方法可以使用缓和函数。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-22 21:46:39

弄明白了:

不幸的是,似乎所有SetX()方法在DOTween中都是作为扩展方法实现的。这意味着,如果您试图通过指定完整类型(而不是包含名称空间)来使用DOTween,则这些方法根本不可用。

这样做是可行的:

代码语言:javascript
复制
using DG.Tweening;
///
DOTween.To(()=> Time.timeScale, x=> Time.timeScale = x, 2, 0.4f).SetEase(Ease.InQuad).SetUpdate(true);

这会使不工作

代码语言:javascript
复制
DG.Tweening.DOTween.To(()=> Time.timeScale, x=> Time.timeScale = x, 2, 0.4f).SetEase(DG.Tweening.Ease.InQuad).SetUpdate(true);
票数 6
EN

Stack Overflow用户

发布于 2015-09-22 05:44:56

在我看来,你想要暂停执行,慢慢地放慢时间,而不是立即停止,你想要使用一种放松的方法。

要在DOTween上设置轻松,只需通过如下链接添加轻松方法调用:

代码语言:javascript
复制
DG.Tweening.DOTween.To(value => Time.timeScale = value, 1, 0, 0.4f).SetEase(Ease.InCubic));

像这样将更多的方法链接在一起,这将在每次更新调用上运行Debug.Log:

代码语言:javascript
复制
DG.Tweening.DOTween.To(value => Time.timeScale = value, 1, 0, 0.4f).OnUpdate(()=>{ Debug.Log(Time.timeScale); }).SetEase(Ease.InCubic);

运行此代码表明,Time.timeScale实际上没有达到零,这可能是由于浮点精度错误造成的;但是,使用OnUpdate链方法,一旦Time.timeScale足够接近,就可以将其分配为零:

代码语言:javascript
复制
DG.Tweening.DOTween.To(value => Time.timeScale = value, 1, 0, 0.4f).OnUpdate(()=>{ if (Time.timeScale < 0.001f) Time.timeScale = 0; }).SetEase(Ease.InCubic);

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32707355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档