首页 > 解决方案 > 玛雅人。有没有办法通过改变视口来激活脚本作业?

问题描述

有一个名为“ActiveViewChanged”的事件,但它不起作用。我会知道另一种方法来通过在 Maya 中切换视口来启动动作。例子:

import maya.cmds as cmds 
def clix():
    print "you have clicked on another view" 
cmds.scriptJob (event=["ActiveViewChanged","clix()"])

标签: pythoneventsactionscriptviewportmaya

解决方案


我可以确认这"ActiveViewChanged"似乎没有任何效果。在四处搜索之后,似乎许多其他人也有同样的问题。

您可以尝试改用它: cmds.scriptJob(event=["ModelPanelSetFocus", "clix()"])

尽管它似乎不会在您期望的时候触发(单击视口!)而是在视口中的按键时触发。

可以通过 api 添加回调,使用OpenMaya. 我发现的唯一一个是这样的:

OpenMaya.MEventMessage.addEventCallback("ActiveViewChanged", clix)

尽管这与"ModelPanelSetFocus".

我想您还可以设置一个计时器来查询当前面板以检测它是否已更改,如果已更改则触发。这对于临时计时器来说可能没问题,比如在工具打开期间,但如果假设它在整个 Maya 会话中运行,我会反对它,因为它会增加额外的开销。


推荐阅读