如何让Maya将我的操作视为可撤销?

1 投票
1 回答
815 浏览
提问于 2025-04-21 05:00

我想找到一种方法,可以撤销在Maya中执行的某个操作。我被要求制作一个工具,让用户可以相对于各自的中心点缩放多个选中的UV壳。这个功能做得还不错,但我的代码没有办法通过撤销快捷键来撤销。

我想撤销的函数是:

MFnMesh.setSomeUVs(uvIds, uValues, vValues, uvSet='')

在获取旧的UV值后,我会应用缩放,然后用这个函数把新的坐标更新到UV上。我希望能找到一种方法,把我通过这个函数做的更改放到撤销队列里,这样用户就可以撤销错误。我想避免使用cmds来进行缩放,因为那样会影响到UV的选择。

这是我第一次在Maya中编程,所以任何帮助都非常感谢。

1 个回答

0

你可以把选中的内容存到一个变量或者集合里,然后再恢复它,接着在命令中进行操作。脚本的操作默认是可以撤销的。

另外,你也可以把你的功能实现为一个 MpxCommand。如果你实现了 doItundoItredoIt 这几个方法,你就能加入到正常的撤销队列里。不过,具体怎么实现这些方法还是得你自己来;你需要在你的 MpxCommand 实例中存储必要的数据,以便进行操作和撤销操作。

撰写回答