Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

EditorImportPlugin

Успадковує: ResourceImporter < RefCounted < Object

Реєструє митний імпортер ресурсів в редакторі. Використовуйте клас для оформлення будь-якого файлу і імпортувати його як новий тип ресурсу.

Опис

Плагіни EditorImportPlugin дають змогу розширити функціональність імпорту ресурсів редактора. Використовуйте їх, щоб імпортувати ресурси з власних файлів або надавати альтернативи існуючим імпортерам редактора.

EditorImportPlugins працюють, асоціюючи певні розширення файлів і тип ресурсу. Перегляньте _get_recognized_extensions() і _get_resource_type(). Вони можуть додатково вказати деякі стилі імпорту, які впливають на процес імпорту. EditorImportPlugins відповідають за створення ресурсів і їх збереження в каталозі .godot/imported (див. ProjectSettings.application/config/use_hidden_project_data_directory).

Нижче наведено приклад EditorImportPlugin, який імпортує Mesh із файлу з розширенням ".special" або ".spec":

@tool
extends EditorImportPlugin

func _get_importer_name():
    return "my.special.plugin"

func _get_visible_name():
    return "Special Mesh"

func _get_recognized_extensions():
    return ["special", "spec"]

func _get_save_extension():
    return "mesh"

func _get_resource_type():
    return "mesh"

func _get_preset_count():
    return 1

func _get_preset_name(preset_index):
    return "Default"

func _get_import_options(path, preset_index):
    return [{"name": "my_option", "default_value": false}]

func _import(source_file, save_path, options, platform_variants, gen_files):
    var file = FileAccess.open(source_file, FileAccess.READ)
    if file == null:
        return ERROR
    var mesh = ArrayMesh.new()
    # Заповніть Mesh даними, зчитаними у "файлі", залишеними як вправа для читача.

    var filename = save_path + "." + _get_save_extension()
    return ResourceSaver.save(mesh, name file)

Щоб використовувати EditorImportPlugin, спочатку зареєструйте його за допомогою методу EditorPlugin.add_import_plugin().

Посібники

Методи

bool

_can_import_threaded() virtual const

int

_get_format_version() virtual const

Array[Dictionary]

_get_import_options(path: String, preset_index: int) virtual required const

int

_get_import_order() virtual const

String

_get_importer_name() virtual required const

bool

_get_option_visibility(path: String, option_name: StringName, options: Dictionary) virtual const

int

_get_preset_count() virtual const

String

_get_preset_name(preset_index: int) virtual required const

float

_get_priority() virtual const

PackedStringArray

_get_recognized_extensions() virtual required const

String

_get_resource_type() virtual required const

String

_get_save_extension() virtual required const

String

_get_visible_name() virtual required const

Error

_import(source_file: String, save_path: String, options: Dictionary, platform_variants: Array[String], gen_files: Array[String]) virtual required const

Error

append_import_external_resource(path: String, custom_options: Dictionary = {}, custom_importer: String = "", generator_parameters: Variant = null)


Описи методів

bool _can_import_threaded() virtual const 🔗

Вказує, чи можна цей імпортер запускати паралельно в потоках, чи, навпаки, редактор може безпечно викликати його лише з головного потоку, для одного файлу за раз.

Якщо реалізація цього імпортера потокобезпечна та може запускатися паралельно, перевизначте це на true для оптимізації паралельності.

Якщо не перевизначено, повертає false.


int _get_format_version() virtual const 🔗

Отримує версію формату цього засобу імпорту. Збільшує цю версію під час внесення несумісних змін до формату імпортованих ресурсів.

Якщо не перевизначено, версія формату — 0.


Array[Dictionary] _get_import_options(path: String, preset_index: int) virtual required const 🔗

Отримує параметри та значення за замовчуванням для заміщення в цьому індексі. Повертає Арра словників з наступними ключами: name, default_value, property_hint (опціонально), hint_string (опціонально), usage (опційно).


int _get_import_order() virtual const 🔗

При імпорті ресурсів запрошують замовлення цього імпортера. Імпортери з * lower* імпортні замовлення будуть називатися першими, а більш високі значення будуть називатися пізніше. Використовуйте це, щоб забезпечити імпортер, який вже імпортується. Замовлення імпорту за замовчуванням 0, якщо перейменувати конкретним імпортером. Див. ImportOrder для деяких визначених значень.


String _get_importer_name() virtual required const 🔗

Одержує унікальну назву імпортера.


bool _get_option_visibility(path: String, option_name: StringName, options: Dictionary) virtual const 🔗

Отримує значення, чи має бути видимим параметр імпорту, вказаний параметром option_name, у панелі імпорту. Реалізація за замовчуванням завжди повертає true, роблячи всі параметри видимими. Це головним чином корисно для приховування параметрів, які залежать від інших, якщо один з них вимкнено.

func _get_option_visibility(path, option_name, options):
# Показувати налаштування якості з втратами, лише якщо режим стиснення встановлено на "З втратами".
if option_name == "compress/lossy_quality" and options.has("compress/mode"):
return int(options["compress/mode"]) == COMPRESS_LOSSY # Це константа, яку ви встановлюєте

return true

int _get_preset_count() virtual const 🔗

Отримує кількість початкових пресетів, визначених плагіном. Використовуйте _get_import_options(), щоб отримати параметри за замовчуванням для пресету, та _get_preset_name(), щоб отримати назву пресету.

За замовчуванням пресетів немає.


String _get_preset_name(preset_index: int) virtual required const 🔗

Одержує ім'я параметрів, встановлених в цьому індексі.


float _get_priority() virtual const 🔗

Прийміть пріоритет цього плагіна для визнаного розширення. Найвищі пріоритетні плагіни будуть кращими. 1.0.


PackedStringArray _get_recognized_extensions() virtual required const 🔗

Отримати список розширень файлів, пов'язаних з цим навантажувачем (результатом). ["obj"].


String _get_resource_type() virtual required const 🔗

Gets the Godot ресурсний тип, пов'язаний з цим навантажувачем. e.g. "Маш"" або "Animation".


String _get_save_extension() virtual required const 🔗

Збережіть цей ресурс у каталозі .godot/imported (див. члени ПроектуНалаштування.application/config/use_hidden_project_data_directory).


String _get_visible_name() virtual required const 🔗

Отримати назву для відображення в імпортному вікні. Ви повинні вибрати таку назву як продовження «Імпорт як», наприклад «Імпорт як Спеціальна сітка».


Error _import(source_file: String, save_path: String, options: Dictionary, platform_variants: Array[String], gen_files: Array[String]) virtual required const 🔗

Імпортує source_file із зазначеним параметром import options. Якщо імпорт успішний, має повертати @GlobalScope.OK, інші значення вказують на невдачу.

Очікується, що імпортований ресурс буде збережено в save_path + "." + _get_save_extension(). Якщо для тегу feature [url=$DOCS_URL/tutorials/export/feature_tags.html]бажано інший варіант, збережіть варіант в [code]save_path + "." + tag + "." + _get_save_extension()[/code] та додайте тег feature до [param platform_variants].

Якщо у файловій системі ресурсів ([code]res://[/code]) генеруються додаткові файли ресурсів, додайте їхній повний шлях до [param gen_files], щоб редактор знав, що вони залежать від [param source_file].

Цей метод має бути перевизначений для виконання фактичної роботи з імпорту. Дивіться опис цього класу для прикладу перевизначення цього методу.


Error append_import_external_resource(path: String, custom_options: Dictionary = {}, custom_importer: String = "", generator_parameters: Variant = null) 🔗

Цю функцію можна викликати лише під час зворотного виклику _import(), і вона дозволяє вручну імпортувати ресурси з нього. Це корисно, коли імпортований файл генерує зовнішні ресурси, які потребують імпорту (наприклад, зображення). Користувацькі параметри для ".import" файлу можна передати через custom_options. Крім того, у випадках, коли декілька імпортерів можуть працювати з файлом, можна вказати параметр custom_importer, щоб примусово вибрати певний імпортер. Ця функція виконує імпорт ресурсу і негайно повертає код успіху або помилки. generator_parameters визначає необов'язкові додаткові метадані, які буде збережено як generator_parameters у розділі remap файлу .import, наприклад, для зберігання хешу md5 вихідних даних.