Undo撤销队列,对脚本中值的撤销

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即可回退该组所有记录。

发布了7 篇原创文章 · 获赞 1 · 访问量 192

猜你喜欢

转载自blog.csdn.net/boyZhenGui/article/details/103988794
今日推荐