可以延迟执行代码吗?

2 投票
1 回答
1726 浏览
提问于 2025-04-18 12:20

我想知道,能不能在一个脚本运行完之后,自动执行一小段代码?

我问这个是因为,如果我把这段代码放到主脚本里,虽然能运行,但会出现一堆制表符错误(这些错误本来就存在,只是它显示找不到某些东西)。

我发现,在我运行脚本之后,Maya似乎会“加载”它自己的刷新设置,还有一些我公司做的插件。因此,如果我在主脚本执行完和Maya/插件的“刷新”之后再运行这小段代码,就没有问题。我希望能尽量把这个过程自动化,最好都放在一个脚本里,如果可以的话……

所以,这样做有可能吗?像是一种延迟执行的编码方法?顺便说一下,主脚本的执行时间取决于场景中的元素数量。元素越多,所需时间就越长……

1 个回答

2

Maya有一个命令叫做 Maya.cmds.evalDeferred,这个命令的作用就是等到Maya没有其他处理任务时再执行自己。

你也可以用 Maya.cmds.scriptJob 来达到同样的效果。

注意:在Maya中,虽然eval被认为是不安全的,但其实这在Maya里是很正常的。因为在Maya中,几乎所有的图形界面元素都是eval命令,用户可以随意修改。所以一旦你让别人使用你的Maya命令行,你的安全性就会受到威胁。

撰写回答