C# 终止当前的DoTween序列

C# 终止当前的DoTween序列,c#,unity3d,dotween,C#,Unity3d,Dotween,我试着运行一个DoTween,它运行得很好,但当我想停止它时,它一点也不停止,它一直运行到结束。我正在使用DoTween序列来杀死它,但不知何故它不起作用。问题是什么 public float prevValue = 0; Sequence mySequence = DOTween.Sequence (); private void Update () { UpdateSlider (); if (Input.GetKeyDown (KeyCode.T)

我试着运行一个DoTween,它运行得很好,但当我想停止它时,它一点也不停止,它一直运行到结束。我正在使用DoTween序列来杀死它,但不知何故它不起作用。问题是什么

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 ();
    }


除了代码使用未声明的变量(如ShouldLerp)和按“T”时调用与摘录中所示不同的方法之外,我假设您的LerpToThis调用也使用DOTween.To进行,但当你试图停止吐温时,你称之为mySequence.Kill,即使这个序列不是吐温的原因。这就是为什么这两个孩子没有停止


根据DOTween.Call的结果调用Kill,或者给它一个Id,然后调用DOTween.Killid。

frankhermes已经说了所有这些,我只是在详细说明解决方案:

在LerpToValue方法中,您可以使用线创建一个Tween

DOTween.To(() => myValue , x => prevValue = x, newValue, DurationFading);
方法DOTween.To确实返回一个类型为Tween的对象,您可以对其调用Kill,即首先向类添加一个声明

private Tween myTween;
然后,当您在LerpToValue中创建吐温时,将其存储

最后,在KillSequence中,您将要重命名它,因为,正如frank提到的,您调用的序列没有使用

myTween.Kill();

您可以完全摆脱DOTween.序列。

正如@frankhermes所提到的:清理您的代码,似乎ShouldLerp_uu和durationfalling没有声明。最好添加整个类声明,并确保您的示例实际上是一段可编译的代码,以便人们能够帮助您。@i谢谢,我已经清除了它并删除了所有非依赖项。
myTween.Kill();