From a813aad17105ed228e303457264331a5d327635e Mon Sep 17 00:00:00 2001 From: logonkhi Date: Mon, 24 Nov 2025 20:24:04 +0900 Subject: [PATCH] =?UTF-8?q?GLTFExporter=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Plugins/SimpleFileBrowser/Android.meta | 9 + .../Android/FBCallbackHelper.cs | 52 + .../Android/FBCallbackHelper.cs.meta | 19 + .../FBDirectoryReceiveCallbackAndroid.cs | 24 + .../FBDirectoryReceiveCallbackAndroid.cs.meta | 19 + .../Android/FBPermissionCallbackAndroid.cs | 24 + .../FBPermissionCallbackAndroid.cs.meta | 19 + .../Android/SimpleFileBrowser.aar | Bin 0 -> 19815 bytes .../Android/SimpleFileBrowser.aar.meta | 40 + Assets/Plugins/SimpleFileBrowser/Prefabs.meta | 9 + .../Prefabs/SimpleFileBrowserItem.prefab | 401 + .../Prefabs/SimpleFileBrowserItem.prefab.meta | 15 + .../Prefabs/SimpleFileBrowserQuickLink.prefab | 179 + .../SimpleFileBrowserQuickLink.prefab.meta | 14 + Assets/Plugins/SimpleFileBrowser/README.txt | 6 + .../Plugins/SimpleFileBrowser/README.txt.meta | 15 + .../Plugins/SimpleFileBrowser/Resources.meta | 9 + .../Resources/SimpleFileBrowserCanvas.prefab | 12589 ++++++++++++++++ .../SimpleFileBrowserCanvas.prefab.meta | 15 + Assets/Plugins/SimpleFileBrowser/Scripts.meta | 9 + .../Scripts/EventSystemHandler.cs | 73 + .../Scripts/EventSystemHandler.cs.meta | 19 + .../SimpleFileBrowser/Scripts/FileBrowser.cs | 3104 ++++ .../Scripts/FileBrowser.cs.meta | 19 + .../FileBrowserAccessRestrictedPanel.cs | 72 + .../FileBrowserAccessRestrictedPanel.cs.meta | 19 + .../Scripts/FileBrowserContextMenu.cs | 157 + .../Scripts/FileBrowserContextMenu.cs.meta | 19 + .../Scripts/FileBrowserCursorHandler.cs | 61 + .../Scripts/FileBrowserCursorHandler.cs.meta | 19 + ...leBrowserFileOperationConfirmationPanel.cs | 175 + ...wserFileOperationConfirmationPanel.cs.meta | 19 + .../Scripts/FileBrowserHelpers.cs | 565 + .../Scripts/FileBrowserHelpers.cs.meta | 19 + .../Scripts/FileBrowserItem.cs | 239 + .../Scripts/FileBrowserItem.cs.meta | 19 + .../Scripts/FileBrowserMovement.cs | 105 + .../Scripts/FileBrowserMovement.cs.meta | 19 + .../Scripts/FileBrowserQuickLink.cs | 21 + .../Scripts/FileBrowserQuickLink.cs.meta | 19 + .../Scripts/FileBrowserRenamedItem.cs | 85 + .../Scripts/FileBrowserRenamedItem.cs.meta | 19 + .../Scripts/NonDrawingGraphic.cs | 19 + .../Scripts/NonDrawingGraphic.cs.meta | 19 + .../Scripts/SimpleRecycledListView.meta | 9 + .../IListViewAdapter.cs | 16 + .../IListViewAdapter.cs.meta | 19 + .../SimpleRecycledListView/ListItem.cs | 24 + .../SimpleRecycledListView/ListItem.cs.meta | 19 + .../RecycledListView.cs | 259 + .../RecycledListView.cs.meta | 19 + .../SimpleFileBrowser/Scripts/UISkin.cs | 672 + .../SimpleFileBrowser/Scripts/UISkin.cs.meta | 19 + .../SimpleFileBrowser.Runtime.asmdef | 15 + .../SimpleFileBrowser.Runtime.asmdef.meta | 14 + Assets/Plugins/SimpleFileBrowser/Skins.meta | 9 + .../SimpleFileBrowser/Skins/DarkSkin.asset | 153 + .../Skins/DarkSkin.asset.meta | 16 + .../SimpleFileBrowser/Skins/LightSkin.asset | 152 + .../Skins/LightSkin.asset.meta | 16 + Assets/Plugins/SimpleFileBrowser/Sprites.meta | 9 + .../SimpleFileBrowser/Sprites/Checkmark.psd | Bin 0 -> 36656 bytes .../Sprites/Checkmark.psd.meta | 130 + .../Sprites/DropdownArrow.psd | Bin 0 -> 36665 bytes .../Sprites/DropdownArrow.psd.meta | 130 + .../SimpleFileBrowser/Sprites/ErrorIcon.psd | Bin 0 -> 54471 bytes .../Sprites/ErrorIcon.psd.meta | 142 + .../SimpleFileBrowser/Sprites/FileIcons.meta | 9 + .../Sprites/FileIcons/ArchiveIcon.png | Bin 0 -> 3920 bytes .../Sprites/FileIcons/ArchiveIcon.png.meta | 130 + .../Sprites/FileIcons/AudioFileIcon.png | Bin 0 -> 3287 bytes .../Sprites/FileIcons/AudioFileIcon.png.meta | 130 + .../Sprites/FileIcons/DefaultFileIcon.png | Bin 0 -> 2284 bytes .../FileIcons/DefaultFileIcon.png.meta | 130 + .../Sprites/FileIcons/DriveIcon.png | Bin 0 -> 4515 bytes .../Sprites/FileIcons/DriveIcon.png.meta | 130 + .../Sprites/FileIcons/ExecutableIcon.png | Bin 0 -> 2873 bytes .../Sprites/FileIcons/ExecutableIcon.png.meta | 130 + .../Sprites/FileIcons/FolderIcon.png | Bin 0 -> 2479 bytes .../Sprites/FileIcons/FolderIcon.png.meta | 130 + .../Sprites/FileIcons/ImageFileIcon.png | Bin 0 -> 4005 bytes .../Sprites/FileIcons/ImageFileIcon.png.meta | 130 + .../Sprites/FileIcons/LICENSE.txt | 12 + .../Sprites/FileIcons/LICENSE.txt.meta | 15 + .../Sprites/FileIcons/PdfFileIcon.png | Bin 0 -> 3153 bytes .../Sprites/FileIcons/PdfFileIcon.png.meta | 130 + .../Sprites/FileIcons/TextFileIcon.png | Bin 0 -> 3052 bytes .../Sprites/FileIcons/TextFileIcon.png.meta | 130 + .../Sprites/FileIcons/VideoFileIcon.png | Bin 0 -> 4689 bytes .../Sprites/FileIcons/VideoFileIcon.png.meta | 130 + .../Sprites/ForwardArrow.psd | Bin 0 -> 35650 bytes .../Sprites/ForwardArrow.psd.meta | 130 + .../Sprites/MultiSelectionToggleOff.psd | Bin 0 -> 31094 bytes .../Sprites/MultiSelectionToggleOff.psd.meta | 130 + .../Sprites/MultiSelectionToggleOn.psd | Bin 0 -> 34440 bytes .../Sprites/MultiSelectionToggleOn.psd.meta | 130 + .../Sprites/ResizeCursor.png | Bin 0 -> 3065 bytes .../Sprites/ResizeCursor.png.meta | 130 + .../Sprites/SimpleFileBrowserDrag.psd | Bin 0 -> 23863 bytes .../Sprites/SimpleFileBrowserDrag.psd.meta | 130 + .../Sprites/SimpleFileBrowserMoreOptions.psd | Bin 0 -> 48980 bytes .../SimpleFileBrowserMoreOptions.psd.meta | 130 + .../SimpleFileBrowserSlicedBackground1.psd | Bin 0 -> 27012 bytes ...impleFileBrowserSlicedBackground1.psd.meta | 130 + .../SimpleFileBrowserSlicedBackground2.psd | Bin 0 -> 22684 bytes ...impleFileBrowserSlicedBackground2.psd.meta | 130 + .../SimpleFileBrowserSlicedBackground3.psd | Bin 0 -> 25574 bytes ...impleFileBrowserSlicedBackground3.psd.meta | 130 + .../SimpleFileBrowserSlicedBackground4.psd | Bin 0 -> 25516 bytes ...impleFileBrowserSlicedBackground4.psd.meta | 130 + .../SimpleFileBrowserSlicedBackground5.psd | Bin 0 -> 26938 bytes ...impleFileBrowserSlicedBackground5.psd.meta | 130 + .../SimpleFileBrowserSpriteAtlas.spriteatlas | 124 + ...pleFileBrowserSpriteAtlas.spriteatlas.meta | 15 + Assets/Scripts/UVC/GLTF.meta | 8 + .../UVC/GLTF/GLTFExporter.Runtime.asmdef | 18 + .../UVC/GLTF/GLTFExporter.Runtime.asmdef.meta | 7 + Assets/Scripts/UVC/GLTF/GLTFExporter.cs | 831 + Assets/Scripts/UVC/GLTF/GLTFExporter.cs.meta | 2 + ProjectSettings/GraphicsSettings.asset | 7 + 120 files changed, 23991 insertions(+) create mode 100644 Assets/Plugins/SimpleFileBrowser/Android.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/README.txt create mode 100644 Assets/Plugins/SimpleFileBrowser/README.txt.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/EventSystemHandler.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/EventSystemHandler.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserAccessRestrictedPanel.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserAccessRestrictedPanel.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserFileOperationConfirmationPanel.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserFileOperationConfirmationPanel.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/UISkin.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/UISkin.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef create mode 100644 Assets/Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Skins.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Skins/DarkSkin.asset create mode 100644 Assets/Plugins/SimpleFileBrowser/Skins/DarkSkin.asset.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Skins/LightSkin.asset create mode 100644 Assets/Plugins/SimpleFileBrowser/Skins/LightSkin.asset.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/LICENSE.txt create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/LICENSE.txt.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ResizeCursor.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ResizeCursor.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSpriteAtlas.spriteatlas create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSpriteAtlas.spriteatlas.meta create mode 100644 Assets/Scripts/UVC/GLTF.meta create mode 100644 Assets/Scripts/UVC/GLTF/GLTFExporter.Runtime.asmdef create mode 100644 Assets/Scripts/UVC/GLTF/GLTFExporter.Runtime.asmdef.meta create mode 100644 Assets/Scripts/UVC/GLTF/GLTFExporter.cs create mode 100644 Assets/Scripts/UVC/GLTF/GLTFExporter.cs.meta diff --git a/Assets/Plugins/SimpleFileBrowser/Android.meta b/Assets/Plugins/SimpleFileBrowser/Android.meta new file mode 100644 index 00000000..2e6c447e --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ff366e107d0770a41a2afe8ad87ef708 +folderAsset: yes +timeCreated: 1509396159 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs b/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs new file mode 100644 index 00000000..2ec654b2 --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs @@ -0,0 +1,52 @@ +#if UNITY_EDITOR || UNITY_ANDROID +using System; +using UnityEngine; + +namespace SimpleFileBrowser +{ + public class FBCallbackHelper : MonoBehaviour + { + private bool autoDestroyWithCallback; + private Action mainThreadAction = null; + + public static FBCallbackHelper Create( bool autoDestroyWithCallback ) + { + FBCallbackHelper result = new GameObject( "FBCallbackHelper" ).AddComponent(); + result.autoDestroyWithCallback = autoDestroyWithCallback; + DontDestroyOnLoad( result.gameObject ); + return result; + } + + public void CallOnMainThread( Action function ) + { + lock( this ) + { + mainThreadAction += function; + } + } + + private void Update() + { + if( mainThreadAction != null ) + { + try + { + Action temp; + lock( this ) + { + temp = mainThreadAction; + mainThreadAction = null; + } + + temp(); + } + finally + { + if( autoDestroyWithCallback ) + Destroy( gameObject ); + } + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta b/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta new file mode 100644 index 00000000..83c39865 --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 997bfc59716c24c41ad03bcbd7f8ef0a +timeCreated: 1570918076 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 113006 + packageName: Runtime File Browser + packageVersion: 1.7.4 + assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs + uploadId: 758381 diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs b/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs new file mode 100644 index 00000000..55f85c78 --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs @@ -0,0 +1,24 @@ +#if UNITY_EDITOR || UNITY_ANDROID +using UnityEngine; + +namespace SimpleFileBrowser +{ + public class FBDirectoryReceiveCallbackAndroid : AndroidJavaProxy + { + private readonly FileBrowser.AndroidSAFDirectoryPickCallback callback; + private readonly FBCallbackHelper callbackHelper; + + public FBDirectoryReceiveCallbackAndroid( FileBrowser.AndroidSAFDirectoryPickCallback callback ) : base( "com.yasirkula.unity.FileBrowserDirectoryReceiver" ) + { + this.callback = callback; + callbackHelper = FBCallbackHelper.Create( true ); + } + + [UnityEngine.Scripting.Preserve] + public void OnDirectoryPicked( string rawUri, string name ) + { + callbackHelper.CallOnMainThread( () => callback( rawUri, name ) ); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta b/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta new file mode 100644 index 00000000..cc75acfd --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 8dec4dc5be16ca84e9c147627361671d +timeCreated: 1520199471 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 113006 + packageName: Runtime File Browser + packageVersion: 1.7.4 + assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs + uploadId: 758381 diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs b/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs new file mode 100644 index 00000000..ad0b2c41 --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs @@ -0,0 +1,24 @@ +#if UNITY_EDITOR || UNITY_ANDROID +using UnityEngine; + +namespace SimpleFileBrowser +{ + public class FBPermissionCallbackAndroid : AndroidJavaProxy + { + private readonly FileBrowser.PermissionCallback callback; + private readonly FBCallbackHelper callbackHelper; + + public FBPermissionCallbackAndroid( FileBrowser.PermissionCallback callback ) : base( "com.yasirkula.unity.FileBrowserPermissionReceiver" ) + { + this.callback = callback; + callbackHelper = FBCallbackHelper.Create( true ); + } + + [UnityEngine.Scripting.Preserve] + public void OnPermissionResult( int result ) + { + callbackHelper.CallOnMainThread( () => callback( (FileBrowser.Permission) result ) ); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta b/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta new file mode 100644 index 00000000..c816f678 --- /dev/null +++ b/Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 2cd91db0ba676ef47af67e3597037d1a +timeCreated: 1520199471 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 113006 + packageName: Runtime File Browser + packageVersion: 1.7.4 + assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs + uploadId: 758381 diff --git a/Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar b/Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar new file mode 100644 index 0000000000000000000000000000000000000000..78e281f644d165a8b70f84a9f2ff5167f085eea6 GIT binary patch literal 19815 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 x|L*Gg9}WP#68d92`=`0@c&xk{OP7YS*Y>X^dC