标签: dotween

如何使用带有DOTween的缓动功能为Unity Time.timeScale设置动画?

我正在尝试Time.timescale使用DOTween的缓动功能制作动画。

补间值本身似乎有效:

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

但是文档中提到的所有SetX()方法在返回的对象上均不可用,尽管我发现可以设置该timeScale属性,但似乎没有任何方法可以使用缓动函数来进行补间。

我想念什么?

unity-game-engine dotween

3
推荐指数
1
解决办法
4371
查看次数

如何在运行时为补间动画更改endValueString?

我正在使用Unity商店中的DOTween pro资产以及textmeshpro.附件是显示我的设置的屏幕截图:

在此输入图像描述

我的场景中收藏品很少; 我希望每次收集项目时能够使用不同的文本运行动画.

以下是我的代码片段:

DOTweenAnimation[] animations = pickUpTexts.GetComponents<DOTweenAnimation>();
for(int i=0;i< animations.Length; i++)
{
    Debug.Log("animations " + animations[0].animationType);
    if (animations[i].animationType == DOTweenAnimationType.Text)
    {
        textAnimation = animations[i];
    }
    if (animations[i].animationType == DOTweenAnimationType.Move)
    {
        moveAnimation = animations[i];
    }
}
Run Code Online (Sandbox Code Playgroud)

以后收集项目时,我称之为:

textAnimation.endValueString = "New pick up collected, blah blah";
//textAnimation.DOPlay();
textAnimation.DORestart();
Run Code Online (Sandbox Code Playgroud)

基本上,我正在尝试更改endValueString动画并使用新值重新运行动画.收集拾取后,我可以endValueString在检查器中看到正在更新,但补间仍在播放(或不播放)相同的旧值.显示更新的屏幕截图如下所示: 在此输入图像描述

我尝试使用重新启动/播放更改,关闭组件的自动杀戮选项,尝试更改检查器中的循环计数器,尝试使用textAnimation.DORestart(true)但似乎没有任何工作.

到目前为止我找到的解决方案是不使用动画组件,因为它不可重复使用,只需在我的脚本中使用以下行:

pickUpTexts.GetComponent<TextMeshProUGUI>().DOText("New pick up collected, blah blah", 1f, true).SetRelative(true)
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine dotween

3
推荐指数
1
解决办法
1154
查看次数

如何在 Unity3d 中杀死当前正在运行的 DoTween 序列?

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

DOTween.Kill (this); 或 DOTween.Kill(转换);或 DOTween.Rewind api 都不能杀死它。

c# unity-game-engine dotween

2
推荐指数
2
解决办法
3万
查看次数

C#中的内联功能块

使用Unity的dotween库:http://dotween.demigiant.com/documentation.php

并在C#上生锈...

有没有办法将函数内联指定为.OnComplete的参数,以便我们不必在单独的函数中切断一系列动作?

即我想在ObjC中使用称为块的功能,但在C#中.

啰嗦一种不直观的方式:

void myCallback () {
   // do more stuff here
}
void mysequence() {
    transform.DOMoveX(4, 1).OnComplete(myCallback);
}
Run Code Online (Sandbox Code Playgroud)

我想做的更容易阅读和保持原则:

void mysequence() {
    transform.DOMoveX(4, 1).OnComplete({
        // do more stuff here
    });
}
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine objective-c-blocks dotween

1
推荐指数
2
解决办法
4249
查看次数

DOTween 在 Unity C# 中不可用

我现在正在处理 Unity 项目,并且 VSCode 中出现错误消息。

“Transform”不包含“DOMove”的定义,并且最佳扩展方法重载“DOTweenModulePhysics2D.DOMove(Rigidbody2D, Vector2, float, bool)”需要“Rigidbody2D”类型的接收器

using DG.Tweening;
using UnityEngine;

public class Mover : MonoBehaviour
{
    void Start()
    {
        this.gameObject.transform.DOMove(new Vector3(1,2,3), 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在 VSCode 中键入 DOMove 时,该方法的自动完成功能不会显示。我尝试将 Demigiant 文件夹从插件移动到主资源目录中,然后将其移回并重新启动 Unity,但我仍然遇到相同的错误...

c# package unity-game-engine dotween

1
推荐指数
1
解决办法
8364
查看次数

下一个追加之前的Unity dotween延迟不起作用

我有数据列表,我想按顺序对其进行补间。如果我对每个补间都放一个延迟,它将不起作用。我试图实现的是在下一个序列之前插入延迟。

private IEnumerator<float> _CameraTransition()
{
    var camSequence = DOTween.Sequence();

    for (int i = 0; i < CamerasData.Count; i++)
        camSequence.Append(cam.DOFieldOfView(CamerasData[i].fov, CamerasData[i].duration).SetDelay(CamerasData[i].triggerDelay));

    camSequence.Play();
    yield return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我删除SetDelay它可以正常工作,但是当然不会延迟

unity-game-engine dotween

0
推荐指数
1
解决办法
2762
查看次数