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.

ResourceFormatLoader

Hérite de : RefCounted < Object

Charge un type de ressource spécifique depuis un fichier.

Description

Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the ResourceLoader singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.

Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with class_name for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a ResourceFormatSaver.

Note: You can also extend EditorImportPlugin if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends on if the format is suitable or not for the final exported game. For example, it's better to import .png textures as .ctex (CompressedTexture2D) first, so they can be loaded with better efficiency on the graphics card.

Méthodes

bool

_exists(path: String) virtual const

PackedStringArray

_get_classes_used(path: String) virtual const

PackedStringArray

_get_dependencies(path: String, add_types: bool) virtual const

PackedStringArray

_get_recognized_extensions() virtual const

String

_get_resource_script_class(path: String) virtual const

String

_get_resource_type(path: String) virtual const

int

_get_resource_uid(path: String) virtual const

bool

_handles_type(type: StringName) virtual const

Variant

_load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual required const

bool

_recognize_path(path: String, type: StringName) virtual const

Error

_rename_dependencies(path: String, renames: Dictionary) virtual const


Énumérations

enum CacheMode: 🔗

CacheMode CACHE_MODE_IGNORE = 0

Ni la ressource principale (celle dont le chargement est demandé) ni ses sous-ressources ne sont récupérées depuis le cache ni y sont stockées. Les dépendances (ressources externes) sont chargées avec CACHE_MODE_REUSE.

CacheMode CACHE_MODE_REUSE = 1

La ressource principale (celle dont le chargement est demandé), ses sous-ressources et ses dépendances (ressources externes) sont récupérées depuis le cache si elles y sont présentes, plutôt que chargées. Celles qui ne sont pas en cache sont chargées puis stockées dans le cache. Ces mêmes règles s’appliquent récursivement à l’ensemble de l’arbre des dépendances (ressources externes).

CacheMode CACHE_MODE_REPLACE = 2

Comme CACHE_MODE_REUSE, mais le cache est vérifié pour la ressource principale (celle dont le chargement est demandé) ainsi que pour chacune de ses sous-ressources. Celles déjà présentes dans le cache, à condition que les types chargés et mis en cache correspondent, voient leurs données rafraîchies depuis le stockage dans les instances déjà existantes. Sinon, elles sont recréées en tant qu’objets entièrement nouveaux.

CacheMode CACHE_MODE_IGNORE_DEEP = 3

Comme CACHE_MODE_IGNORE, mais propagé de façon récursive dans l'arbre des dépendances (ressources externes).

CacheMode CACHE_MODE_REPLACE_DEEP = 4

Comme CACHE_MODE_REPLACE, mais propagé de façon récursive dans l'arbre des dépendances (ressources externes).


Descriptions des méthodes

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 🔗

Should return the dependencies for the resource at the given path. Each dependency is a string composed of one to three sections separated by ::, with trailing empty sections omitted:

  • The first section should contain the UID if the resource has one. Otherwise, it should contain the file path.

  • The second section should contain the class name of the dependency if add_types is true. Otherwise, it should be empty.

  • The third section should contain the fallback path if the resource has a UID. Otherwise, it should be empty.

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",
    ]

Note: Custom resource types defined by scripts aren't known by the ClassDB, so "Resource" can be used for the class name.


PackedStringArray _get_recognized_extensions() virtual const 🔗

Obtient la liste des extensions des fichiers que ce chargeur peut lire.


String _get_resource_script_class(path: String) virtual const 🔗

Renvoie le nom de classe de script associé à la Resource au chemin path donné. Si la ressource n'a pas de script ou que le script n'est pas une classe nommée, elle devrait renvoyer "".


String _get_resource_type(path: String) virtual const 🔗

Obtient le nom de classe de la ressource associée au chemin donné. Si le chargeur ne peut pas la gérer, il devrait renvoyer "".

Note : Les types de ressources personnalisées définis par des scripts ne sont pas connus par la ClassDB, donc vous pouvez simplement renvoyer "Resource" pour eux.


int _get_resource_uid(path: String) virtual const 🔗

Doit renvoyer l'identifiant unique pour la ressource associée au chemin donné. Si cette méthode n'est pas redéfinie, un fichier .uid est généré avec le fichier de ressources, contenant l'identifiant unique.


bool _handles_type(type: StringName) virtual const 🔗

Indique quelle classe de ressource ce chargeur peut charger.

Note : Les types de ressources personnalisées définis par des scripts ne sont pas connus par la ClassDB, donc vous pouvez simplement gérer "Resource" pour eux.


Variant _load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual required const 🔗

Charge une ressource lorsque le moteur juge ce chargeur compatible. Si la ressource chargée est le résultat d'un import, original_path ciblera le fichier source. Renvoie un objet Resource lors du succès, ou une constante Error en cas d'échec.

La propriété cache_mode définit si et comment le cache devrait être utilisé ou mis à jour lors du chargement de la ressource. Voir CacheMode pour plus de détails.


bool _recognize_path(path: String, type: StringName) virtual const 🔗

Indique si ce chargeur doit ou non charger une ressource depuis son chemin de ressource pour un type donné.

Si cette méthode n’est pas implémentée, le comportement par défaut vérifie si l’extension du chemin fait partie de celles renvoyées par _get_recognized_extensions(), et si le type fait partie de ceux renvoyés par _get_resource_type().


Error _rename_dependencies(path: String, renames: Dictionary) virtual const 🔗

Si elle implémentée, renomme les dépendances dans la ressource donnée et l'enregistre. renames est un dictionnaire { String => String } qui associe les anciens chemins de dépendance avec les nouveaux chemins.

Renvoie @GlobalScope.OK lors du succès, ou une constante Error en cas d'échec.