Аддон нужно обновить с 2.7x до 2.8X версии Blender - PullRequest
0 голосов
/ 20 января 2020

У меня нулевое знание программирования. Пожалуйста, помогите мне. Спасибо. Вот код.

def register():
    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_file_import.append(import_bob_menu)
    bpy.types.INFO_MT_file_export.append(export_bob_menu)
    bpy.types.INFO_MT_file_import.append(import_cob_menu)
    bpy.types.INFO_MT_file_export.append(export_cob_menu)
    bpy.types.INFO_MT_file_import.append(import_leveldefs)
    bpy.types.INFO_MT_file_export.append(export_leveldefs)


def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_file_import.remove(import_bob_menu)
    bpy.types.INFO_MT_file_export.remove(export_bob_menu)
    bpy.types.INFO_MT_file_import.remove(import_cob_menu)
    bpy.types.INFO_MT_file_export.remove(export_cob_menu)
    bpy.types.INFO_MT_file_import.remove(import_leveldefs)
    bpy.types.INFO_MT_file_export.remove(export_leveldefs)

1 Ответ

0 голосов
/ 27 января 2020

bpy.utils.register_module был удален в 2.80, вам нужно заменить его на bpy.utils.register_class для каждого класса, который должен быть зарегистрирован.

Повторяя пример с здесь , настройте список классов, чтобы включить классы в аддоне. Вы найдете строку типа class FooClass: или class FooClass(bpy.types.menu): и скопируете FooClass в список. Затем удалите строки register_module и unregister_module и замените их соответствующими тремя строками в следующем примере.

Имена классов аддонов также являются более строгими, поэтому есть вероятность, что вам потребуется настроить некоторые имена классов.

classes = (
    FooClass,
    BarClass,
    BazClass,
)

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

В конце страницы заметок о выпуске вы также найдете, что свойства класса также необходимо изменить -

2.7x:

class MyOperator(Operator):
    value = IntProperty()

2,8x:

class MyOperator(Operator):
    value: IntProperty()
...