Description
Describe the project you are working on:
Applies to any project.
Describe the problem or limitation you are having in your project:
Assigning a Resource
to an export
ed field in the editor is tedious.
For example, suppose I want to assign the sound shield_break.wav
to an AudioStreamPlayer
. I have two options:
- Click
stream > Load
, and click through multiple folders until I find the sound I need. - Type a string like
shield_b
in theFileSystem
tab, then click-and-drag that file into tostream
field.
I propose that clicking Load
on any Resource
field should show a fuzzy selector that shows only files of the appropriate type (e.g. wav/ogg
for an AudioStream
). There are 3 examples of such selectors in the editor already:
- The FileSystem tab:
- The
Call Method
selector for anAnimationPlayer
:
- The "Quick Open Scene" selector:
I think the 3rd has the best behavior (it can filter by a non-continuous string, e.g. "lats" will select "lab.tscn"), however the first might be the easiest to leverage as it is already designed for the filesystem.
(Maybe a future proposal is to use the same matching logic across all of these)
Describe how this feature / enhancement will help you overcome this problem or limitation:
It will make selecting resources easier as it requires less clicks than navigating through folders, and avoids the click-and-drag aspect of using the FileSystem tab.
Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:
- Click on
[empty]
and clickload
:
- See one of the dialogs shown above, but filtered to files of the appropriate type
- Type into the search box, files are fuzzy-filtered
- Press
Enter
to select the file you want
Describe implementation detail for your proposal (in code), if possible:
When load
is clicked, spawn one of the existing fuzzy selection dialogs populated with files of the correct type, then assign the result to the selected field.
If this enhancement will not be used often, can it be worked around with a few lines of script?:
It will be used often, and I don't see an easy way to script it.
Is there a reason why this should be core and not an add-on in the asset library?:
I believe it will provide a superior user experience for everyone.