首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀死当前的DoTween序列

杀死当前的DoTween序列
EN

Stack Overflow用户
提问于 2021-03-19 12:47:05
回答 2查看 3.2K关注 0票数 0

我正在尝试运行一个DoTween,它运行得很好,但是当我想要停止它时,它一点也不停止,它一直运行到它完成为止。我正在使用DoTween序列来杀死它,但不知怎么的,它不起作用。有什么问题吗?

代码语言:javascript
复制
public float prevValue = 0;
Sequence mySequence = DOTween.Sequence ();

    private void Update () {
        UpdateSlider ();
        if (Input.GetKeyDown (KeyCode.T)) {
            LerpToThis (90);
        } else if (Input.GetKeyDown (KeyCode.Z)) {
            KillSequence ();

        }
    }

 public void LerpToValue (float newValue) {
        float myValue = prevValue;

            DOTween.To (() => myValue , x => prevValue = x, newValue, 3.0f);

    }

    public void KillSequence () {
        mySequence.Kill ();
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-19 13:47:07

除了代码使用未声明的变量(如ShouldLerp_)和按'T‘时调用的方法与摘录中显示的不同之外,我将假设您的LerpToThis调用也使用DOTween.To,但是当您试图停止thing时,您调用mySequence.Kill(),即使这个序列不是要做的事情。所以这就是为什么吐温没有停止。

根据Kill()调用的结果调用DOTween.To(),或者在Id之间给出Id,然后调用DOTween.Kill(id)

票数 3
EN

Stack Overflow用户

发布于 2021-03-21 16:38:21

弗兰克墨斯已经说了这一切,我只是在阐述一下解决办法:

LerpToValue方法中,使用行创建一个吐温

代码语言:javascript
复制
DOTween.To(() => myValue , x => prevValue = x, newValue, DurationFading);

方法DOTween.To确实返回一个类型为Tween的对象,您可以在该对象上调用Kill,即首先向类添加一个声明。

代码语言:javascript
复制
private Tween myTween;

然后,当您在LerpToValue中创建它时,存储它。

代码语言:javascript
复制
myTween = DOTween.To (() => myValue , x => prevValue = x, newValue, DurationFading);

最后,在KillSequence (您想重命名它,因为正如弗兰克提到的,没有使用序列)中,您调用

代码语言:javascript
复制
myTween.Kill();

您可以完全摆脱DOTween.Sequence ()

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

https://stackoverflow.com/questions/66708473

复制
相关文章

相似问题

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