各位 Cocos 开发者好~
最近在做一个 UI 入场动画 的功能时遇到了个小问题,想请教下大家的解决方案:
一、我的使用场景
我需要做一个 “节点入场时自动调整 size” 的动画,用了 预制体 来复用这个带动画的节点 —— 因为业务里这个预制体是根据不同数据动态生成的,实例化后它的初始 size 是不固定的:有时候是很小的 0.1(做小图标动画),有时候是 100 + 的常规 UI 尺寸。
二、当前已完成的操作
- 给预制体节点添加了
Animation组件,创建了动画剪辑; - 在 Animation 编辑器中,绑定了节点的
size属性,设置了关键帧:比如 “第 0 帧 size=100,第 0.5 帧 size=150”(想实现 “增加 50” 的效果); - 把预制体挂到场景中,在代码里动态设置 size 后实例化。
三、遇到的核心问题
Animation 编辑器里的 size 关键帧是 绝对数值 ——
- 当预制体实例化后的初始 size 是 100 时,动画能正常从 100→150;
- 但当预制体初始 size 是 0.1 时,动画会直接从 0.1 跳到 100(关键帧起始值)再到 150,完全偏离了 “在初始 size 基础上增加 50” 的预期。
四、尝试过的操作(均未解决)
- 手动修改动画关键帧的起始值:但预制体 size 是动态的,每次实例化都改关键帧不现实;
- 查找 Animation 编辑器的 “相对模式” 配置:翻了动画组件和编辑器的所有选项,没找到能基于节点初始属性做相对变化的开关。
五、想求助的效果
希望这个 Animation 动画能:
- 自动读取 预制体实例化后的实际初始 size (不管是 0.1 还是 100);
- 在这个初始 size 的基础上,做固定数值的增减(比如统一增加 50);
- 保留 Animation 编辑器里设置的时长、缓动曲线等配置。
请问大家有没有实现这种 “基于节点动态初始属性做相对动画” 的方法?不管是改动画配置还是写代码的思路都可以~感谢!