3.6 KiB
玩法介绍正式功能包
Asset Bundle 名称:gameplay_intro。
prefab/GameplayIntro.prefab:本关介绍面板固定布局,可在 Creator 中编辑背景、标题、滑动区域和分页器位置。assets/Script/module/Tool/LevelGameplay.ts:主脚本目录中的筛选工具,从实际关卡的方块、门、地块及生成队列识别玩法,并按类型去重。主场景仅以类型引用 GameplayIntro,在分包加载完成后用组件名获取实例,避免启动时依赖尚未加载的分包脚本。script/GameplayIntro.ts:绑定预制体节点,关闭按钮或外部点击关闭,相邻三页图片加载与释放。script/GuideCarousel.ts:鼠标/触摸翻页、缓动回弹、最多三点分页及白点替换动画;单页隐藏分页且不绑定拖动,双页显示两点。Texture/:面板背景、玩法指南标题、问号、关闭按钮及分页圆点等 UI 素材;原有中文玩法图片已清理,玩法图片统一加载公共目录。assets/resources/Window_Prop/:34 组公共玩法图片,按titleN、iconN、IntroductionN加载。daoju26 使用素材 27,daoju27 使用素材 26。
游戏入口由 assets/Script/SceneManager.ts 控制:进入场景时按实际加载的关卡生成介绍列表,没有特殊道具就隐藏问号。首次点击 openGameplayIntro 加载本包的 prefab/GameplayIntro,实例挂到 Inspector 绑定的 tipPanel 节点;关闭后保留固定布局,释放所有玩法页图片,再次打开复用实例,按解锁关卡倒序排列后定位最左端的最新玩法;三个分页点时高亮左边第 1 点。
GameplayIntro.open(entries) 接收已经筛选的介绍列表。NEW_LEVEL.json 仅提供介绍编号和排列顺序,不再用解锁关卡或玩家进度筛选。开局方块和 spawnGates[].spawnQueue[].members 都纳入本关范围,消除后仍可查看;同类型只展示一页。木箱/快递盒/彩色木箱、普通/定次连接等按实际变体匹配,花盆借用的不可见盖板不增加快递盒介绍。
场景接线:在 GameScene 的 Top/tip 下放置问号 Sprite + Button,图片使用本包 wenhao;Button 点击事件绑定 Canvas 上的 SceneManager.openGameplayIntro。SceneManager 的 Tip Panel 属性绑定场景现有的 tipPanel。tipPanel 应作为位于游戏内容之上的居中容器,不需要添加覆盖整个屏幕的输入拦截组件。
预制体直接引用背景、标题、关闭按钮和两种分页圆点;34 种公共玩法图片由脚本按当前页及相邻页动态加载,不能把所有玩法图片拖到预制体中,以免一次加载全部图片。
测试包及预览专用接口已移除,启动场景已恢复为主线正式场景。
可编辑的固定玩法页结构
直接打开 prefab/GameplayIntro.prefab:
IntroViewport
└─ Pages
├─ Page1
│ ├─ TitleImage
│ ├─ IconImage
│ └─ DescriptionImage
├─ Page2(相同结构)
└─ Page3(相同结构)
所有图片节点已经放在面板预制体内,SpriteFrame 留空。最下方 DescriptionImage 的大小由 Sprite 的 Size Mode、Trim 及节点尺寸/缩放控制,代码不覆盖;TitleImage 和 IconImage 仍以预制体 Width/Height 为展示区域等比适配;三页需要保持相同布局。代码仅复用三个页面、改变分页位置并动态加载图片。说明图不做代码缩放,标题和道具图保留等比适配;没有单图比例修正。翻远或关闭面板时清空图片并归还资源引用,不销毁这三个页面;面板整体销毁时由引擎销毁子节点。