<p>混合器中的操作员用于执行操作。当我们使用一个类来定义该操作和相关属性时,我们不应该将它们视为普通的python类。运算符的属性应该用来调整操作表达式,而不是用来保存变量数据。在</p>
<p>由于操作符属性控制操作符的结果,blender使用它们执行撤消/重做步骤。这些属性也可由用户通过按<kbd>F6</kbd>使用操作员属性面板进行调整,也可以在工具栏区域的底部找到。在</p>
<p>{a1}</p>
<p>将<code>bl_options = {'REGISTER', 'UNDO'}</code>添加到运算符,以允许用户调整运算符。您也可以通过给操作员一个<code>draw(self,context)</code>方法来自定义此面板中的显示。在</p>
<p>为了控制在我们直接调用运算符时运算符如何执行其任务,我们可以将属性添加到运算符调用-</p>
<pre><code>bpy.ops.object.d1(F_num=4, val2=3.6)
</code></pre>
<p>如果要将操作员按钮添加到面板,则可以使用-</p>
^{pr2}$
<p>或者如果需要设置多个值,可以使用-</p>
<pre><code>op = row.operator('object.d1')
op.F_num = 4
op.val2 = 3.6
</code></pre>
<p>您提供的示例使用的属性似乎仅对一个对象有效,如果用户选择另一个对象,则该属性将不再有效。此属性作为一个对象属性会更好地工作,您可以<a href="https://www.blender.org/api/blender_python_api_current/bpy.props.html" rel="nofollow noreferrer">add a property</a>添加到对象类(或其他列为<a href="https://www.blender.org/api/blender_python_api_current/bpy.types.ID.html" rel="nofollow noreferrer">subclasses of ID</a>)中,方法是将其添加到插件<code>register()</code>中并将其删除在<code>unregister()</code>中</p>
<pre><code>def register():
bpy.types.Object.selected_faces = bpy.props.IntProperty()
def unregister():
del bpy.types.Object.selected_faces
</code></pre>
<p>对于该示例,您甚至可以在需要该值时对选定的面进行计数-</p>
<pre><code>selected_faces_count = len([f for f in obj.data.polygons if f.select])
</code></pre>