$ account yasirkula
This repository is a Unity plugin that provides a fully-featured file browser dialog for save/load operations during gameplay. It supports file and folder selection, multi-selection, search, filtering, context menu operations (rename, delete, create folder), window drag/resize, and runtime theming. The plugin uses a singleton pattern to ensure only one dialog is open at a time and offers coroutine-based methods (WaitForSaveDialog/WaitForLoadDialog) for seamless integration with Unity's async system. The architecture is structured as a set of Unity scripts, prefabs, and assets. The main controller is FileBrowser.cs, which manages the dialog lifecycle and UI interactions. FileBrowserHelpers.cs abstracts file system operations across platforms, with special handling for Android's Storage Access Framework (SAF) via native Java code compiled into an .aar. The UI is built with Unity's uGUI system and includes a recycled list view for efficient rendering of large directories. Skinning is handled by UISkin.cs, a ScriptableObject that defines colors, fonts, and sprites. The plugin also includes Android-specific Java classes for directory picking and permission requests. Key patterns include object pooling (RecycledListView), platform abstraction (FileBrowserHelpers), theming via scriptable objects (UISkin), and coroutine support. The Android integration is particularly noteworthy, as it handles the complexities of the Storage Access Framework for file operations on modern Android versions. The plugin is designed to be embedded in any Unity project and is distributed as a Unity package via the Asset Store or OpenUPM.
UnityNativeShare is a Unity plugin library that enables native file and text sharing on Android and iOS platforms. The codebase consists of a C# Unity plugin (NativeShare.cs) that provides a fluent API for sharing content, with native implementations in Java for Android and Objective-C++ for iOS. The Android implementation uses a ContentProvider for secure file sharing and includes custom share dialog support for callback reliability across different Android versions. The iOS implementation uses UIActivityViewController with proper memory management for share result callbacks. The architecture follows a standard Unity plugin pattern with platform-specific native code wrapped by C# interfaces. Key entry points are the NativeShare class methods (AddFile, SetText, Share) and the native callback receivers (NSShareResultCallbackAndroid, NSShareResultCallbackiOS). The plugin handles platform-specific edge cases including Xiaomi/MIUI device quirks, Android 11+ package visibility requirements, and iOS photo library permissions. However, the README explicitly states this asset is no longer maintained, which is a critical finding. While the code demonstrates solid craftsmanship for its time, the lack of active maintenance means compatibility with newer OS versions (Android 13+, iOS 16+) is uncertain. The technical debt includes potential issues with newer Android package visibility changes and iOS share sheet behavior modifications.