import bpy
obj = bpy.context.object
for i in range(0,20):
obj['myprop'+str(i)] = i
允许类型检查的一种更结构化的方法是添加property to the object class definition,它也显示在自定义属性面板中,但显示为“API Defined”。对生成的属性名执行此操作意味着您要执行生成的一段代码。此方法创建一个true属性,您可以访问该属性,该属性与类定义中的其他属性相同-obj.myprop0
import bpy
for i in range(0,20):
cmd = 'bpy.types.Object.myprop{} = bpy.props.IntProperty()'.format(i)
exec(compile(cmd, 'myprops', 'exec'))
有两种方法可以向blender中的对象添加新属性。一种简单的动态方法是使用custom properties,将值赋给键,就像对象是字典一样。这与使用object properties中的自定义属性面板相同。要在脚本中访问此值,请继续使用dictionary样式-
obj['myprop0']
允许类型检查的一种更结构化的方法是添加property to the object class definition,它也显示在自定义属性面板中,但显示为“API Defined”。对生成的属性名执行此操作意味着您要执行生成的一段代码。此方法创建一个true属性,您可以访问该属性,该属性与类定义中的其他属性相同-
obj.myprop0
请注意,这两种方法占用相同的命名空间,因此,如果在两种方法中使用相同的属性名称,则将访问相同的属性,并且显示属性的两种方法都将起作用。
bpy.props
定义覆盖字典样式属性。你知道吗在面板中显示属性时,每种方法的访问方式略有不同。对于dictionary样式属性,您使用
row.prop(obj,'["myprop'+str(i)+'"]')
,而当使用bpy.props
时,您使用row.prop(obj,'myprop'+str(i))
—请注意,第一种方法使用的是[]
中包含的属性名,就像访问任何dictionary值一样。你知道吗相关问题 更多 >
编程相关推荐