首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Unity3d中删除当前运行的DoTween序列?

如何在Unity3d中删除当前运行的DoTween序列?
EN

Stack Overflow用户
提问于 2016-05-14 00:08:10
回答 3查看 30.8K关注 0票数 2

DOTween.Kill接口返回实际杀死补间的个数。但是使用这个api不能杀死transform的序列补间。

DOTween.Kill (这);或者DOTween.Kill (transform);或者DOTween.Rewind api都不能杀死它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-14 17:54:02

这是因为您正在尝试使用DoTween类本身。相反,您应该使用对序列的引用来终止它。

下面的代码

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

//Your code here  
mySequence.Append(transform.DoMove(Vector3.right, 1).SetLoops(2, LoopType.Yoyo))  
.Append(transform.DoMove(Vector3.up, 1).SetLoops(2, LoopType.Yoyo))  
.OnComplete(() => {  
    Debug.Log("Done");
});

mySequence.Kill(); //Kill the sequence.
票数 9
EN

Stack Overflow用户

发布于 2017-08-22 16:33:10

在我的例子中,sequence.Kill()不起作用,所以我尝试了Dotween.Kill(object targetOrId),它起作用了,也许你可以试一试。

票数 4
EN

Stack Overflow用户

发布于 2021-11-10 10:06:24

在我的例子中,对序列的引用丢失了,因此mySequence.Kill();无法找到并终止该序列。

发生这种情况的原因是,我反复调用从代码的两个不同部分播放mySequence的方法(这没有明显的视觉副作用,所以直到我调试时才注意到),但我只杀死了最后一个序列。

因此,事件的顺序是:

使用

  1. mySequence = sequence创建一个序列,通过再次调用同一行创建另一个序列。这导致之前的mySequence引用对类来说被“覆盖”、“丢失”或“未知”。
  2. 调用mySequence.Kill();(这会杀死在2中创建的mySequence )在1中创建的
  3. mySequence现在就像僵尸一样。没有什么能找到它并杀死它。

如果这是一个常规的补间,一种“核心”的修复方法是调用DOTween.KillAll();但据我所知,它在序列上不起作用,而且它会杀死每一个补间,这可能不是你想要的。

因此有两种选择:

在终止之前,

  1. 确保你只创建一个mySequence。在杀死它之后,您可以创建另一个同名的文件。此方法有效,但存在多次错误调用同一创建方法的风险。

  1. 确保场景中同时有一个mySequence。使用单例模式的方法可以做到这一点。

私有Sequence sequence;private Guid uid;private void StartScalingAnimation() { if (sequence == null) //如果之前没有创建,则仅创建。{ sequence = DOTween.Sequence();sequence.Append(transform.DOScale( Vector2(1.1f,1.1f),1)).SetLoops(-1,LoopType.Yoyo);Debug.Log("sequence id is:“+ sequence.id);//如果你的序列在创建时获得了一个id,你可以缓存它并在以后用这个id杀死它。在我的例子中,一开始没有//自动给出id,所以我创建了一个。uid = System.Guid.NewGuid();sequence.id = uid;Debug.Log("sequence id now:“+ sequence.id);} sequence.Play();} private void StopScalingAnimation() { DOTween.Kill(uid);sequence = null;}

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

https://stackoverflow.com/questions/37214649

复制
相关文章

相似问题

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