什么';这是将Maya C#api与现有脚本集成的正确方法

本文关键字:脚本 集成 方法 C#api Maya 什么 | 更新日期: 2023-09-27 18:26:20

我在Python(Maya-Python API)中有一组库,我希望在C#中有一些包装器。目前可以通过构造字符串并将其发送到python引擎来调用python代码,但更喜欢在C#中使用intellisense/正确的python函数签名。这样的工具存在吗?或者有更好的方法将python集成到C#工作流中吗?

什么';这是将Maya C#api与现有脚本集成的正确方法

dotnet API实际上是围绕与C++API相同的模型设计的:您可以编写代码来操作正在运行的Maya,然后以Mel命令的形式提供薄包装,用户可以直接调用或使用工具和菜单调用。不幸的是,这意味着从插件内部调用脚本需要往返于脚本层,并伴随着转换成本。此外,您还必须编写C#来解析python或mel中的命令结果,并决定如何反应,即使它有效,这也将是一场噩梦。

最好将C#代码设计成更小的代码。期望由脚本控制的自包含片段(可以是mel或Python——当插件公开commnads时,您可以"免费"获得它)。

Python Tools for Visual Studio确实为Visual Studio中的Python代码提供了一定程度的自动完成功能,但我认为它在.CS文件中不起作用。如果你真的需要提供大量的脚本(而不是坚持极简主义设计,我仍然认为这是更好的),你可以维护一个单独的PTVS项目,将python基础设施作为子项目创建,然后将它创建的文件打包为C#插件中的资源。然而,除了你无法避免的事情——比如(boo!嘶嘶!)AETemplates——明智的策略是将插件视为从脚本调用的高性能函数的提供者,而不是相反。