如何让Maya将我的操作视为可撤销?
我想找到一种方法,可以撤销在Maya中执行的某个操作。我被要求制作一个工具,让用户可以相对于各自的中心点缩放多个选中的UV壳。这个功能做得还不错,但我的代码没有办法通过撤销快捷键来撤销。
我想撤销的函数是:
MFnMesh.setSomeUVs(uvIds, uValues, vValues, uvSet='')
在获取旧的UV值后,我会应用缩放,然后用这个函数把新的坐标更新到UV上。我希望能找到一种方法,把我通过这个函数做的更改放到撤销队列里,这样用户就可以撤销错误。我想避免使用cmds来进行缩放,因为那样会影响到UV的选择。
这是我第一次在Maya中编程,所以任何帮助都非常感谢。
1 个回答
0
你可以把选中的内容存到一个变量或者集合里,然后再恢复它,接着在命令中进行操作。脚本的操作默认是可以撤销的。
另外,你也可以把你的功能实现为一个 MpxCommand。如果你实现了 doIt
、undoIt
和 redoIt
这几个方法,你就能加入到正常的撤销队列里。不过,具体怎么实现这些方法还是得你自己来;你需要在你的 MpxCommand 实例中存储必要的数据,以便进行操作和撤销操作。