|
|
|
 |
Reply From: |
Zylann |
You can either write an import plugin or a custom resource loader.
Import plugins let Godot convert the file into its native format, so it can be loaded efficiently at runtime. See Import plugins — Godot Engine (stable) documentation in English
It is also possible to extend ResourceFormatLoader
to load the file as-is: ResourceFormatLoader — Godot Engine (stable) documentation in English
An import plugin should work in your case if your binary file contains a mesh, so you can import it as a mesh.
Thank you for your answer and I think I will go with the import plugin route.
I have a followup question though, my single binary file contains multiple meshes (600+).
Currently when I use my script at runtime to parse it, I draw each mesh with a SurfaceTool and add it to an array.
My question is, can I import a single file but actually add multiple mesh to the res:// folder?
Example:
func get_save_extension():
return "mesh"
func get_resource_type():
return "Mesh"
Can I turn that into an array of meshes?
or can I just call the following:
ResourceSaver.save("%s.%s" % [save_path, get_save_extension()], mesh)
Multiple times?
majidarif | 2020-03-03 04:29
Hmm if your binary contains multiple meshes, you may need to import it as a scene with our multiple meshes in it, then. That’s what the DAE, GLTF or FBX importers do. I’m not familiar to how they do it, though.
Zylann | 2020-03-03 13:59
I tried MeshLibrary but it didn’t work.
I also tried Scene but I couldn’t add a mesh to a Spacial. I just need the mesh data to be used at runtime. I’m not gonna be using all but I do need to have all in memory in case I will need to use it.
I’m still looking for alternatives.
Thank you for your help.
majidarif | 2020-03-03 14:56
I also tried Scene but I couldn’t add a mesh to a Spacial
Importers that produce scenes use MeshInstance
nodes to put the mesh on.
Zylann | 2020-03-03 18:37