我正在将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())
但是我不知道那是答案。