Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gkngkc/UnityStandaloneFileBrowser
A native file browser for unity standalone platforms
https://github.com/gkngkc/UnityStandaloneFileBrowser
file-browser file-chooser gtk linux macos unity unity3d webgl windows
Last synced: 2 months ago
JSON representation
A native file browser for unity standalone platforms
- Host: GitHub
- URL: https://github.com/gkngkc/UnityStandaloneFileBrowser
- Owner: gkngkc
- License: mit
- Created: 2017-01-08T20:27:36.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-29T17:00:00.000Z (9 months ago)
- Last Synced: 2024-10-29T15:17:34.693Z (3 months ago)
- Topics: file-browser, file-chooser, gtk, linux, macos, unity, unity3d, webgl, windows
- Language: C#
- Homepage:
- Size: 19.4 MB
- Stars: 2,086
- Watchers: 73
- Forks: 327
- Open Issues: 98
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-unity-open-source-on-github - UnityStandaloneFileBrowser - A native file browser for unity standalone platforms (Script Utility)
README
# Unity Standalone File Browser
A simple wrapper for native file dialogs on Windows/Mac/Linux.
- Works in editor and runtime.
- Open file/folder, save file dialogs supported.
- Multiple file selection.
- File extension filter.
- Mono/IL2CPP backends supported.
- Linux support by [Ricardo Rodrigues](https://github.com/RicardoEPRodrigues).
- Basic WebGL support.[Download Package](https://github.com/gkngkc/UnityStandaloneFileBrowser/releases/download/1.2/StandaloneFileBrowser.unitypackage)
Example usage:
```csharp
// Open file
var paths = StandaloneFileBrowser.OpenFilePanel("Open File", "", "", false);// Open file async
StandaloneFileBrowser.OpenFilePanelAsync("Open File", "", "", false, (string[] paths) => { });// Open file with filter
var extensions = new [] {
new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),
new ExtensionFilter("Sound Files", "mp3", "wav" ),
new ExtensionFilter("All Files", "*" ),
};
var paths = StandaloneFileBrowser.OpenFilePanel("Open File", "", extensions, true);// Save file
var path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "");// Save file async
StandaloneFileBrowser.SaveFilePanelAsync("Save File", "", "", "", (string path) => { });// Save file with filter
var extensionList = new [] {
new ExtensionFilter("Binary", "bin"),
new ExtensionFilter("Text", "txt"),
};
var path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", extensionList);
```
See Sample/BasicSampleScene.unity for more detailed examples.Mac Screenshot
![Alt text](/Images/sfb_mac.jpg?raw=true "Mac")Windows Screenshot
![Alt text](/Images/sfb_win.jpg?raw=true "Win")Linux Screenshot
![Alt text](/Images/sfb_linux.jpg?raw=true "Win")Notes:
- Windows
* Requires .NET 2.0 api compatibility level
* Async dialog opening not implemented, ..Async methods simply calls regular sync methods.
* Plugin import settings should be like this;
![Alt text](/Images/win_import_1.jpg?raw=true "Plugin Import Ookii") ![Alt text](/Images/win_import_2.jpg?raw=true "Plugin Import System.Forms")
- Mac
* Sync calls are throws an exception at development build after native panel loses and gains focus. Use async calls to avoid this.WebGL:
- Basic upload/download file support.
- File filter support.
- Not well tested, probably not much reliable.
- Since browsers require more work to do file operations, webgl isn't directly implemented to Open/Save calls. You can check CanvasSampleScene.unity and canvas sample scripts for example usages.
Live Demo: https://gkngkc.github.io/