2.3 KiB
公告独立 prefab 与原生选项卡
assets/framework/ui/prefabs/widgets/NoticeBoard.prefab 单独承载 group-12,原 Layer9_Feedback.prefab 保留反馈、二维码、房间列表三个分组。PlatformStartup.scene 的 LobbyAssets.noticeBoard 已引用新资源;其他入口继续使用原 notices 引用。
在新 prefab 的 group-12/NoticeTabs 中配置:
ToggleContainer:禁止全部取消,三个 Toggle 直接作为子节点。- 纵向
Layout:自动排列三个高度 92 的选项,隐藏项不占位。 NoticeTabsView:指定三个 Toggle、背景及标题 Sprite,以及各自正常/选中 SpriteFrame。- 每项分别组合原
Spirit570/573、Spirit571/574、Spirit572/575,统一点击区域,保留美术资源。背景使用00216_2/00216_1;标题正常/选中使用00217_1/2、00217_3/4、00217_5/6,与原工程相同。
公告入口默认选择第一页,后两页沿用原有内容可见性规则。Toggle 事件驱动原公告文字/图片显示逻辑,关闭时释放监听,重新打开重置选择。
验证:37 项 Game View 检查通过,覆盖三页互斥与图片状态、隐藏中间项、回调释放、内容切换、关闭与重新打开、启动场景引用和原分组保留;9 项相关单元测试、严格类型检查、导入边界检查通过。新旧 prefab 共 40 个引用全部有效。已检查实际渲染;点击验证采用 Cocos 原生 Button 事件驱动 Toggle,并非物理鼠标实点。
可复用脚本:cocoscreator_projects/scripts/verify-notice-tabs-preview.mjs。本次资源均通过编辑器 API 保存。
后续点击范围修正:打开公告时,为通知背景、通知标题、通知标题内容添加 BlockInputEvents,防止点击穿透到遮罩。只有遮罩和通知关闭按钮负责退出。新增 Cocos 坐标触摸命中测试,覆盖背景空白、标题、正文、选项卡不关闭,关闭按钮和遮罩关闭;现共 43 项检查通过,严格类型检查通过。
收尾时,旧 prefab 编辑视图仍显示拆分前的分组,已在该视图移除 group-12;随后 save_current_scene 同步调用未返回,已停止等待。上述磁盘资源保存和验证在此之前均已完成,编辑视图是否同步完成未确认,可重新打开 NoticeBoard.prefab 查看新资源。