2016-12-07 201 views
0

有人可以提供一个简单的方法来侦听搅拌机python中的事件吗? 我有一个自定义选择字段在纹理面板中的选项:光照贴图,法线贴图,凹凸贴图,地图。如果用户选择了normalmap,我想自动选中use_map_normal复选框标记为True。我无法确定如何为此添加事件。我不能在绘图方法中执行它,因为它在尝试更改任何bpy数据时会产生错误。谢谢,搅拌机python onchange事件

吉姆

+1

你可能想尝试http://blender.stackexchange.com。 –

+1

谢谢,我看了这个论坛,发现了一个解决方案。我不得不在我的类型定义参数中添加update = some_method。然后添加它调用的方法来进行更改。 – user3661557

回答

0

当添加自定义属性,您可以指定当属性更改调用的函数,这个函数可以用来更新其他属性。

例如:

def update_checkbox_dependencies(self,context): 
    active_index = context.object.active_material.active_texture.name 
    bpy.data.textures[active_index].use_normal_map = True 


bpy.types.Texture.THREE_map_type = EnumProperty(name="Map Type", 
    items=map_type_array, default=constants.MAP, 
    update=update_checkbox_dependencies)