36 lines
3.1 KiB
Markdown
36 lines
3.1 KiB
Markdown
# 大厅、通知和设置的可选动画
|
||
|
||
## 配置方法
|
||
|
||
在 Cocos Creator 中打开对应 prefab,选择目标节点。
|
||
|
||
- 大厅和通知节点已经挂好 `Animation` 与 `OptionalUiAnimation`。把制作好的片段拖到 `Animation` 的 **Default Clip**,片段的 **Wrap Mode** 决定单次或循环播放。保持 **Play On Load** 关闭,由组件在节点显示时播放、隐藏时停止,再显示时重新开始。未指定 Default Clip 时保持原来的静态表现。
|
||
- 设置开关已经挂好 `Animation` 与 `OptionalSwitchAnimation`。把片段分别拖到后者的 **开启片段**、**关闭片段**。两个字段各自可空;缺少该方向的片段时立即切换图片。开关过渡只播一次,完成、隐藏或被反向切换时,状态图片服从最新开关状态。
|
||
- 片段以当前节点为绑定根。Sprite 换帧轨道绑定当前节点的 `cc.Sprite.spriteFrame`。制作位移等轨道时,要考虑节点现有 Widget 对布局的约束。
|
||
|
||
## 已配置范围
|
||
|
||
- `Layer4_MainMenu`:Spirit479、Spirit3120、Spirit76、Spirit11、Spirit12、Spirit14、Spirit17、Spirit13、Spirit7。
|
||
- `Layer8_Notice`:Spirit3121、Spirit3017、Spirit5、Spirit235、Spirit604、Spirit3057、Spirit15。
|
||
- `Layer609_Setting`:音乐底、音效底、Spirit357、Spirit388。
|
||
|
||
Spirit479 已指定 `assets/framework/ui/animations/AnnouncementHorn.anim`:沿用原有两张喇叭图片,2 秒循环,在 0.5 秒切到第二张、1 秒切回第一张。`AnnouncementView` 继续负责公告文字移动,喇叭换帧由片段负责。
|
||
|
||
其余节点暂未制作或指定新片段,保持当前表现。音乐和音效已接入状态切换动画;Spirit357、Spirit388 仍保留“原生震动与语音开关尚未接入”的提示,仅预留动画组件。以后业务接通时,由状态拥有方调用 `setState(on, stateFrame, animate)`;初始化用 `animate=false`,用户切换用 `true`。
|
||
|
||
## 验证
|
||
|
||
`cocoscreator_projects/scripts/verify-optional-animation-preview.mjs` 在 Cocos Game View 中执行,使用真实 Animation 组件和独立测试节点,检查资源接线、无片段静态表现、显隐重播、喇叭帧序列、开关中断及实际音乐/音效点击与再次打开。测试使用独立的存储键并在结束时恢复。
|
||
|
||
三个 prefab 通过 Cocos MCP 序列化及 asset-db 保存,原节点 prefab fileId、布局和原有组件属性保留;新组件获得独立 fileId。
|
||
|
||
2026-09-07 验证结果:Game View 44 项检查通过,期间无警告或错误;三个 prefab 的资源引用检查通过,缺失引用为 0;公告、大厅菜单和登录动画的 10 项既有测试通过,导入边界检查通过。
|
||
|
||
工程脚本严格类型检查通过,命令在 `cocoscreator_projects` 执行:
|
||
|
||
```powershell
|
||
node node_modules/typescript/bin/tsc -p YouleNexus/tsconfig.json --noEmit --ignoreDeprecations 6.0 --skipLibCheck --lib ES2022,DOM --types node --strict
|
||
```
|
||
|
||
原始检查入口仍有环境限制:Cocos 内置旧版 TypeScript 不支持工程使用的新语法;未加上述库选项的检查还会报告引擎声明及标准库版本问题。本次未修改这些全局配置。
|