Files
Genarrative/docs/【UI编辑器】拖动变换提交边界-2026-09-03.md
T
k88936 8a18b1b181
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Failing after 2m3s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Failing after 4m30s
调整 UI 编辑器节点变换为松开时提交
拖动和缩放期间仅更新预览临时变换

指针松开时提交最终变换,取消操作不写入 State

补充 UI 编辑器拖动变换提交边界文档
2026-09-03 10:51:52 +08:00

982 B

UI 编辑器拖动变换提交边界

当前约定

UI 编辑器预览中的节点拖动和缩放在指针移动期间只更新预览层的临时变换,不写入编辑器 State。指针松开时才把最后一次有效变换提交到 State,因此一次拖动或缩放只产生一次正式编辑更新。

指针取消、页面切换、树切换、组件卸载或没有超过拖动阈值时,不提交变换,并清理临时预览值。指针松开后的最终变换属于正常 State 修改,会参与脏状态、保存和后端持久化;仅拖动期间的临时变换不会进入这些流程。资产文件也不会因该交互被删除。

实现边界

  • useNodeTransformInteraction 保存手势起始变换和最后一次有效变换。
  • UiTreeRenderer 通过 previewTransforms 渲染临时变换。
  • canvas.updateNodeTransform 仅在 pointerup 提交,pointercancel 不提交。
  • 拖动和缩放继续共用单指针捕获与有限数校验。