使用偶数设置IntProperty的代码

时间:2015-05-04 09:56:42

标签: 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”作为一个值,因此不适合解决我的问题。

以这种方式使用IntProperty的语法是这样的:

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

不起作用。

有没有人知道是否有只选择偶数的代码以及它是如何编码的?

1 个答案:

答案 0 :(得分:1)

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

只需使用步长为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

也许如果其他人正在寻找解决方案,这个人会帮助他