【问题标题】:Undo an operation in Maya API在 Maya API 中撤消操作
【发布时间】:2019-11-14 02:02:22
【问题描述】:

在我的 Maya .mll 文件中,我有以下内容:

void doIt()
{
    MGlobal::executeCommand("polyMapCut -ch 1 pCube1.e[2];");
}

void undoIt()
{
    MStreamUtils::stdOutStream() << "Undo is called";
    MGlobal::executeCommand("undo;");
}

这些都注册到 MEL 脚本中的命令 runCut

在 Maya 脚本编辑器中,在执行 runCut 并尝试撤消它之后:

显示"Undo is called",表示UndoIt() 有效,但随后我收到一条错误消息,提示"The undo queue is turned off."

是不是我打电话给undo的方式不对?

【问题讨论】:

    标签: c++ maya maya-api


    【解决方案1】:

    这意味着您已禁用撤消队列,因此目前无法撤消。要重新打开它,您可以执行以下操作:

    undoInfo -st 1; 
    

    【讨论】:

    • 它仍然给出同样的错误。我怀疑这不仅仅是因为撤消队列被关闭了,因为在场景中正常执行操作然后撤消它就可以了。
    • 你检查过isUndoable虚拟函数是否返回True吗?
    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多