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

Unity中如何用DOTween让Tweener通过OnUpdate和ChangeEndValue实现固定时间跟随

需求

让物体1在固定时间内跟随物体2,当物体2反向移动时,物体1需提速以维持总移动时长固定。

问题1:代码无效果,obj1未发生移动

使用以下代码时,物体1完全没有移动:

var tweener = obj1.transform.DOMove(obj2.transform.position, 5f);
tweener.OnUpdate(() => {
    tweener.ChangeEndValue(obj2.transform.position);
});

问题2:物体1移动但速度递减,永远无法到达目标

使用以下代码时,物体1虽能跟随物体2移动,但速度逐渐降低,永远无法到达目标位置。推测是调用ChangeValues时将时长重置为了初始的5秒:

var tweener = obj1.transform.DOMove(obj2.transform.position, 5f);
tweener.OnUpdate(() => {
    tweener.ChangeValues(obj1.transform.position, obj2.transform.position);
});

潜在可行方案(缺少API支持)

如果能获取tweener的剩余时长,以下代码应该可以正常工作,但目前未在文档中找到获取剩余时长的方法:

var tweener = obj1.transform.DOMove(obj2.transform.position, 5f);
tweener.OnUpdate(() => {
    tweener.ChangeEndValue(obj2.transform.position);
    tweener.ChangeValues(obj1.transform.position, obj2.transform.position, newDuration: tweener.currentRemainingDuration);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:59:59