Skip to content

fix: clear prefab edit root instance#655

Open
knoxHuang wants to merge 1 commit into
cocos:mainfrom
knoxHuang:codex/prefab-edit-root-instance
Open

fix: clear prefab edit root instance#655
knoxHuang wants to merge 1 commit into
cocos:mainfrom
knoxHuang:codex/prefab-edit-root-instance

Conversation

@knoxHuang

Copy link
Copy Markdown
Contributor

Summary

  • Normalize PrefabEditor roots after prefab instantiate/reload so the edited prefab asset root does not keep _prefab.instance.
  • Preserve nested prefab instances by only preparing the current edit root.
  • Add regression coverage for open and reload paths.

QA 手测步骤

  • 打开一个 prefab asset 进入 CLI 的 Prefab 编辑态,查询当前根节点的 prefab state,确认根节点不再显示为 PrefabInstance,也不出现 unlink/revert/apply 这类实例操作。
  • 在该 prefab 编辑态下新增普通子节点并保存,重新打开 prefab 后确认新增节点成为 prefab asset 内容,而不是写入根节点 instance 的 mountedChildren。
  • 使用包含 nested prefab instance 的 prefab 打开并触发 reload,确认 nested prefab 仍保留 PrefabInstance 状态和相关实例操作。

开发验证

  • rtk npm test -- --runTestsByPath src/core/scene/test/prefab-editor-preview-canvas.test.ts --runInBand
  • rtk git diff --check
  • rtk npm run build(沙盒内因 tsx IPC pipe EPERM 失败,非沙盒重跑通过;仅有既有 API Extractor warnings)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants