如何在FlowEnt中创建流以实现多对象同步异缓动的位移旋转效果
FlowEnt 多对象同步动效实现方案
核心实现逻辑是利用FlowEnt中同一Flow层级下的所有Tween默认并行执行的特性,只需要给不同对象的动画配置相同时长、分别设置各自的缓动参数即可实现需求。
实现步骤
- 首先确保项目中已正确集成FlowEnt库,导入所需命名空间
- 在脚本中声明你需要控制的两个目标对象的引用,可直接在Inspector面板赋值
- 创建Flow实例,在同一调用层级下分别为两个对象配置位移、旋转动画,单独设置缓动参数后启动Flow即可
完整代码示例
using FlowEnt; using UnityEngine; public class SyncDualObjectTween : MonoBehaviour { public Transform targetObject1; public Transform targetObject2; private void Start() { new Flow() // 配置第一个对象的动效 .For(targetObject1) // 位移动画:时长1.5秒,缓动为EaseInOutCubic .Tween(1.5f).Move(new Vector3(3f, 1f, 0f)).SetEasing(Easing.EaseInOutCubic) // 旋转动画:时长1.5秒,缓动为EaseOutBounce .Tween(1.5f).Rotate(new Vector3(0f, 180f, 0f)).SetEasing(Easing.EaseOutBounce) // 配置第二个对象的动效,和第一个对象的动效同层级,自动同步执行 .For(targetObject2) // 位移动画:时长1.5秒,缓动为EaseOutElastic .Tween(1.5f).Move(new Vector3(-3f, 1f, 0f)).SetEasing(Easing.EaseOutElastic) // 旋转动画:时长1.5秒,缓动为EaseInOutSine .Tween(1.5f).Rotate(new Vector3(0f, -180f, 0f)).SetEasing(Easing.EaseInOutSine) // 启动流 .Start(); } }
注意事项
- 要保证两个对象的动效完全同步,需要将所有并行执行的Tween的时长设为相同值,示例中统一使用1.5秒,可根据需求自行调整
- 每个Tween后单独调用
SetEasing()方法即可为当前动画设置独立的缓动效果,不会影响其他动画的配置- 如果需要在所有同步动画执行完成后触发后续逻辑,可在Flow的链式调用末尾添加
.OnComplete(() => { /* 你的后续逻辑 */ })即可
内容的提问来源于stack exchange,提问作者Daniel Tranca
相关产品推荐
相关产品推荐

