Undo.RegisterFullObjectHierarchyUndo 可以撤销脚本中值的修改。
先使用Undo添加到撤销队列,再更改。
Undo的类型
Undo.RecordObject(s)记录Object的状态
Undo.RegisterCompleteObjectUndo 注册完成对象撤销,经测试无法撤销脚本中值的修改。
Undo.RegisterFullObjectHierarchyUndo 注册完整的对象层次结构的撤销,包括脚本中值的修改。
Undo.AddComponent 要添加Component的时候使用,可以撤销掉新加的Component
Undo.RegisterCreatedObjectUndo 新建Object的时候使用,可以撤销新建的物体
Undo.DestroyObjectImmediate 要删除Object的时候使用,可以撤销删除操作
Undo.SetTransformParent 修改Transform的Parent的时候使用,可以恢复层次结构
Revert
Revert是和Record相反的操作,相当于Ctrl+z
Undo中有Group的概念,通过Undo.IncrementCurrentGroup()来增大groupID,一个group可以包含多个记录并可以同时操作。
Undo.RevertAllInCurrentGroup() 撤回当前groupID的所有操作
Undo.IncrementCurrentGroup() 把记录的groupId加1
Undo.RevertAllDownToGroup(int groupID) 回退到groupID的状态
Undo.CollapseUndoOperations (int groupID) 把groupID组中的记录折叠,一次Ctrl+z即可回退该组所有记录。