c++ - 确定场景何时在 Maya 中完成加载

标签 c++ events plugins maya

我正在用 C++ 编写 Maya 插件。

在 Maya 中,当打开一个场景时,我的插件会自动加载并启动。 是否有事件告诉我的插件整个场景已加载以便我可以开始一些操作?

最佳答案

我不太熟悉 Maya C++ API,但有一个 mal/python 解决方案可能适合您的需要。我知道这个问题被标记为 C++,所以如果这不是一个可接受的答案,我会删除它。

maya.cmds mel/python 库中有一个 scriptJob 命令,允许在 Maya 中发生事件或条件时绑定(bind)代码的执行。

def printStuff():
    # We are printing stuff here, but this can be a call to your C++ plugin
    # Example:
    # import cppPlugin
    # cppPlugin.doActionOnSceneLoaded()
    print "Scene has been loaded"

cmds.scriptJob(e=('SceneOpened', printStuff))

执行此代码后,每次打开场景时,一旦场景完全加载,就会打印一行。您可以调用 C++ 插件,而不是打印一行。我的 C++ 技能现在已经生疏了,我已经有一段时间没有练习了,但是你可以将 C++ 方法绑定(bind)到 Python 调用,你可以获得一些信息 herehere .

您可以在 userSetup.py 中编写此脚本,以便在启动 Maya 时加载它。您可以获得有关 userSetup 文件的更多信息 here

关于c++ - 确定场景何时在 Maya 中完成加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34345347/

相关文章:

javascript - 字段更改时的 HTML/JS 事件

c++ - 如何在不同的定义时间为每个触发器设置数万个任务?

javascript - JS>将HTML onclick事件绑定(bind)到自定义元素v1对象

c++ - Adobe String Memory Leak - 在哪里调用外部库入口点来释放内存?

javascript - 编写一个简单的插件/组件

c# - 保持事件对象的插件系统

java - 在 Eclipse 中获取所有包的 Bundle []

c++ - 在没有 coredump 或 Segmentation Faults 的情况下退出程序

在子进程中使用 std::string 时发生 C++ 内存泄漏

c++ - 如何在 C++ 中为字符串重新定义 = 运算符