2016-12-07 5 views
0

kann jemand eine einfache möglichkeit für ein event in blender python zu hören? Ich habe ein benutzerdefiniertes Auswahlfeld im Texturbedienfeld mit Optionen: lightmap, normalmap, bumpmap, map. Wenn der Benutzer die normale Karte auswählt, möchte ich das Kontrollkästchen "use_map_normal" auf "True" setzen. Ich kann mir nicht vorstellen, wie ich ein Ereignis anhängen soll. Ich kann es nicht in der Draw-Methode tun, da es Fehler erzeugt, wenn versucht wird, irgendwelche bpy-Daten zu ändern. Danke,blender python onchange event

Jim

+1

Sie möchten vielleicht http://blender.stackexchange.com versuchen. –

+1

Danke, ich habe mir dieses Forum angesehen und eine Lösung gefunden. Ich musste ein update = some_method in meine Typen Definitionsparameter hinzufügen. Fügen Sie dann die Methode hinzu, die sie aufruft, um meine Änderung vorzunehmen. – user3661557

Antwort

0

Wenn eine benutzerdefinierte Eigenschaft hinzufügen, können Sie eine Funktion angeben, die aufgerufen wird, wenn die Eigenschaft geändert wird, kann diese Funktion verwendet werden, um andere Eigenschaften zu aktualisieren.

Beispiel:

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)