我正在寻找一种方法来撤消由打开的Maya函数执行的操作。我被要求为Maya制作一个工具,以相对于他们自己的枢轴缩放多个选定的UV壳。这很顺利,但是我的代码不会导致撤消快捷方式可以撤消的内容。
我想撤消的功能是:
MFnMesh.setSomeUVs(uvIds, uValues, vValues, uvSet='')
拉出旧的UV值后,我应用比例,然后使用此功能将新的坐标推回到UV上。我正在寻找一些方法将我对此功能的更改放到撤消队列中,以便用户可以撤消错误。我试图避免使用cmds来进行缩放,因为这会影响UV的选择。
这是我第一次在Maya编程,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
您可以将选择缓存到变量或集合中并将其还原,然后在cmds中完成工作。默认情况下,脚本操作是可撤消的。
或者,您可以将您的功能实现为MpxCommand。如果您实施doIt
,undoIt
和redoIt
方法,您将进入常规撤消队列。但是由你来实现它们;您必须存储必要的数据才能执行和撤消MpxCommand实例中的工作。