我似乎无法正确地利用addAttr方法。我使用的是相同的参数,当我从pymel.core呼叫,但它不给我相同的结果。
我想添加自定义消息属性,所以我可以很容易地搜索特定类型的对象后。当我从pymel.core做到这一点,包括相同的对象引用作为参数,它工作正常。
#get object reference
test_object = pm.ls(sl=1)[0]
#this one spits out an error
test_object.addAttr(longName = 'custom', attributeType = 'message')
#this one works fine
pm.addAttr(test_object, longName = 'custom', attributeType = 'message')
我不断收到此错误错误:类型错误:文件行1:addAttr()到底需要2个参数(1中所示)是寻找,当我使用这种方式有什么额外的参数?我清楚地失去了一些东西明显的关于方法的工作原理,但我无法弄清楚。
暴露在Maya PyMel DG节点addAttr方法具有以下签名。
addAttr(attr, **kwargs)
这里attr
是表示属性名称的位置参数。该kwargs可以在pm.addAttr()
方法中使用的所有其他相关的标志提供。所以,你必须通过属性名称作为第一个参数。
node.addAttr('custom', attributeType='message')
希望这会有所帮助。
pCube.addAttr('timeBasedAttr', keyable=True, attributeType='float', min=0.0, max=1.0)
你应该写:
test_object.addAttr('custom', attributeType = 'message')
我用尽,它不确实的错误输出。