求涵盖LeanTween全部操作的有效网络技术文章
LeanTween 核心操作汇总
下面整理LeanTween支持的核心操作分类及示例,覆盖UI、对象动画、数值插值、序列控制等常用场景:
UI元素动画
- 基础属性动画
- 移动UI RectTransform:
LeanTween.move(uiRectTransform, new Vector3(100, 200, 0), 0.8f).setEase(LeanTweenType.easeInOutQuad); - 缩放UI元素:
LeanTween.scale(uiImage.rectTransform, new Vector3(1.2f, 1.2f, 1), 0.5f); - 淡入淡出UI透明度:
LeanTween.alpha(uiCanvasGroup, 0, 0.3f);(适用于CanvasGroup或Image组件)
- 移动UI RectTransform:
- 文本专属动画
- 文本颜色渐变:
LeanTween.textColor(uiText, Color.red, 1f); - 逐字显示文本:
LeanTween.typewrite(uiText, "欢迎使用LeanTween", 2f);
- 文本颜色渐变:
Transform对象动画(3D/2D通用)
- 位移、旋转、缩放
- 移动对象到目标位置:
LeanTween.move(playerTransform, targetPosition, 1.2f); - 旋转对象到目标欧拉角:
LeanTween.rotate(enemyTransform, new Vector3(0, 180, 0), 0.6f); - 局部缩放动画:
LeanTween.scaleLocal(boxTransform, new Vector3(2, 2, 2), 0.4f);
- 移动对象到目标位置:
自定义数值插值
- 针对任意数值类型的缓动,通过回调实时处理结果:
- 插值float值(比如更新进度条):
LeanTween.value(gameObject, (currentVal) => { slider.value = currentVal; }, 0f, 100f, 2f); - 插值Vector3(平滑移动对象):
LeanTween.value(gameObject, (currentPos) => { transform.position = currentPos; }, transform.position, targetPos, 1.5f);
- 插值float值(比如更新进度条):
动画回调与序列控制
- 回调绑定
- 动画完成后执行逻辑:
LeanTween.move(uiPanel, targetPos, 1f).setOnComplete(() => { Debug.Log("动画执行完毕"); }); - 动画每帧更新时执行操作:
LeanTween.scale(uiButton, new Vector3(1.1f,1.1f,1), 0.3f).setOnUpdate(() => { /* 每帧触发的逻辑 */ });
- 动画完成后执行逻辑:
- 动画序列编排
按顺序执行多个动画,支持插入时间间隔:var tweenSequence = LeanTween.sequence(); tweenSequence.append(LeanTween.move(uiTitle, new Vector3(0, 50, 0), 0.6f)); tweenSequence.append(LeanTween.alpha(uiTitle, 1, 0.4f)); tweenSequence.appendInterval(0.3f); // 停顿0.3秒 tweenSequence.append(LeanTween.scale(uiTitle, new Vector3(1.1f,1.1f,1), 0.5f)); tweenSequence.play();
辅助控制方法
- 动画状态管理
- 暂停对象所有动画:
LeanTween.pause(uiPanel.gameObject); - 恢复对象所有动画:
LeanTween.resume(uiPanel.gameObject); - 取消单个动画:
var tween = LeanTween.move(uiRect, targetPos, 1f); tween.cancel();
- 暂停对象所有动画:
- 动画参数配置
- 设置缓动曲线:
.setEase(LeanTweenType.easeBounce)(支持easeInOutCubic、easeElastic等几十种预设曲线) - 循环动画:
.setLoopPingPong(3)(往返循环3次)或.setLoopClamp()(重复停留在结束值)
- 设置缓动曲线:
内容的提问来源于stack exchange,提问作者Leon Ristic
相关产品推荐
相关产品推荐

