You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DOTween对float值实现InOut缓动效果?

DOTween实现Forward值0-1区间InOut缓动

核心修改逻辑

  • 移除原示例中所有和立方体移动、旋转、材质变色相关的冗余逻辑
  • 使用DOTween内置的DOTween.To方法直接对目标浮点值做补间,补间过程中实时同步更新Animator的Forward参数
  • 保留原示例的延迟启动、无限往返循环逻辑,缓动曲线使用InOut类缓动
  • 修复原代码中valueToLerp变量未声明类型的语法错误

完整实现代码

using UnityEngine;
using System.Collections;
using DG.Tweening;

public class ForwardValueTween : MonoBehaviour
{
    public float duration = 4;
    public Animator anim;

    private float valueToLerp = 0f;

    IEnumerator Start()
    {
        // 延迟1秒启动,避开编辑器进入Play模式初始卡顿
        yield return new WaitForSeconds(1);

        // 执行0到1区间的InOutQuad缓动
        DOTween.To(
            () => valueToLerp,
            newVal => 
            {
                valueToLerp = newVal;
                anim.SetFloat("Forward", valueToLerp);
            },
            1f, 
            duration
        )
        .SetEase(Ease.InOutQuad)
        // 设置为无限往返循环,不需要循环可删除该行
        .SetLoops(-1, LoopType.Yoyo);
    }
}

可选调整项

  • 若只需要单次从0到1的缓动,直接删除.SetLoops(-1, LoopType.Yoyo)代码即可
  • 可替换Ease.InOutQuad为其他InOut类型缓动枚举值,比如Ease.InOutCubic、Ease.InOutSine,匹配你需要的缓动手感
  • 调整duration字段值即可修改单次缓动的时长

内容的提问来源于stack exchange,提问作者Daniel Lip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:18:35