编辑器工具的事务与批处理
全库目录221
本文目录16
编辑器修改分为交互对象事务、批量文件发布,以及对象与文件共同提交三类问题。本文给出阅读入口;完整补丁、数例、宿主API与恢复顺序由对应专题说明。先阅读编辑手势与撤销,批处理进入批处理条件发布,跨资源操作进入跨资源编辑恢复。
用户操作流程
参见编辑手势与撤销。
计划与编辑输入
参见编辑手势与撤销。
编辑事务与撤销
参见编辑手势与撤销。
命令、补丁与事务
参见编辑手势与撤销。
手势合并
参见编辑手势与撤销。
创建、删除与引用
参见编辑手势与撤销。
Unity 与 Unreal 的撤销
参见编辑手势与撤销。
事务执行与补偿
参见编辑手势与撤销。
批处理与失败恢复
参见批处理条件发布。
计划预览与稳定执行
参见批处理条件发布。
条件发布与检查点恢复
参见批处理条件发布。
对象与文件的共同提交
参见跨资源编辑恢复。
宿主撤销与持久恢复
参见跨资源编辑恢复。
进度、取消与错误恢复
参见批处理条件发布。
工具版本与数据契约
参见批处理条件发布。
验证路径
先用A、B交换名称的小资产验证成功、第三步失败和补偿失败,再用三项批处理验证发布前取消、发布后检查点前崩溃、输入版本改变和重复运行。保存每次计划哈希、工作项状态、输出代次、输出哈希与恢复结果,第二次执行已经完成的项应无内容差异。还要在发布后插入一次外部编辑,确认恢复进入Conflict并保留该编辑。
从仓库根目录执行以下命令:
python -B 知识库/examples/mechanism_chain/protocol/test_protocol.py
15项本机检查中,工具部分覆盖1→2→3→9手势的首值、末值、撤销和重做,取消预览,发布回执恢复,发布后外部编辑以及内容往返修改后的代次冲突。相同文件还用真实子进程强退检查SQLite提交前后恢复,为共同提交的边界提供可重复观察。三项补偿检查见编辑手势与撤销中的execute_plan。这些实验分别观察手势状态与持久发布结果。
接入引擎时,分别通过属性面板和Gizmo修改同一字段,撤销、重做、保存、重载后比对值;无界面入口读取同一输入,比较计划与输出。再删除带外部引用的父子对象,撤销后核对稳定ID、层级和引用;强制丢失某种资产类型时应得到可恢复失败。引擎撤销、文件刷盘和程序集隔离需要目标宿主集成验证,本机SQLite结果不代表这些工程场景已经执行。
相关主题
参考资料
-
Unity 6000.0:Undo.RecordObject:Description:记录范围、专用撤销接口和 Prefab 实例修改要求;外部文件补偿由工具负责。
-
SQLite Atomic Commit:参考实现中条件发布、回执与状态共同提交的本地持久事务依据。
-
Epic Games,IPropertyHandle(UE5.6):SetValue与手工前后通知的职责。
-
Epic Games,FScopedTransaction、UObject::Modify:作用域事务和修改前对象记录。
-
Epic Games,UEditorEngine、UEditorActorSubsystem、MarkPackageDirty:编辑器对象入口与包保存标记。