Resources Browser¶
The Resources Browser is the file manager for your project's assets. It lets you import new files, preview existing resources, drag assets into scenes, assign them to components, and open specialized tool windows such as the Sprite Slicer and Tileset Slicer.
Supported resource types¶
| Type | Extensions | Typical use |
|---|---|---|
| Textures | PNG, JPG, BMP, TGA, PSD, HDR, SVG | Sprites, UI images, albedo/normal/roughness/metallic maps, skyboxes |
| Models | GLTF, GLB, OBJ | 3D meshes, skeletons, animations, morph targets |
| Materials | .material (YAML) |
Reusable PBR material definitions shared across meshes |
| Audio | OGG, WAV, MP3, FLAC | Sound effects, music, 3D spatial audio |
| Fonts | TTF, OTF | Text and UI rendering |
| Scenes | YAML scene files | Saved scenes and child scene references |
| Bundles | YAML .bundle files |
Reusable entity hierarchies — see Bundles |
| Shaders | Shader data files | Built, serialized, and loaded shader programs |
| Scripts | LUA, CPP, H | Gameplay logic files |
Previews¶
The browser includes inline preview renderers. Select a resource to see:
- Texture preview — full image with mip-level and channel controls.
- Model preview — interactive 3D view with orbit navigation, lighting, and material display.
- Material preview — shaded sphere with the PBR material applied.
- Font preview — sample text at the font's supported sizes.
- Audio preview — waveform display and play button.
Use previews to catch missing textures, wrong scale, or broken imports before dropping assets into a scene.
Importing assets¶
Copy files into your project folder or drag them from your OS file manager into the Resources Browser. The editor scans the asset directories on startup and whenever the project folder changes.
File naming
Use lowercase, hyphen-or-underscore-separated file names without spaces. Consistent naming avoids case-sensitivity issues on Linux and Android and makes asset paths predictable in scripts.
Dragging assets out of the browser¶
Files dragged from the Resources Browser are accepted by several editor windows:
| Asset type | Drop target | Result |
|---|---|---|
| Model (GLTF/GLB/OBJ) | Scene view (3D scene) | Creates a Model entity at the drop position |
| Image | Scene view, empty space (2D / UI scene) | Creates a Sprite (2D) or Image widget (UI) sized to the texture |
| Image | Scene view, onto a mesh or UI entity | Assigns the texture (base color / UI texture) with live preview |
| Material | Scene view, onto a mesh entity | Applies the material to all submeshes with live preview |
Material (.material) |
Properties → Material preview | Creates a new .material file in the open folder and links the source submesh |
| Font | Scene view, onto a Text entity | Assigns the font with live preview |
| Texture / audio / asset | A component field in Properties | Assigns the file to that field |
.scene file |
Structure panel, scene root | Adds the scene as a child scene |
.bundle file |
Structure panel | Creates a bundle instance (as child of the target entity, or at the root) |
See Scene View for the viewport behaviors in detail.
Material files¶
A .material file stores a PBR material as YAML: base colour factor, metallic and
roughness factors, alpha mode and cutoff, per-texture UV sets, and texture paths for
albedo, normal, metallic-roughness, occlusion, and emissive slots. Material files live
anywhere under the project and appear in the Resources Browser with a shaded-sphere
thumbnail preview.
Creating a material file¶
Drag the material preview from the Properties window (Mesh → Submesh → Material row) into the Resources Browser. Drop it on the folder where you want the file. The editor:
- Creates
Material.material(orMaterial_1.material, … if the name already exists). - Writes the current PBR settings into that file.
- Links the submesh you dragged from, so future edits to the file propagate back to that mesh automatically.
This is the fastest way to turn a tuned material into a reusable project asset.
Applying and sharing materials¶
| Action | How |
|---|---|
| Apply to a mesh | Drag the .material file from the browser onto a mesh in the Scene view, or onto the Material row in Properties |
| Share across many meshes | Link each mesh submesh to the same .material file — all linked meshes stay identical |
| Edit once, update all | Change the .material file on disk (or via linked Properties fields); the editor reloads linked meshes when the file timestamp changes |
| Stop sharing | Click the unlink button next to the material name in Properties |
Linked materials are tracked per submesh. The scene stores the link; the .material file
is the single source of truth for colour factors, alpha settings, UV selections, and
texture paths.
Organize shared materials
Keep reusable .material files under something like assets/materials/ and link
props, terrain chunks, and instanced meshes to the same file instead of duplicating
values in every scene.
Dragging entities in: creating bundles¶
The Resources Browser is also a drop target: drag an entity (or a multi-selection)
from the Structure panel into the browser to save it as a .bundle file in the
currently open folder. The dragged hierarchy is replaced in the scene by an instance of
the new bundle. Since the file is created wherever you drop it, bundles can be
organized in any directory of the project.
See Bundles for the full bundle workflow.
Context menu¶
Right-click any resource to access:
- Open — opens the file with the appropriate editor tool.
- Open in Sprite Slicer — opens the texture in the Sprite Slicer tool.
- Open in Tileset Slicer — opens the texture in the Tileset Slicer tool.
- Rename — renames the file on disk and updates scene references.
- Delete — removes the file from the project.
- Show in OS — reveals the file in the system file manager.
Sprite and tileset slicing¶
Two dedicated slicer tools process sprite sheets and tilesets:
Sprite Slicer¶
The Sprite Slicer divides a texture into named frames for sprite animation or individual sprite display. Supports grid-based slicing (uniform cell size) and free-form rectangle drawing for irregular layouts.
![]()
See Sprite Slicer for the complete workflow.
Tileset Slicer¶
The Tileset Slicer splits a tileset texture into uniformly-sized tiles and assigns each tile a numeric ID. Those IDs are used when painting tiles in the Tilemap editor and when defining tile data in scripts.
See Tileset Slicer for the complete workflow.
Organization guidelines¶
- Keep source art, imported assets, and generated data in separate folders.
- Separate audio by category:
sounds/effects/,sounds/music/, etc. - Prefer GLTF for animated or material-rich 3D assets; OBJ for simple static geometry.
- Store collision meshes separately from visual meshes.
- Remove unused large assets before exporting mobile or web builds to keep bundle sizes small.