我正在寻找一种方法来撤消由打开的Maya函数执行的操作。我被要求为Maya制作一个工具,以相对于其自身的轴心缩放多个选定的UV壳。一切顺利,但是我的代码并没有导致可以使用undo快捷方式撤消的操作。
我要撤消的功能是:
MFnMesh.setSomeUVs(uvIds, uValues, vValues, uvSet='')
拉出旧的UV值后,我将应用比例尺,然后使用此功能将新的坐标推回到UV上。我正在寻找某种方法来将此功能的更改放入撤消队列,以便用户撤消错误。我试图避免使用cmds进行缩放,因为这会干扰UV选择。
这是我第一次在Maya中进行编程,因此将不胜感激。
您可以将选择内容缓存到变量或集合中,然后将其还原,然后在cmds中完成工作。默认情况下,脚本操作是不可撤消的。
或者,您可以将功能实现为MpxCommand。如果实现了doIt
,undoIt
而且redoIt
方法你会在常规撤消队列。但是,实现这些取决于您自己;您将必须存储必要的数据来执行和撤消MpxCommand实例中的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句