2017-10-12 87 views

回答

1

这是可行的,但并非微不足道。

你会用scriptJob来观察变化并相应地更新你的gui。

某些类型的更改会直接显示 - 例如,您可以通过脚本作业响应用户更改播放范围,该脚本作业对playbackRangeChanged事件作出反应。上面链接的文档页面包含可以侦听的更改事件的列表。

如果您正在观察属性的更改,则可以使用attributeChange scriptJob类型在特定属性发生更改时(通过UI或其他任何方式)运行脚本。

import maya.cmds as cmds 

def test(): 
    print "focal length:", cmds.getAttr('perspShape.focalLength') 

cmds.scriptJob(ac = ("perspShape.focalLength", test)) 

其他种类的变化(其中大多数)不能作为预定义的事件:例如,每当Persp相机的焦距变化,这将打印的消息。您可以使用condition command创建自己的事件,但您必须编写检测更改的代码。很多人通过使用脚本作业来简化事情,该脚本作业在Maya闲置并查找更改时运行。这很有效,但是你必须小心翼翼地编写它,因为复杂的脚本会让Maya变得非常缓慢 - 只要用户没有与UI进行交互,它就会运行。

相关问题