ResourceFormatLoader
Успадковує: RefCounted < Object
Завантаження певного ресурсу з файлу.
Опис
Godot завантажує ресурсів в редакторі або в експортованих іграх за допомогою ResourceFormatLoaders. Вони автоматично перераховуються за допомогою однотону ResourceLoader або при завантаженні ресурсу з внутрішніми залежностями. Кожен тип файлів може навантажувати як інший тип ресурсу, так що кілька ResourceFormatLoaders зареєстровані в двигуні.
Продовжити цей клас дозволяє самостійно визначити навантажувач. Обов'язково поважати типи документів і значення. Для цього необхідно вказати назву світового класу class_name. Як вбудовані ResourceFormatLoaders, він буде називатися автоматично при завантаженні ресурсів ручного типу (s). Ви також можете реалізувати ResourceFormatSaver.
Примітка: Ви також можете продовжити ResourceFormatSaver, якщо ресурсний тип, який вам потрібно, але Godot не може завантажувати свій формат. Вибираючи один спосіб над іншим залежить від того, чи підходить формат або не для остаточної експортованої гри. Наприклад, краще імпортувати .png текстури, як .ctex (CompressedTexture2D), щоб вони могли бути завантажені кращою ефективністю на графічному картці.
Методи
_get_classes_used(path: String) virtual const |
|
_get_dependencies(path: String, add_types: bool) virtual const |
|
_get_recognized_extensions() virtual const |
|
_get_resource_script_class(path: String) virtual const |
|
_get_resource_type(path: String) virtual const |
|
_get_resource_uid(path: String) virtual const |
|
_handles_type(type: StringName) virtual const |
|
_load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual const |
|
_recognize_path(path: String, type: StringName) virtual const |
|
_rename_dependencies(path: String, renames: Dictionary) virtual const |
Переліки
enum CacheMode: 🔗
CacheMode CACHE_MODE_IGNORE = 0
Не виходячи з основного ресурсу (за запитом, який буде завантажений) або будь-який його субресурси отримують з кешу, а не зберігаються в ньому. Залежності (зовнішні ресурси) навантажуються CACHE_MODE_REUSE.
CacheMode CACHE_MODE_REUSE = 1
Основним ресурсом (за запитом, який буде завантажений), його субресурси та його залежності (зовнішні ресурси) отримуються з кешу, якщо присутні, замість завантажених. Ті, які не завантажуються, а потім зберігаються в кеші. Ці ж правила пропагуються прямо на дерево залежностей (зовнішні ресурси).
CacheMode CACHE_MODE_REPLACE = 2
Як CACHE_MODE_REUSE, але кеш перевіряється на основний ресурс (за запитом, який буде завантажений) і для кожного його субресурсів. Тим не менш, у кеш-пам'яті з’являються дані, які оцінюються від зберігання в вже існуючі екземпляри. В іншому випадку вони відтворюються як абсолютно нові об'єкти.
CacheMode CACHE_MODE_IGNORE_DEEP = 3
Як CACHE_MODE_IGNORE, але пропагований рекурсивно вниз дерево залежностей (зовнішні ресурси).
CacheMode CACHE_MODE_REPLACE_DEEP = 4
Як CACHE_MODE_REPLACE, але пропагований рекурсивно вниз дерево залежностей (зовнішні ресурси).
Описи методів
bool _exists(path: String) virtual const 🔗
There is currently no description for this method. Please help us by contributing one!
PackedStringArray _get_classes_used(path: String) virtual const 🔗
There is currently no description for this method. Please help us by contributing one!
PackedStringArray _get_dependencies(path: String, add_types: bool) virtual const 🔗
Повинно повертати залежності для ресурсу за вказаним path. Кожна залежність – це рядок, що складається з однієї-трьох секцій, розділених ::, з пропущеними порожніми секціями в кінці:
Перша секція повинна містити UID, якщо ресурс має його. В іншому випадку вона повинна містити шлях до файлу.
Друга секція повинна містити назву класу залежності, якщо
add_typesмає бутиtrue. В іншому випадку вона повинна бути порожньою.Третя секція повинна містити резервний шлях, якщо ресурс має UID. В іншому випадку вона повинна бути порожньою.
func _get_dependencies(path, add_types):
return [
"uid://fqgvuwrkuixh::Script::res://script.gd",
"uid://fqgvuwrkuixh::::res://script.gd",
"res://script.gd::Script",
"res://script.gd",
]
Примітка: Користувацькі типи ресурсів, визначені скриптами, не відомі ClassDB, тому для назви класу можна використовувати "Resource".
PackedStringArray _get_recognized_extensions() virtual const 🔗
Отримати список розширень для файлів цей навантажувач здатний читати.
String _get_resource_script_class(path: String) virtual const 🔗
Повертає назву класу скрипта, пов'язаного з Resource у вказаному path. Якщо ресурс не має скрипта або скрипт не є іменованим класом, він має повернути "".
String _get_resource_type(path: String) virtual const 🔗
Отримує назву класу ресурсу, пов'язаного з даним контуром. Якщо навантажувач не може працювати, він повинен повернутися "".
Примітка: Користувальницькі типи ресурсів, визначені скриптами, не відомі ClassDB, тому ви можете просто повернути "Resource" для них.
int _get_resource_uid(path: String) virtual const 🔗
Має повертати унікальний ідентифікатор для ресурсу, пов’язаного з заданим шляхом. Якщо цей метод не перевизначено, файл .uid генерується разом із файлом ресурсу, що містить унікальний ідентифікатор.
bool _handles_type(type: StringName) virtual const 🔗
Повідомляємо, що ресурсний клас цей навантажувач може навантажуватися.
Примітка: Користувальницькі типи ресурсів, визначені скриптами, не відомі ClassDB, тому ви можете просто обробляти "Resource" для них.
Variant _load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual const 🔗
Завантажує ресурс, коли механізм виявляє, що цей завантажувач сумісний. Якщо завантажений ресурс є результатом імпорту, original_path буде орієнтований на вихідний файл. Повертає об'єкт Resource у разі успіху або константу Error у разі невдачі.
Властивість cache_mode визначає, чи слід використовувати або оновлювати кеш під час завантаження ресурсу, і як. Див. CacheMode для отримання детальної інформації.
bool _recognize_path(path: String, type: StringName) virtual const 🔗
Вказує, чи повинен цей завантажувач завантажувати ресурс зі свого шляху до ресурсу для заданого типу.
Якщо це не реалізовано, поведінка за замовчуванням повертає, чи знаходиться розширення шляху в межах наданих методом _get_recognized_extensions(), і чи знаходиться тип в межах наданих методом _get_resource_type().
Error _rename_dependencies(path: String, renames: Dictionary) virtual const 🔗
Якщо реалізовано, перейменовує залежності в межах заданого ресурсу та зберігає його. renames – це словник { String => String }, який зіставляє старі шляхи залежностей з новими шляхами.
Повертає @GlobalScope.OK у разі успіху або константу Error у разі невдачі.