Динамическая аннотация свойства (2.8) - PullRequest
0 голосов
/ 10 января 2019

Я работаю над переносом нашего плагина appleseed в Blender 2.8

В рамках рабочего процесса 2.79 мы создавали наши узлы затенения динамически, когда аддон был включен. Мы сделали это, создав классы узлов при запуске:

ntype = type(node_name, (AppleseedOSLNode,), {})

И затем создание свойств внутри узла с помощью setattr:

setattr(ntype, prop_name, bpy.props.EnumProperty())

В новой системе 2.8 все bpy.props должны быть определены как аннотации. Те не работают с setattr. Есть ли подобный метод для динамического создания свойств, который делает? Я читал о том, как манипулировать диктовкой __annotations__ в классе:

ntype.__annotations__[prop_name] = bpy.props.EnumProperty())

Но я не знаю, так ли это.

...