Skip to content

角色跨场景迁移 ​

先读 场景系统的迁移契约与顺序。本 Skill 适用于服务端权威的 SCE Unit 玩法。

确认实际契约 ​

  • 记录用户实际运行的客户端、SDK 和依赖版本,核对可用 API;仓库最新源码的行为不能直接当作用户版本的行为。
  • 明确是否保留原英雄、落点、库存、所属玩家和返回路径,再分配英雄迁移、玩家视图切换和主控绑定的职责。区分已确认契约、项目选择与尚未验证的假设。
  • MoveTo 可尝试跨场景;SwitchScene 的 withMainUnit 默认是 false。委托框架携带当前主控可用 true,显式迁移英雄后则用 false。不要把一种项目路线写成所有切场景操作的唯一合法方式。

显式迁移原英雄 ​

需要指定落点、保留原英雄并控制恢复步骤时:

  1. 保存原英雄引用与同步 ID、玩家槽位、原位置/场景、原主控及库存身份;同一玩家的迁移请求避免交错执行。
  2. 等目标场景服务端加载完成,调用原英雄 MoveTo(targetPoint);检查返回值及实际结果。框架会尝试迁移库存物品单元,仍需核对库存和场景登记。不要调用内部接口或手改场景集合补登记。
  3. 核对原英雄身份、有效性、所属玩家、落点,以及目标场景登记存在、源场景登记移除;保留原玩家槽位与库存归属。
  4. player.SwitchScene(target, withMainUnit: false),核对结果;服务端玩家与英雄同场后,重新设置 player.MainUnit = hero。
  5. 客户端分别等待目标地图加载、英雄副本与本地主控就绪,设置等待超时和失败提示。OnLoadEnd、非空 MainUnit 或一次成功返回都不能单独证明整条链路完成。

失败时读取各步实际状态。恢复沿“原英雄和库存回原场景并校验 → 玩家视图切回 → 同场后恢复原主控”的顺序执行,逐步检查;多步操作不保证自动回滚。原英雄/场景不可用或恢复失败时如实报告,按项目既定错误路径处理。不要默认重建英雄或用固定延迟掩盖问题。

验收和排查 ​

按 debug-tools 启动真实服务端调试局,再按 sce-preview-verify 收集证据。纯客户端预览不能证明权威迁移成功。

检查范围完成依据
服务端原英雄身份与玩家槽位未变、有效、场景登记和落点正确、库存归属及物品场景正确、玩家与英雄同场、主控正确
客户端本地玩家已切到目标场景且地图加载完成,英雄副本与本地主控对应原英雄同步 ID,血蓝/技能/镜头正确,实际移动、施法及库存操作正常
往返与失败进入、返回、连续往返/重复触发及受控失败恢复均有结果,不残留旧主控或重复英雄

用同一调试局、玩家槽位和同步 ID 关联双端证据;服务端原英雄应保留,客户端副本则可能重建,不比较跨端托管引用。客户端其他玩家的 Scene 不能作为可靠迁移依据。

蓝底、血蓝显示“—”、技能空或镜头丢失时,依次核对地图加载、英雄复制、主控和 UI 数据来源。服务端位置正确不足以排除复制或绑定问题,也不足以证明上述症状由某个固定原因引起。

工具缺少关键状态时,在项目调试代码中增加有针对性的状态读取或日志,不编造 MCP 工具或字段。确认框架缺陷时应修实现并验证,文档不能替代修复。报告列出已验收路径和缺口;只有服务端证据时写“服务端已验证,客户端待验收”。