Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 用于仅使用偶数设置IntProperty的代码_User Interface_Properties_Blender - Fatal编程技术网

User interface 用于仅使用偶数设置IntProperty的代码

User interface 用于仅使用偶数设置IntProperty的代码,user-interface,properties,blender,User Interface,Properties,Blender,我希望有人能帮助我。我想在Blender中有一个IntProperty,在这里我只能设置偶数(0,2,4,6..) 我知道Float属性的语法如下: bpy.types.Scene.MyFloat = FloatProperty( name='FLoat', default=1, min=0, step=200, ) 但在GUI中使用此代码时,我仍然可以选择“4.2”作为值,因此这不是解决问题的合适方法 IntPr

我希望有人能帮助我。我想在Blender中有一个IntProperty,在这里我只能设置偶数(0,2,4,6..)

我知道Float属性的语法如下:

bpy.types.Scene.MyFloat = FloatProperty(
        name='FLoat',
        default=1,
        min=0,
        step=200,
        )
但在GUI中使用此代码时,我仍然可以选择“4.2”作为值,因此这不是解决问题的合适方法

IntProperty的语法如下所示:

bpy.types.Scene.MyInt = IntProperty(
    name='Int',
    default=1,
    min=0,
    step=2,
    )
不起作用


有人知道是否有只选择偶数的代码,以及它是如何产生的吗?

与此同时,我找到了解决问题的方法

只需使用步长为200的Floatproperty并定义一个更新函数,然后检查调整后的值是否为偶数——如果不是,则强制转换为下一个接近偶数的值。代码如下所示:

 bpy.types.Scene.even_number= FloatProperty(
    name='Even Numbers',
    description='Just even numbers are possible',
    default = 10,
    min = 0,
    max = 90,
    step = 200,
    update = update_even_numbers
    )

def update_even_numbers(scene, context):   
    if bpy.context.scene.framestep % 2 == 0: 
          print('Even number')
    else:
          x = bpy.context.scene.even_number
          bpy.context.scene.even_number= round(x/2)*2

也许如果其他人正在寻找解决方案,这将帮助他解决Blender 2.81的问题,似乎在你的
IntProperty
中有一个额外的
,即
bpy.types.Scene.MyInt=IntProperty(name='Int',default=1,min=0,step=2)