摘要:本文将带你了解Maya2016中MStatus中的变化,希望本文对大家学Maya有所帮助。
之前Maya Python API 中 MStatus 的用法是:
return OpenMaya.MStatus.kSuccess
但是Maya2016中已经移除了MStatus这个类,所以有新的处理方式
//help.autodesk.com/view/MAYAUL/2016/ENU/?guid=__files_Maya_Python_API_Using_the_Maya_Python_API_htm
在C++的API里有两种方式能返回MStatus的值,一种是作为方法的返回值:
[cpp] view plain copy
1. MStatus someMethod(Type arg1, Type arg2, ...)
另一种是通过变量列表里一个可选的、指向MStatus变量的指针返回,通常情况下是最后一个变量:
[cpp] view plain copy
1. Type someMethod(Type arg1, Type arg2, ..., MStatus* ReturnStatus = NULL)
MStatus作为方法的函数值返回
当方法将一个MStatus的值当做函数值返回时,返回值在Python中是这样处理的:
· 当status值是“MS::kUnknownParameter”时,将字符串unknown返回给Python
· 当status值是“MS::kSuccess” 时,什么也不返回,并且不引发异常(exception)
· 当status是其他值是,什么也不返回,但是触发一个RuntimeError的异常
MStatus通过一个指针变量返回
当API方法将MStatus通过变量列表中一个指针返回时,MStatus是这样处理的。
· 当status值是“MS::kSuccess” 时,不引发异常(exception)
· 如果status是其他值,什么也不返回,但是触发一个RuntimeError的异常
这意味着使用C++写插件的用户依然可以像之前一样返回MStatus,不管这段代码是从C++还是Python调用的。在必要的时候Maya会在内部将这些代码转化成Python中的exceptions。
用Python写插件的人,应该引发异常而不是返回MStatus值,unless they want their compute()method to indicate that it is not going to handle a plug(这句不会翻译了),在这种情况下应该返回OpenMaya.MStatus.kSuccess。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件之Maya频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号