├── .github ├── AAR Source (Android) │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── yasirkula │ │ │ └── unity │ │ │ ├── FileBrowser.java │ │ │ ├── FileBrowserDirectoryPickerFragment.java │ │ │ ├── FileBrowserDirectoryReceiver.java │ │ │ ├── FileBrowserPermissionFragment.java │ │ │ ├── FileBrowserPermissionReceiver.java │ │ │ └── FileBrowserSAFEntry.java │ └── proguard.txt ├── README.md └── screenshots │ └── filebrowser.png ├── LICENSE.txt ├── LICENSE.txt.meta ├── Plugins.meta ├── Plugins ├── SimpleFileBrowser.meta └── SimpleFileBrowser │ ├── Android.meta │ ├── Android │ ├── FBCallbackHelper.cs │ ├── FBCallbackHelper.cs.meta │ ├── FBDirectoryReceiveCallbackAndroid.cs │ ├── FBDirectoryReceiveCallbackAndroid.cs.meta │ ├── FBPermissionCallbackAndroid.cs │ ├── FBPermissionCallbackAndroid.cs.meta │ ├── SimpleFileBrowser.aar │ └── SimpleFileBrowser.aar.meta │ ├── Prefabs.meta │ ├── Prefabs │ ├── SimpleFileBrowserItem.prefab │ ├── SimpleFileBrowserItem.prefab.meta │ ├── SimpleFileBrowserQuickLink.prefab │ └── SimpleFileBrowserQuickLink.prefab.meta │ ├── README.txt │ ├── README.txt.meta │ ├── Resources.meta │ ├── Resources │ ├── SimpleFileBrowserCanvas.prefab │ └── SimpleFileBrowserCanvas.prefab.meta │ ├── Scripts.meta │ ├── Scripts │ ├── EventSystemHandler.cs │ ├── EventSystemHandler.cs.meta │ ├── FileBrowser.cs │ ├── FileBrowser.cs.meta │ ├── FileBrowserAccessRestrictedPanel.cs │ ├── FileBrowserAccessRestrictedPanel.cs.meta │ ├── FileBrowserContextMenu.cs │ ├── FileBrowserContextMenu.cs.meta │ ├── FileBrowserCursorHandler.cs │ ├── FileBrowserCursorHandler.cs.meta │ ├── FileBrowserFileOperationConfirmationPanel.cs │ ├── FileBrowserFileOperationConfirmationPanel.cs.meta │ ├── FileBrowserHelpers.cs │ ├── FileBrowserHelpers.cs.meta │ ├── FileBrowserItem.cs │ ├── FileBrowserItem.cs.meta │ ├── FileBrowserMovement.cs │ ├── FileBrowserMovement.cs.meta │ ├── FileBrowserQuickLink.cs │ ├── FileBrowserQuickLink.cs.meta │ ├── FileBrowserRenamedItem.cs │ ├── FileBrowserRenamedItem.cs.meta │ ├── NonDrawingGraphic.cs │ ├── NonDrawingGraphic.cs.meta │ ├── SimpleRecycledListView.meta │ ├── SimpleRecycledListView │ │ ├── IListViewAdapter.cs │ │ ├── IListViewAdapter.cs.meta │ │ ├── ListItem.cs │ │ ├── ListItem.cs.meta │ │ ├── RecycledListView.cs │ │ └── RecycledListView.cs.meta │ ├── UISkin.cs │ └── UISkin.cs.meta │ ├── SimpleFileBrowser.Runtime.asmdef │ ├── SimpleFileBrowser.Runtime.asmdef.meta │ ├── Skins.meta │ ├── Skins │ ├── DarkSkin.asset │ ├── DarkSkin.asset.meta │ ├── LightSkin.asset │ └── LightSkin.asset.meta │ ├── Sprites.meta │ └── Sprites │ ├── Checkmark.psd │ ├── Checkmark.psd.meta │ ├── DropdownArrow.psd │ ├── DropdownArrow.psd.meta │ ├── ErrorIcon.psd │ ├── ErrorIcon.psd.meta │ ├── FileIcons.meta │ ├── FileIcons │ ├── ArchiveIcon.png │ ├── ArchiveIcon.png.meta │ ├── AudioFileIcon.png │ ├── AudioFileIcon.png.meta │ ├── DefaultFileIcon.png │ ├── DefaultFileIcon.png.meta │ ├── DriveIcon.png │ ├── DriveIcon.png.meta │ ├── ExecutableIcon.png │ ├── ExecutableIcon.png.meta │ ├── FolderIcon.png │ ├── FolderIcon.png.meta │ ├── ImageFileIcon.png │ ├── ImageFileIcon.png.meta │ ├── LICENSE.txt │ ├── LICENSE.txt.meta │ ├── PdfFileIcon.png │ ├── PdfFileIcon.png.meta │ ├── TextFileIcon.png │ ├── TextFileIcon.png.meta │ ├── VideoFileIcon.png │ └── VideoFileIcon.png.meta │ ├── ForwardArrow.psd │ ├── ForwardArrow.psd.meta │ ├── MultiSelectionToggleOff.psd │ ├── MultiSelectionToggleOff.psd.meta │ ├── MultiSelectionToggleOn.psd │ ├── MultiSelectionToggleOn.psd.meta │ ├── ResizeCursor.png │ ├── ResizeCursor.png.meta │ ├── SimpleFileBrowserDrag.psd │ ├── SimpleFileBrowserDrag.psd.meta │ ├── SimpleFileBrowserMoreOptions.psd │ ├── SimpleFileBrowserMoreOptions.psd.meta │ ├── SimpleFileBrowserSlicedBackground1.psd │ ├── SimpleFileBrowserSlicedBackground1.psd.meta │ ├── SimpleFileBrowserSlicedBackground2.psd │ ├── SimpleFileBrowserSlicedBackground2.psd.meta │ ├── SimpleFileBrowserSlicedBackground3.psd │ ├── SimpleFileBrowserSlicedBackground3.psd.meta │ ├── SimpleFileBrowserSlicedBackground4.psd │ ├── SimpleFileBrowserSlicedBackground4.psd.meta │ ├── SimpleFileBrowserSlicedBackground5.psd │ ├── SimpleFileBrowserSlicedBackground5.psd.meta │ ├── SimpleFileBrowserSpriteAtlas.spriteatlas │ └── SimpleFileBrowserSpriteAtlas.spriteatlas.meta ├── package.json └── package.json.meta /.github/AAR Source (Android)/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.github/AAR Source (Android)/java/com/yasirkula/unity/FileBrowserDirectoryPickerFragment.java: -------------------------------------------------------------------------------- 1 | package com.yasirkula.unity; 2 | 3 | import android.annotation.TargetApi; 4 | import android.app.Activity; 5 | import android.app.Fragment; 6 | import android.content.ActivityNotFoundException; 7 | import android.content.Intent; 8 | import android.net.Uri; 9 | import android.os.Build; 10 | import android.os.Bundle; 11 | import android.provider.DocumentsContract; 12 | import android.util.Log; 13 | import android.widget.Toast; 14 | 15 | @TargetApi( Build.VERSION_CODES.Q ) 16 | public class FileBrowserDirectoryPickerFragment extends Fragment 17 | { 18 | private static final int DIRECTORY_PICK_REQUEST_CODE = 74425; 19 | 20 | public static String initialDirectoryUri; 21 | 22 | private final FileBrowserDirectoryReceiver directoryReceiver; 23 | 24 | public FileBrowserDirectoryPickerFragment() 25 | { 26 | directoryReceiver = null; 27 | } 28 | 29 | public FileBrowserDirectoryPickerFragment( final FileBrowserDirectoryReceiver directoryReceiver ) 30 | { 31 | this.directoryReceiver = directoryReceiver; 32 | } 33 | 34 | @Override 35 | public void onCreate( Bundle savedInstanceState ) 36 | { 37 | super.onCreate( savedInstanceState ); 38 | 39 | if( directoryReceiver == null ) 40 | onActivityResult( DIRECTORY_PICK_REQUEST_CODE, Activity.RESULT_CANCELED, null ); 41 | else 42 | { 43 | Intent intent = new Intent( Intent.ACTION_OPEN_DOCUMENT_TREE ); 44 | intent.addFlags( Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION ); 45 | 46 | // Try to set the initial folder of the picker (read first: https://issuetracker.google.com/issues/291241154) 47 | if( initialDirectoryUri != null && initialDirectoryUri.length() > 0 && Build.VERSION.SDK_INT >= 26 ) 48 | intent.putExtra( DocumentsContract.EXTRA_INITIAL_URI, Uri.parse( initialDirectoryUri ) ); 49 | 50 | intent.putExtra( "android.content.extra.SHOW_ADVANCED", true ); 51 | intent.putExtra( "android.content.extra.FANCY", true ); 52 | intent.putExtra( "android.content.extra.SHOW_FILESIZE", true ); 53 | intent.putExtra( Intent.EXTRA_LOCAL_ONLY, true ); 54 | 55 | try 56 | { 57 | startActivityForResult( intent, DIRECTORY_PICK_REQUEST_CODE ); 58 | } 59 | catch( ActivityNotFoundException e ) 60 | { 61 | Toast.makeText( getActivity(), "No apps can perform this action.", Toast.LENGTH_LONG ).show(); 62 | onActivityResult( DIRECTORY_PICK_REQUEST_CODE, Activity.RESULT_CANCELED, null ); 63 | } 64 | } 65 | } 66 | 67 | @Override 68 | public void onActivityResult( int requestCode, int resultCode, Intent data ) 69 | { 70 | if( requestCode != DIRECTORY_PICK_REQUEST_CODE ) 71 | return; 72 | 73 | String rawUri = ""; 74 | String name = ""; 75 | if( resultCode == Activity.RESULT_OK && data != null ) 76 | { 77 | Uri directoryUri = data.getData(); 78 | if( directoryUri != null ) 79 | { 80 | FileBrowserSAFEntry directory = FileBrowserSAFEntry.fromTreeUri( getActivity(), directoryUri ); 81 | if( directory != null && directory.exists() ) 82 | { 83 | rawUri = directory.getUri().toString(); 84 | name = directory.getName(); 85 | 86 | getActivity().getContentResolver().takePersistableUriPermission( data.getData(), Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION ); 87 | } 88 | } 89 | } 90 | 91 | if( directoryReceiver != null ) 92 | directoryReceiver.OnDirectoryPicked( rawUri, name ); 93 | 94 | getFragmentManager().beginTransaction().remove( this ).commitAllowingStateLoss(); 95 | } 96 | } -------------------------------------------------------------------------------- /.github/AAR Source (Android)/java/com/yasirkula/unity/FileBrowserDirectoryReceiver.java: -------------------------------------------------------------------------------- 1 | package com.yasirkula.unity; 2 | 3 | public interface FileBrowserDirectoryReceiver 4 | { 5 | void OnDirectoryPicked( String rawUri, String name ); 6 | } 7 | -------------------------------------------------------------------------------- /.github/AAR Source (Android)/java/com/yasirkula/unity/FileBrowserPermissionFragment.java: -------------------------------------------------------------------------------- 1 | package com.yasirkula.unity; 2 | 3 | // Original work Copyright (c) 2017 Yury Habets 4 | // Modified work Copyright 2018 yasirkula 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | // SOFTWARE. 23 | 24 | import android.Manifest; 25 | import android.annotation.TargetApi; 26 | import android.app.Fragment; 27 | import android.content.Intent; 28 | import android.content.pm.PackageManager; 29 | import android.os.Build; 30 | import android.os.Bundle; 31 | import android.util.Log; 32 | 33 | @TargetApi( Build.VERSION_CODES.M ) 34 | public class FileBrowserPermissionFragment extends Fragment 35 | { 36 | private static final int PERMISSIONS_REQUEST_CODE = 123645; 37 | 38 | private final FileBrowserPermissionReceiver permissionReceiver; 39 | 40 | public FileBrowserPermissionFragment() 41 | { 42 | permissionReceiver = null; 43 | } 44 | 45 | public FileBrowserPermissionFragment( final FileBrowserPermissionReceiver permissionReceiver ) 46 | { 47 | this.permissionReceiver = permissionReceiver; 48 | } 49 | 50 | @Override 51 | public void onCreate( Bundle savedInstanceState ) 52 | { 53 | super.onCreate( savedInstanceState ); 54 | if( permissionReceiver == null ) 55 | onRequestPermissionsResult( PERMISSIONS_REQUEST_CODE, new String[0], new int[0] ); 56 | else 57 | { 58 | if( Build.VERSION.SDK_INT < 30 ) 59 | requestPermissions( new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE }, PERMISSIONS_REQUEST_CODE ); 60 | else if( Build.VERSION.SDK_INT < 33 || getActivity().getApplicationInfo().targetSdkVersion < 33 ) 61 | requestPermissions( new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, PERMISSIONS_REQUEST_CODE ); 62 | else 63 | onRequestPermissionsResult( PERMISSIONS_REQUEST_CODE, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, new int[] { PackageManager.PERMISSION_GRANTED } ); 64 | } 65 | } 66 | 67 | @Override 68 | public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults ) 69 | { 70 | if( requestCode != PERMISSIONS_REQUEST_CODE ) 71 | return; 72 | 73 | if( permissionReceiver == null ) 74 | { 75 | Log.e( "Unity", "Fragment data got reset while asking permissions!" ); 76 | 77 | getFragmentManager().beginTransaction().remove( this ).commitAllowingStateLoss(); 78 | return; 79 | } 80 | 81 | // 0 -> denied, must go to settings 82 | // 1 -> granted 83 | // 2 -> denied, can ask again 84 | int result = 1; 85 | if( permissions.length == 0 || grantResults.length == 0 ) 86 | result = 2; 87 | else 88 | { 89 | for( int i = 0; i < permissions.length && i < grantResults.length; ++i ) 90 | { 91 | if( grantResults[i] == PackageManager.PERMISSION_DENIED ) 92 | { 93 | if( !shouldShowRequestPermissionRationale( permissions[i] ) ) 94 | { 95 | result = 0; 96 | break; 97 | } 98 | 99 | result = 2; 100 | } 101 | } 102 | } 103 | 104 | permissionReceiver.OnPermissionResult( result ); 105 | getFragmentManager().beginTransaction().remove( this ).commitAllowingStateLoss(); 106 | 107 | // Resolves a bug in Unity 2019 where the calling activity 108 | // doesn't resume automatically after the fragment finishes 109 | // Credit: https://stackoverflow.com/a/12409215/2373034 110 | try 111 | { 112 | Intent resumeUnityActivity = new Intent( getActivity(), getActivity().getClass() ); 113 | resumeUnityActivity.setFlags( Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ); 114 | getActivity().startActivityIfNeeded( resumeUnityActivity, 0 ); 115 | } 116 | catch( Exception e ) 117 | { 118 | Log.e( "Unity", "Exception (resume):", e ); 119 | } 120 | } 121 | } -------------------------------------------------------------------------------- /.github/AAR Source (Android)/java/com/yasirkula/unity/FileBrowserPermissionReceiver.java: -------------------------------------------------------------------------------- 1 | package com.yasirkula.unity; 2 | 3 | /** 4 | * Created by yasirkula on 5.03.2018. 5 | */ 6 | 7 | public interface FileBrowserPermissionReceiver 8 | { 9 | void OnPermissionResult( int result ); 10 | } 11 | -------------------------------------------------------------------------------- /.github/AAR Source (Android)/java/com/yasirkula/unity/FileBrowserSAFEntry.java: -------------------------------------------------------------------------------- 1 | package com.yasirkula.unity; 2 | 3 | 4 | import android.annotation.TargetApi; 5 | import android.content.ContentResolver; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | import android.content.pm.PackageManager; 9 | import android.database.Cursor; 10 | import android.net.Uri; 11 | import android.os.Build; 12 | import android.provider.DocumentsContract; 13 | import android.text.TextUtils; 14 | import android.util.Log; 15 | 16 | import java.util.ArrayList; 17 | 18 | /* 19 | * Copyright (C) 2014 The Android Open Source Project 20 | * 21 | * Licensed under the Apache License, Version 2.0 (the "License"); 22 | * you may not use this file except in compliance with the License. 23 | * You may obtain a copy of the License at 24 | * 25 | * http://www.apache.org/licenses/LICENSE-2.0 26 | * 27 | * Unless required by applicable law or agreed to in writing, software 28 | * distributed under the License is distributed on an "AS IS" BASIS, 29 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 30 | * See the License for the specific language governing permissions and 31 | * limitations under the License. 32 | */ 33 | 34 | /** 35 | * Edited by yasirkula on 12.10.2019. 36 | */ 37 | 38 | // A Storage Access Framework (SAF) file/folder 39 | @TargetApi( Build.VERSION_CODES.Q ) 40 | public class FileBrowserSAFEntry 41 | { 42 | private static final String TAG = "DocumentFile"; 43 | 44 | private Context mContext; 45 | private Uri mUri; 46 | 47 | public static FileBrowserSAFEntry fromTreeUri( Context context, Uri uri ) 48 | { 49 | uri = DocumentsContract.buildDocumentUriUsingTree( uri, DocumentsContract.getTreeDocumentId( uri ) ); 50 | if( uri == null ) 51 | return null; 52 | 53 | return new FileBrowserSAFEntry( context, uri ); 54 | } 55 | 56 | public FileBrowserSAFEntry( Context context, Uri uri ) 57 | { 58 | mContext = context; 59 | mUri = uri; 60 | } 61 | 62 | public FileBrowserSAFEntry createFile( String mimeType, String displayName ) 63 | { 64 | try 65 | { 66 | final Uri result = DocumentsContract.createDocument( mContext.getContentResolver(), mUri, mimeType, displayName ); 67 | return ( result != null ) ? new FileBrowserSAFEntry( mContext, result ) : null; 68 | } 69 | catch( Exception e ) 70 | { 71 | Log.e( "Unity", "Exception:", e ); 72 | return null; 73 | } 74 | } 75 | 76 | public FileBrowserSAFEntry createDirectory( String displayName ) 77 | { 78 | try 79 | { 80 | final Uri result = DocumentsContract.createDocument( mContext.getContentResolver(), mUri, DocumentsContract.Document.MIME_TYPE_DIR, displayName ); 81 | return ( result != null ) ? new FileBrowserSAFEntry( mContext, result ) : null; 82 | } 83 | catch( Exception e ) 84 | { 85 | Log.e( "Unity", "Exception:", e ); 86 | return null; 87 | } 88 | } 89 | 90 | public Uri getUri() 91 | { 92 | return mUri; 93 | } 94 | 95 | public String getName() 96 | { 97 | return queryForString( DocumentsContract.Document.COLUMN_DISPLAY_NAME, null ); 98 | } 99 | 100 | public String getType() 101 | { 102 | final String rawType = getRawType(); 103 | if( DocumentsContract.Document.MIME_TYPE_DIR.equals( rawType ) ) 104 | { 105 | return null; 106 | } 107 | else 108 | { 109 | return rawType; 110 | } 111 | } 112 | 113 | public boolean isDirectory() 114 | { 115 | return DocumentsContract.Document.MIME_TYPE_DIR.equals( getRawType() ); 116 | } 117 | 118 | public boolean isFile() 119 | { 120 | final String type = getRawType(); 121 | if( DocumentsContract.Document.MIME_TYPE_DIR.equals( type ) || TextUtils.isEmpty( type ) ) 122 | { 123 | return false; 124 | } 125 | else 126 | { 127 | return true; 128 | } 129 | } 130 | 131 | public long lastModified() 132 | { 133 | return queryForLong( DocumentsContract.Document.COLUMN_LAST_MODIFIED, 0 ); 134 | } 135 | 136 | public long length() 137 | { 138 | return queryForLong( DocumentsContract.Document.COLUMN_SIZE, 0 ); 139 | } 140 | 141 | public boolean canRead() 142 | { 143 | // Ignore if grant doesn't allow read 144 | if( mContext.checkCallingOrSelfUriPermission( mUri, Intent.FLAG_GRANT_READ_URI_PERMISSION ) 145 | != PackageManager.PERMISSION_GRANTED ) 146 | { 147 | return false; 148 | } 149 | // Ignore documents without MIME 150 | if( TextUtils.isEmpty( getRawType() ) ) 151 | { 152 | return false; 153 | } 154 | return true; 155 | } 156 | 157 | public boolean canWrite() 158 | { 159 | // Ignore if grant doesn't allow write 160 | if( mContext.checkCallingOrSelfUriPermission( mUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION ) 161 | != PackageManager.PERMISSION_GRANTED ) 162 | { 163 | return false; 164 | } 165 | final String type = getRawType(); 166 | final int flags = queryForInt( DocumentsContract.Document.COLUMN_FLAGS, 0 ); 167 | // Ignore documents without MIME 168 | if( TextUtils.isEmpty( type ) ) 169 | { 170 | return false; 171 | } 172 | // Deletable documents considered writable 173 | if( ( flags & DocumentsContract.Document.FLAG_SUPPORTS_DELETE ) != 0 ) 174 | { 175 | return true; 176 | } 177 | if( DocumentsContract.Document.MIME_TYPE_DIR.equals( type ) 178 | && ( flags & DocumentsContract.Document.FLAG_DIR_SUPPORTS_CREATE ) != 0 ) 179 | { 180 | // Directories that allow create considered writable 181 | return true; 182 | } 183 | else if( !TextUtils.isEmpty( type ) 184 | && ( flags & DocumentsContract.Document.FLAG_SUPPORTS_WRITE ) != 0 ) 185 | { 186 | // Writable normal files considered writable 187 | return true; 188 | } 189 | return false; 190 | } 191 | 192 | public boolean delete() 193 | { 194 | try 195 | { 196 | return DocumentsContract.deleteDocument( mContext.getContentResolver(), mUri ); 197 | } 198 | catch( Exception e ) 199 | { 200 | Log.e( "Unity", "Exception:", e ); 201 | } 202 | 203 | return false; 204 | } 205 | 206 | public boolean exists() 207 | { 208 | final ContentResolver resolver = mContext.getContentResolver(); 209 | Cursor c = null; 210 | try 211 | { 212 | c = resolver.query( mUri, new String[] { 213 | DocumentsContract.Document.COLUMN_DOCUMENT_ID }, null, null, null ); 214 | return c.getCount() > 0; 215 | } 216 | catch( Exception e ) 217 | { 218 | Log.w( TAG, "Failed query: " + e ); 219 | return false; 220 | } 221 | finally 222 | { 223 | try 224 | { 225 | if( c != null ) 226 | c.close(); 227 | } 228 | catch( Exception e ) 229 | { 230 | Log.e( TAG, "Exception:", e ); 231 | } 232 | } 233 | } 234 | 235 | public ArrayList listFiles() 236 | { 237 | final ContentResolver resolver = mContext.getContentResolver(); 238 | final Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree( mUri, 239 | DocumentsContract.getDocumentId( mUri ) ); 240 | final ArrayList results = new ArrayList(); 241 | Cursor c = null; 242 | try 243 | { 244 | c = resolver.query( childrenUri, new String[] { 245 | DocumentsContract.Document.COLUMN_DOCUMENT_ID }, null, null, null ); 246 | while( c.moveToNext() ) 247 | { 248 | final String documentId = c.getString( 0 ); 249 | final Uri documentUri = DocumentsContract.buildDocumentUriUsingTree( mUri, 250 | documentId ); 251 | results.add( new FileBrowserSAFEntry( mContext, documentUri ) ); 252 | } 253 | } 254 | catch( Exception e ) 255 | { 256 | Log.w( "Unity", "Failed query: " + e ); 257 | } 258 | finally 259 | { 260 | try 261 | { 262 | if( c != null ) 263 | c.close(); 264 | } 265 | catch( Exception e ) 266 | { 267 | Log.e( TAG, "Exception:", e ); 268 | } 269 | } 270 | 271 | return results; 272 | } 273 | 274 | public void appendFilesToStringBuilder( StringBuilder stringBuilder ) 275 | { 276 | final ContentResolver resolver = mContext.getContentResolver(); 277 | final Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree( mUri, DocumentsContract.getDocumentId( mUri ) ); 278 | Cursor c = null; 279 | try 280 | { 281 | c = resolver.query( childrenUri, new String[] { DocumentsContract.Document.COLUMN_DOCUMENT_ID, DocumentsContract.Document.COLUMN_MIME_TYPE, DocumentsContract.Document.COLUMN_DISPLAY_NAME }, null, null, null ); 282 | stringBuilder.append( c.getCount() ).append( "<>" ); 283 | if( c.moveToNext() ) 284 | { 285 | int documentIdIndex = c.getColumnIndex( DocumentsContract.Document.COLUMN_DOCUMENT_ID ); 286 | int mimeTypeIndex = c.getColumnIndex( DocumentsContract.Document.COLUMN_MIME_TYPE ); 287 | int nameIndex = c.getColumnIndex( DocumentsContract.Document.COLUMN_DISPLAY_NAME ); 288 | 289 | do 290 | { 291 | final boolean isDirectory = DocumentsContract.Document.MIME_TYPE_DIR.equals( c.getString( mimeTypeIndex ) ); 292 | final String name = c.getString( nameIndex ); 293 | final String uri = DocumentsContract.buildDocumentUriUsingTree( mUri, c.getString( documentIdIndex ) ).toString(); 294 | 295 | stringBuilder.append( isDirectory ? "d" : "f" ).append( name ).append( "<>" ).append( uri ).append( "<>" ); 296 | } while( c.moveToNext() ); 297 | } 298 | } 299 | catch( Exception e ) 300 | { 301 | Log.w( "Unity", "Failed query: " + e ); 302 | } 303 | finally 304 | { 305 | try 306 | { 307 | if( c != null ) 308 | c.close(); 309 | } 310 | catch( Exception e ) 311 | { 312 | Log.e( TAG, "Exception:", e ); 313 | } 314 | } 315 | } 316 | 317 | public String renameTo( String displayName ) 318 | { 319 | try 320 | { 321 | final Uri result = DocumentsContract.renameDocument( mContext.getContentResolver(), mUri, displayName ); 322 | if( result != null ) 323 | mUri = result; 324 | } 325 | catch( Exception e ) 326 | { 327 | Log.e( "Unity", "Exception:", e ); 328 | } 329 | 330 | return mUri.toString(); 331 | } 332 | 333 | private String getRawType() 334 | { 335 | return queryForString( DocumentsContract.Document.COLUMN_MIME_TYPE, null ); 336 | } 337 | 338 | private String queryForString( String column, String defaultValue ) 339 | { 340 | final ContentResolver resolver = mContext.getContentResolver(); 341 | Cursor c = null; 342 | try 343 | { 344 | c = resolver.query( mUri, new String[] { column }, null, null, null ); 345 | if( c.moveToFirst() && !c.isNull( 0 ) ) 346 | return c.getString( 0 ); 347 | 348 | return defaultValue; 349 | } 350 | catch( Exception e ) 351 | { 352 | Log.w( TAG, "Failed query: " + e ); 353 | return defaultValue; 354 | } 355 | finally 356 | { 357 | try 358 | { 359 | if( c != null ) 360 | c.close(); 361 | } 362 | catch( Exception e ) 363 | { 364 | Log.e( TAG, "Exception:", e ); 365 | } 366 | } 367 | } 368 | 369 | private int queryForInt( String column, int defaultValue ) 370 | { 371 | return (int) queryForLong( column, defaultValue ); 372 | } 373 | 374 | private long queryForLong( String column, long defaultValue ) 375 | { 376 | final ContentResolver resolver = mContext.getContentResolver(); 377 | Cursor c = null; 378 | try 379 | { 380 | c = resolver.query( mUri, new String[] { column }, null, null, null ); 381 | if( c.moveToFirst() && !c.isNull( 0 ) ) 382 | return c.getLong( 0 ); 383 | 384 | return defaultValue; 385 | } 386 | catch( Exception e ) 387 | { 388 | Log.w( TAG, "Failed query: " + e ); 389 | return defaultValue; 390 | } 391 | finally 392 | { 393 | try 394 | { 395 | if( c != null ) 396 | c.close(); 397 | } 398 | catch( Exception e ) 399 | { 400 | Log.e( TAG, "Exception:", e ); 401 | } 402 | } 403 | } 404 | } -------------------------------------------------------------------------------- /.github/AAR Source (Android)/proguard.txt: -------------------------------------------------------------------------------- 1 | -keep class com.yasirkula.unity.* { *; } -------------------------------------------------------------------------------- /.github/screenshots/filebrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/.github/screenshots/filebrowser.png -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Süleyman Yasir KULA 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adc314bc335146f40947fcc9c8ba94b7 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f591e2e954b199041ac528f623ed782c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6440a5f3157375d469774ee0793ec07b 3 | folderAsset: yes 4 | timeCreated: 1479413187 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff366e107d0770a41a2afe8ad87ef708 3 | folderAsset: yes 4 | timeCreated: 1509396159 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR || UNITY_ANDROID 2 | using System; 3 | using UnityEngine; 4 | 5 | namespace SimpleFileBrowser 6 | { 7 | public class FBCallbackHelper : MonoBehaviour 8 | { 9 | private bool autoDestroyWithCallback; 10 | private Action mainThreadAction = null; 11 | 12 | public static FBCallbackHelper Create( bool autoDestroyWithCallback ) 13 | { 14 | FBCallbackHelper result = new GameObject( "FBCallbackHelper" ).AddComponent(); 15 | result.autoDestroyWithCallback = autoDestroyWithCallback; 16 | DontDestroyOnLoad( result.gameObject ); 17 | return result; 18 | } 19 | 20 | public void CallOnMainThread( Action function ) 21 | { 22 | lock( this ) 23 | { 24 | mainThreadAction += function; 25 | } 26 | } 27 | 28 | private void Update() 29 | { 30 | if( mainThreadAction != null ) 31 | { 32 | try 33 | { 34 | Action temp; 35 | lock( this ) 36 | { 37 | temp = mainThreadAction; 38 | mainThreadAction = null; 39 | } 40 | 41 | temp(); 42 | } 43 | finally 44 | { 45 | if( autoDestroyWithCallback ) 46 | Destroy( gameObject ); 47 | } 48 | } 49 | } 50 | } 51 | } 52 | #endif -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 997bfc59716c24c41ad03bcbd7f8ef0a 3 | timeCreated: 1570918076 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR || UNITY_ANDROID 2 | using UnityEngine; 3 | 4 | namespace SimpleFileBrowser 5 | { 6 | public class FBDirectoryReceiveCallbackAndroid : AndroidJavaProxy 7 | { 8 | private readonly FileBrowser.AndroidSAFDirectoryPickCallback callback; 9 | private readonly FBCallbackHelper callbackHelper; 10 | 11 | public FBDirectoryReceiveCallbackAndroid( FileBrowser.AndroidSAFDirectoryPickCallback callback ) : base( "com.yasirkula.unity.FileBrowserDirectoryReceiver" ) 12 | { 13 | this.callback = callback; 14 | callbackHelper = FBCallbackHelper.Create( true ); 15 | } 16 | 17 | [UnityEngine.Scripting.Preserve] 18 | public void OnDirectoryPicked( string rawUri, string name ) 19 | { 20 | callbackHelper.CallOnMainThread( () => callback( rawUri, name ) ); 21 | } 22 | } 23 | } 24 | #endif -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8dec4dc5be16ca84e9c147627361671d 3 | timeCreated: 1520199471 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR || UNITY_ANDROID 2 | using UnityEngine; 3 | 4 | namespace SimpleFileBrowser 5 | { 6 | public class FBPermissionCallbackAndroid : AndroidJavaProxy 7 | { 8 | private readonly FileBrowser.PermissionCallback callback; 9 | private readonly FBCallbackHelper callbackHelper; 10 | 11 | public FBPermissionCallbackAndroid( FileBrowser.PermissionCallback callback ) : base( "com.yasirkula.unity.FileBrowserPermissionReceiver" ) 12 | { 13 | this.callback = callback; 14 | callbackHelper = FBCallbackHelper.Create( true ); 15 | } 16 | 17 | [UnityEngine.Scripting.Preserve] 18 | public void OnPermissionResult( int result ) 19 | { 20 | callbackHelper.CallOnMainThread( () => callback( (FileBrowser.Permission) result ) ); 21 | } 22 | } 23 | } 24 | #endif -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cd91db0ba676ef47af67e3597037d1a 3 | timeCreated: 1520199471 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cae0a78f915b13748ba09fd56bafb4c8 3 | timeCreated: 1606638456 4 | licenseType: Free 5 | PluginImporter: 6 | serializedVersion: 2 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | isOverridable: 0 11 | platformData: 12 | data: 13 | first: 14 | Android: Android 15 | second: 16 | enabled: 1 17 | settings: {} 18 | data: 19 | first: 20 | Any: 21 | second: 22 | enabled: 0 23 | settings: {} 24 | data: 25 | first: 26 | Editor: Editor 27 | second: 28 | enabled: 0 29 | settings: 30 | DefaultValueInitialized: true 31 | userData: 32 | assetBundleName: 33 | assetBundleVariant: 34 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53eaeb5abaee5aa4ca7f07beacb73c2e 3 | folderAsset: yes 4 | timeCreated: 1479489583 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1000010981689570 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 224000013702633820} 12 | - component: {fileID: 222000010857273394} 13 | - component: {fileID: 4089076303554880505} 14 | m_Layer: 5 15 | m_Name: Name 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!224 &224000013702633820 22 | RectTransform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 1000010981689570} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_ConstrainProportionsScale: 0 32 | m_Children: [] 33 | m_Father: {fileID: 224000013952242090} 34 | m_RootOrder: 2 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | m_AnchorMin: {x: 0, y: 0} 37 | m_AnchorMax: {x: 1, y: 1} 38 | m_AnchoredPosition: {x: 19, y: 0} 39 | m_SizeDelta: {x: -38, y: 0} 40 | m_Pivot: {x: 0.5, y: 0.5} 41 | --- !u!222 &222000010857273394 42 | CanvasRenderer: 43 | m_ObjectHideFlags: 0 44 | m_CorrespondingSourceObject: {fileID: 0} 45 | m_PrefabInstance: {fileID: 0} 46 | m_PrefabAsset: {fileID: 0} 47 | m_GameObject: {fileID: 1000010981689570} 48 | m_CullTransparentMesh: 1 49 | --- !u!114 &4089076303554880505 50 | MonoBehaviour: 51 | m_ObjectHideFlags: 0 52 | m_CorrespondingSourceObject: {fileID: 0} 53 | m_PrefabInstance: {fileID: 0} 54 | m_PrefabAsset: {fileID: 0} 55 | m_GameObject: {fileID: 1000010981689570} 56 | m_Enabled: 1 57 | m_EditorHideFlags: 0 58 | m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} 59 | m_Name: 60 | m_EditorClassIdentifier: 61 | m_Material: {fileID: 0} 62 | m_Color: {r: 1, g: 1, b: 1, a: 1} 63 | m_RaycastTarget: 0 64 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 65 | m_Maskable: 1 66 | m_OnCullStateChanged: 67 | m_PersistentCalls: 68 | m_Calls: [] 69 | m_text: Filename 70 | m_isRightToLeft: 0 71 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 72 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 73 | m_fontSharedMaterials: [] 74 | m_fontMaterial: {fileID: 0} 75 | m_fontMaterials: [] 76 | m_fontColor32: 77 | serializedVersion: 2 78 | rgba: 4294967295 79 | m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 80 | m_enableVertexGradient: 0 81 | m_colorMode: 3 82 | m_fontColorGradient: 83 | topLeft: {r: 1, g: 1, b: 1, a: 1} 84 | topRight: {r: 1, g: 1, b: 1, a: 1} 85 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 86 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 87 | m_fontColorGradientPreset: {fileID: 0} 88 | m_spriteAsset: {fileID: 0} 89 | m_tintAllSprites: 0 90 | m_StyleSheet: {fileID: 0} 91 | m_TextStyleHashCode: 0 92 | m_overrideHtmlColors: 0 93 | m_faceColor: 94 | serializedVersion: 2 95 | rgba: 4294967295 96 | m_fontSize: 14 97 | m_fontSizeBase: 14 98 | m_fontWeight: 400 99 | m_enableAutoSizing: 0 100 | m_fontSizeMin: 10 101 | m_fontSizeMax: 40 102 | m_fontStyle: 0 103 | m_HorizontalAlignment: 1 104 | m_VerticalAlignment: 512 105 | m_textAlignment: 65535 106 | m_characterSpacing: 0 107 | m_wordSpacing: 0 108 | m_lineSpacing: 0 109 | m_lineSpacingMax: 0 110 | m_paragraphSpacing: 0 111 | m_charWidthMaxAdj: 0 112 | m_enableWordWrapping: 0 113 | m_wordWrappingRatios: 0.4 114 | m_overflowMode: 3 115 | m_linkedTextComponent: {fileID: 0} 116 | parentLinkedComponent: {fileID: 0} 117 | m_enableKerning: 1 118 | m_enableExtraPadding: 0 119 | checkPaddingRequired: 0 120 | m_isRichText: 0 121 | m_parseCtrlCharacters: 0 122 | m_isOrthographic: 1 123 | m_isCullingEnabled: 0 124 | m_horizontalMapping: 0 125 | m_verticalMapping: 0 126 | m_uvLineOffset: 0 127 | m_geometrySortingOrder: 0 128 | m_IsTextObjectScaleStatic: 0 129 | m_VertexBufferAutoSizeReduction: 0 130 | m_useMaxVisibleDescender: 1 131 | m_pageToDisplay: 1 132 | m_margin: {x: 0, y: 0, z: 0, w: 0} 133 | m_isUsingLegacyAnimationComponent: 0 134 | m_isVolumetricText: 0 135 | m_hasFontAssetChanged: 0 136 | m_baseMaterial: {fileID: 0} 137 | m_maskOffset: {x: 0, y: 0, z: 0, w: 0} 138 | --- !u!1 &1000011646011302 139 | GameObject: 140 | m_ObjectHideFlags: 0 141 | m_CorrespondingSourceObject: {fileID: 0} 142 | m_PrefabInstance: {fileID: 0} 143 | m_PrefabAsset: {fileID: 0} 144 | serializedVersion: 6 145 | m_Component: 146 | - component: {fileID: 224000013952242090} 147 | - component: {fileID: 222000013410998874} 148 | - component: {fileID: 114000012602770182} 149 | - component: {fileID: 114000012265032802} 150 | m_Layer: 5 151 | m_Name: SimpleFileBrowserItem 152 | m_TagString: Untagged 153 | m_Icon: {fileID: 0} 154 | m_NavMeshLayer: 0 155 | m_StaticEditorFlags: 0 156 | m_IsActive: 1 157 | --- !u!224 &224000013952242090 158 | RectTransform: 159 | m_ObjectHideFlags: 0 160 | m_CorrespondingSourceObject: {fileID: 0} 161 | m_PrefabInstance: {fileID: 0} 162 | m_PrefabAsset: {fileID: 0} 163 | m_GameObject: {fileID: 1000011646011302} 164 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 165 | m_LocalPosition: {x: 0, y: 0, z: 0} 166 | m_LocalScale: {x: 1, y: 1, z: 1} 167 | m_ConstrainProportionsScale: 0 168 | m_Children: 169 | - {fileID: 224000012393993334} 170 | - {fileID: 224447975432582502} 171 | - {fileID: 224000013702633820} 172 | m_Father: {fileID: 0} 173 | m_RootOrder: 0 174 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 175 | m_AnchorMin: {x: 0, y: 1} 176 | m_AnchorMax: {x: 1, y: 1} 177 | m_AnchoredPosition: {x: 0, y: 0} 178 | m_SizeDelta: {x: 0, y: 30} 179 | m_Pivot: {x: 0, y: 1} 180 | --- !u!222 &222000013410998874 181 | CanvasRenderer: 182 | m_ObjectHideFlags: 0 183 | m_CorrespondingSourceObject: {fileID: 0} 184 | m_PrefabInstance: {fileID: 0} 185 | m_PrefabAsset: {fileID: 0} 186 | m_GameObject: {fileID: 1000011646011302} 187 | m_CullTransparentMesh: 1 188 | --- !u!114 &114000012602770182 189 | MonoBehaviour: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | m_GameObject: {fileID: 1000011646011302} 195 | m_Enabled: 1 196 | m_EditorHideFlags: 0 197 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 198 | m_Name: 199 | m_EditorClassIdentifier: 200 | m_Material: {fileID: 0} 201 | m_Color: {r: 1, g: 1, b: 1, a: 1} 202 | m_RaycastTarget: 1 203 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 204 | m_Maskable: 1 205 | m_OnCullStateChanged: 206 | m_PersistentCalls: 207 | m_Calls: [] 208 | m_Sprite: {fileID: 21300000, guid: 6ff773ea42aedd04c8bb96a1fe9a73b8, type: 3} 209 | m_Type: 1 210 | m_PreserveAspect: 0 211 | m_FillCenter: 1 212 | m_FillMethod: 4 213 | m_FillAmount: 1 214 | m_FillClockwise: 1 215 | m_FillOrigin: 0 216 | m_UseSpriteMesh: 0 217 | m_PixelsPerUnitMultiplier: 1 218 | --- !u!114 &114000012265032802 219 | MonoBehaviour: 220 | m_ObjectHideFlags: 0 221 | m_CorrespondingSourceObject: {fileID: 0} 222 | m_PrefabInstance: {fileID: 0} 223 | m_PrefabAsset: {fileID: 0} 224 | m_GameObject: {fileID: 1000011646011302} 225 | m_Enabled: 1 226 | m_EditorHideFlags: 0 227 | m_Script: {fileID: 11500000, guid: b5f1b2825c50f7b4d9be146ab2137bff, type: 3} 228 | m_Name: 229 | m_EditorClassIdentifier: 230 | background: {fileID: 114000012602770182} 231 | icon: {fileID: 114807149938652920} 232 | multiSelectionToggle: {fileID: 114000013208375990} 233 | nameText: {fileID: 4089076303554880505} 234 | --- !u!1 &1000013967986654 235 | GameObject: 236 | m_ObjectHideFlags: 0 237 | m_CorrespondingSourceObject: {fileID: 0} 238 | m_PrefabInstance: {fileID: 0} 239 | m_PrefabAsset: {fileID: 0} 240 | serializedVersion: 6 241 | m_Component: 242 | - component: {fileID: 224000012393993334} 243 | - component: {fileID: 222000012809932278} 244 | - component: {fileID: 114000013208375990} 245 | m_Layer: 5 246 | m_Name: MultiSelectionToggle 247 | m_TagString: Untagged 248 | m_Icon: {fileID: 0} 249 | m_NavMeshLayer: 0 250 | m_StaticEditorFlags: 0 251 | m_IsActive: 0 252 | --- !u!224 &224000012393993334 253 | RectTransform: 254 | m_ObjectHideFlags: 0 255 | m_CorrespondingSourceObject: {fileID: 0} 256 | m_PrefabInstance: {fileID: 0} 257 | m_PrefabAsset: {fileID: 0} 258 | m_GameObject: {fileID: 1000013967986654} 259 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 260 | m_LocalPosition: {x: 0, y: 0, z: 0} 261 | m_LocalScale: {x: 1, y: 1, z: 1} 262 | m_ConstrainProportionsScale: 0 263 | m_Children: [] 264 | m_Father: {fileID: 224000013952242090} 265 | m_RootOrder: 0 266 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 267 | m_AnchorMin: {x: 0, y: 0} 268 | m_AnchorMax: {x: 0, y: 1} 269 | m_AnchoredPosition: {x: 18.99997, y: 0} 270 | m_SizeDelta: {x: 30, y: -6} 271 | m_Pivot: {x: 0.5, y: 0.5} 272 | --- !u!222 &222000012809932278 273 | CanvasRenderer: 274 | m_ObjectHideFlags: 0 275 | m_CorrespondingSourceObject: {fileID: 0} 276 | m_PrefabInstance: {fileID: 0} 277 | m_PrefabAsset: {fileID: 0} 278 | m_GameObject: {fileID: 1000013967986654} 279 | m_CullTransparentMesh: 1 280 | --- !u!114 &114000013208375990 281 | MonoBehaviour: 282 | m_ObjectHideFlags: 0 283 | m_CorrespondingSourceObject: {fileID: 0} 284 | m_PrefabInstance: {fileID: 0} 285 | m_PrefabAsset: {fileID: 0} 286 | m_GameObject: {fileID: 1000013967986654} 287 | m_Enabled: 1 288 | m_EditorHideFlags: 0 289 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 290 | m_Name: 291 | m_EditorClassIdentifier: 292 | m_Material: {fileID: 0} 293 | m_Color: {r: 1, g: 1, b: 1, a: 1} 294 | m_RaycastTarget: 0 295 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 296 | m_Maskable: 1 297 | m_OnCullStateChanged: 298 | m_PersistentCalls: 299 | m_Calls: [] 300 | m_Sprite: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e, type: 3} 301 | m_Type: 0 302 | m_PreserveAspect: 1 303 | m_FillCenter: 1 304 | m_FillMethod: 4 305 | m_FillAmount: 1 306 | m_FillClockwise: 1 307 | m_FillOrigin: 0 308 | m_UseSpriteMesh: 0 309 | m_PixelsPerUnitMultiplier: 1 310 | --- !u!1 &1268973638054374 311 | GameObject: 312 | m_ObjectHideFlags: 0 313 | m_CorrespondingSourceObject: {fileID: 0} 314 | m_PrefabInstance: {fileID: 0} 315 | m_PrefabAsset: {fileID: 0} 316 | serializedVersion: 6 317 | m_Component: 318 | - component: {fileID: 224447975432582502} 319 | - component: {fileID: 222113778025760416} 320 | - component: {fileID: 114807149938652920} 321 | - component: {fileID: 114942441918357790} 322 | m_Layer: 5 323 | m_Name: Icon 324 | m_TagString: Untagged 325 | m_Icon: {fileID: 0} 326 | m_NavMeshLayer: 0 327 | m_StaticEditorFlags: 0 328 | m_IsActive: 1 329 | --- !u!224 &224447975432582502 330 | RectTransform: 331 | m_ObjectHideFlags: 0 332 | m_CorrespondingSourceObject: {fileID: 0} 333 | m_PrefabInstance: {fileID: 0} 334 | m_PrefabAsset: {fileID: 0} 335 | m_GameObject: {fileID: 1268973638054374} 336 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 337 | m_LocalPosition: {x: 0, y: 0, z: 0} 338 | m_LocalScale: {x: 1, y: 1, z: 1} 339 | m_ConstrainProportionsScale: 0 340 | m_Children: [] 341 | m_Father: {fileID: 224000013952242090} 342 | m_RootOrder: 1 343 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 344 | m_AnchorMin: {x: 0, y: 0} 345 | m_AnchorMax: {x: 0, y: 1} 346 | m_AnchoredPosition: {x: 19, y: 0} 347 | m_SizeDelta: {x: 30, y: -6} 348 | m_Pivot: {x: 0.5, y: 0.5} 349 | --- !u!222 &222113778025760416 350 | CanvasRenderer: 351 | m_ObjectHideFlags: 0 352 | m_CorrespondingSourceObject: {fileID: 0} 353 | m_PrefabInstance: {fileID: 0} 354 | m_PrefabAsset: {fileID: 0} 355 | m_GameObject: {fileID: 1268973638054374} 356 | m_CullTransparentMesh: 1 357 | --- !u!114 &114807149938652920 358 | MonoBehaviour: 359 | m_ObjectHideFlags: 0 360 | m_CorrespondingSourceObject: {fileID: 0} 361 | m_PrefabInstance: {fileID: 0} 362 | m_PrefabAsset: {fileID: 0} 363 | m_GameObject: {fileID: 1268973638054374} 364 | m_Enabled: 1 365 | m_EditorHideFlags: 0 366 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 367 | m_Name: 368 | m_EditorClassIdentifier: 369 | m_Material: {fileID: 0} 370 | m_Color: {r: 1, g: 1, b: 1, a: 1} 371 | m_RaycastTarget: 0 372 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 373 | m_Maskable: 1 374 | m_OnCullStateChanged: 375 | m_PersistentCalls: 376 | m_Calls: [] 377 | m_Sprite: {fileID: 0} 378 | m_Type: 0 379 | m_PreserveAspect: 1 380 | m_FillCenter: 1 381 | m_FillMethod: 4 382 | m_FillAmount: 1 383 | m_FillClockwise: 1 384 | m_FillOrigin: 0 385 | m_UseSpriteMesh: 0 386 | m_PixelsPerUnitMultiplier: 1 387 | --- !u!114 &114942441918357790 388 | MonoBehaviour: 389 | m_ObjectHideFlags: 0 390 | m_CorrespondingSourceObject: {fileID: 0} 391 | m_PrefabInstance: {fileID: 0} 392 | m_PrefabAsset: {fileID: 0} 393 | m_GameObject: {fileID: 1268973638054374} 394 | m_Enabled: 1 395 | m_EditorHideFlags: 0 396 | m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3} 397 | m_Name: 398 | m_EditorClassIdentifier: 399 | m_EffectColor: {r: 0, g: 0, b: 0, a: 0.1764706} 400 | m_EffectDistance: {x: 0.75, y: -0.75} 401 | m_UseGraphicAlpha: 1 402 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2db22c1e3cd2584fa0e9168745a4536 3 | timeCreated: 1479415743 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &423326606346492666 4 | PrefabInstance: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: 10 | - target: {fileID: 1000011646011302, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3} 11 | propertyPath: m_Name 12 | value: SimpleFileBrowserQuickLink 13 | objectReference: {fileID: 0} 14 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 15 | type: 3} 16 | propertyPath: m_Pivot.x 17 | value: 0 18 | objectReference: {fileID: 0} 19 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 20 | type: 3} 21 | propertyPath: m_Pivot.y 22 | value: 1 23 | objectReference: {fileID: 0} 24 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 25 | type: 3} 26 | propertyPath: m_RootOrder 27 | value: 0 28 | objectReference: {fileID: 0} 29 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 30 | type: 3} 31 | propertyPath: m_AnchorMax.x 32 | value: 1 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 35 | type: 3} 36 | propertyPath: m_AnchorMax.y 37 | value: 1 38 | objectReference: {fileID: 0} 39 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 40 | type: 3} 41 | propertyPath: m_AnchorMin.x 42 | value: 0 43 | objectReference: {fileID: 0} 44 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 45 | type: 3} 46 | propertyPath: m_AnchorMin.y 47 | value: 1 48 | objectReference: {fileID: 0} 49 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 50 | type: 3} 51 | propertyPath: m_SizeDelta.x 52 | value: 0 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 55 | type: 3} 56 | propertyPath: m_SizeDelta.y 57 | value: 30 58 | objectReference: {fileID: 0} 59 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 60 | type: 3} 61 | propertyPath: m_LocalPosition.x 62 | value: 0 63 | objectReference: {fileID: 0} 64 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 65 | type: 3} 66 | propertyPath: m_LocalPosition.y 67 | value: 0 68 | objectReference: {fileID: 0} 69 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 70 | type: 3} 71 | propertyPath: m_LocalPosition.z 72 | value: 0 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 75 | type: 3} 76 | propertyPath: m_LocalRotation.w 77 | value: 1 78 | objectReference: {fileID: 0} 79 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 80 | type: 3} 81 | propertyPath: m_LocalRotation.x 82 | value: 0 83 | objectReference: {fileID: 0} 84 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 85 | type: 3} 86 | propertyPath: m_LocalRotation.y 87 | value: 0 88 | objectReference: {fileID: 0} 89 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 90 | type: 3} 91 | propertyPath: m_LocalRotation.z 92 | value: 0 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 95 | type: 3} 96 | propertyPath: m_AnchoredPosition.x 97 | value: 0 98 | objectReference: {fileID: 0} 99 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 100 | type: 3} 101 | propertyPath: m_AnchoredPosition.y 102 | value: 0 103 | objectReference: {fileID: 0} 104 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 105 | type: 3} 106 | propertyPath: m_LocalEulerAnglesHint.x 107 | value: 0 108 | objectReference: {fileID: 0} 109 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 110 | type: 3} 111 | propertyPath: m_LocalEulerAnglesHint.y 112 | value: 0 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536, 115 | type: 3} 116 | propertyPath: m_LocalEulerAnglesHint.z 117 | value: 0 118 | objectReference: {fileID: 0} 119 | m_RemovedComponents: 120 | - {fileID: 114000012265032802, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3} 121 | m_SourcePrefab: {fileID: 100100000, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3} 122 | --- !u!114 &308519873171270658 stripped 123 | MonoBehaviour: 124 | m_CorrespondingSourceObject: {fileID: 114807149938652920, guid: c2db22c1e3cd2584fa0e9168745a4536, 125 | type: 3} 126 | m_PrefabInstance: {fileID: 423326606346492666} 127 | m_PrefabAsset: {fileID: 0} 128 | m_GameObject: {fileID: 0} 129 | m_Enabled: 1 130 | m_EditorHideFlags: 0 131 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 132 | m_Name: 133 | m_EditorClassIdentifier: 134 | --- !u!114 &309331268969241084 stripped 135 | MonoBehaviour: 136 | m_CorrespondingSourceObject: {fileID: 114000012602770182, guid: c2db22c1e3cd2584fa0e9168745a4536, 137 | type: 3} 138 | m_PrefabInstance: {fileID: 423326606346492666} 139 | m_PrefabAsset: {fileID: 0} 140 | m_GameObject: {fileID: 422345297158446428} 141 | m_Enabled: 1 142 | m_EditorHideFlags: 0 143 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 144 | m_Name: 145 | m_EditorClassIdentifier: 146 | --- !u!1 &422345297158446428 stripped 147 | GameObject: 148 | m_CorrespondingSourceObject: {fileID: 1000011646011302, guid: c2db22c1e3cd2584fa0e9168745a4536, 149 | type: 3} 150 | m_PrefabInstance: {fileID: 423326606346492666} 151 | m_PrefabAsset: {fileID: 0} 152 | --- !u!114 &1505320505842670623 153 | MonoBehaviour: 154 | m_ObjectHideFlags: 0 155 | m_CorrespondingSourceObject: {fileID: 0} 156 | m_PrefabInstance: {fileID: 0} 157 | m_PrefabAsset: {fileID: 0} 158 | m_GameObject: {fileID: 422345297158446428} 159 | m_Enabled: 1 160 | m_EditorHideFlags: 0 161 | m_Script: {fileID: 11500000, guid: 1f277f5418eabf94cad94208055878af, type: 3} 162 | m_Name: 163 | m_EditorClassIdentifier: 164 | background: {fileID: 309331268969241084} 165 | icon: {fileID: 308519873171270658} 166 | multiSelectionToggle: {fileID: 0} 167 | nameText: {fileID: 4422715658905204995} 168 | --- !u!114 &4422715658905204995 stripped 169 | MonoBehaviour: 170 | m_CorrespondingSourceObject: {fileID: 4089076303554880505, guid: c2db22c1e3cd2584fa0e9168745a4536, 171 | type: 3} 172 | m_PrefabInstance: {fileID: 423326606346492666} 173 | m_PrefabAsset: {fileID: 0} 174 | m_GameObject: {fileID: 0} 175 | m_Enabled: 1 176 | m_EditorHideFlags: 0 177 | m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} 178 | m_Name: 179 | m_EditorClassIdentifier: 180 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4e8ee7cea600bf4fb4498b4a47ae8f5 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/README.txt: -------------------------------------------------------------------------------- 1 | = Simple File Browser (v1.7.4) = 2 | 3 | Documentation: https://github.com/yasirkula/UnitySimpleFileBrowser 4 | FAQ: https://github.com/yasirkula/UnitySimpleFileBrowser#faq 5 | Example code: https://github.com/yasirkula/UnitySimpleFileBrowser#example-code 6 | E-mail: yasirkula@gmail.com -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/README.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02a0a0f34932297429c157aca8b9a977 3 | timeCreated: 1563308858 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4cd9780a618bad4b821ad3b1a68bacd 3 | folderAsset: yes 4 | timeCreated: 1479561120 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ea2606f8fddead46aabb7adb3d8d434 3 | timeCreated: 1479415546 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be37f3e38d135f94e9d78c79ef89d303 3 | folderAsset: yes 4 | timeCreated: 1479413886 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/EventSystemHandler.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using UnityEngine.SceneManagement; 4 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 5 | using UnityEngine.InputSystem.UI; 6 | #endif 7 | 8 | namespace SimpleFileBrowser 9 | { 10 | // Avoid multiple EventSystems in the scene by activating the embedded EventSystem only if one doesn't already exist in the scene 11 | [DefaultExecutionOrder( 1000 )] 12 | public class EventSystemHandler : MonoBehaviour 13 | { 14 | #pragma warning disable 0649 15 | [SerializeField] 16 | private GameObject embeddedEventSystem; 17 | #pragma warning restore 0649 18 | 19 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 20 | private void Awake() 21 | { 22 | StandaloneInputModule legacyInputModule = embeddedEventSystem.GetComponent(); 23 | if( legacyInputModule ) 24 | { 25 | DestroyImmediate( legacyInputModule ); 26 | embeddedEventSystem.AddComponent(); 27 | } 28 | } 29 | #endif 30 | 31 | private void OnEnable() 32 | { 33 | SceneManager.sceneLoaded -= OnSceneLoaded; 34 | SceneManager.sceneLoaded += OnSceneLoaded; 35 | SceneManager.sceneUnloaded -= OnSceneUnloaded; 36 | SceneManager.sceneUnloaded += OnSceneUnloaded; 37 | 38 | ActivateEventSystemIfNeeded(); 39 | } 40 | 41 | private void OnDisable() 42 | { 43 | SceneManager.sceneLoaded -= OnSceneLoaded; 44 | SceneManager.sceneUnloaded -= OnSceneUnloaded; 45 | 46 | DeactivateEventSystem(); 47 | } 48 | 49 | private void OnSceneLoaded( Scene scene, LoadSceneMode mode ) 50 | { 51 | DeactivateEventSystem(); 52 | ActivateEventSystemIfNeeded(); 53 | } 54 | 55 | private void OnSceneUnloaded( Scene current ) 56 | { 57 | // Deactivate the embedded EventSystem before changing scenes because the new scene might have its own EventSystem 58 | DeactivateEventSystem(); 59 | } 60 | 61 | private void ActivateEventSystemIfNeeded() 62 | { 63 | if( embeddedEventSystem && !EventSystem.current ) 64 | embeddedEventSystem.SetActive( true ); 65 | } 66 | 67 | private void DeactivateEventSystem() 68 | { 69 | if( embeddedEventSystem ) 70 | embeddedEventSystem.SetActive( false ); 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/EventSystemHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0868341868a4a4641b4d272d2fc5f538 3 | timeCreated: 1658741613 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f51dc09bf9e35804ba0f5e76c527025e 3 | timeCreated: 1479416382 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserAccessRestrictedPanel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using TMPro; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 6 | using UnityEngine.InputSystem; 7 | #endif 8 | 9 | namespace SimpleFileBrowser 10 | { 11 | public class FileBrowserAccessRestrictedPanel : MonoBehaviour 12 | { 13 | #pragma warning disable 0649 14 | [SerializeField] 15 | private HorizontalLayoutGroup contentLayoutGroup; 16 | 17 | [SerializeField] 18 | private TextMeshProUGUI messageLabel; 19 | 20 | [SerializeField] 21 | private Button okButton; 22 | #pragma warning restore 0649 23 | 24 | private void Awake() 25 | { 26 | okButton.onClick.AddListener( OKButtonClicked ); 27 | } 28 | 29 | internal void Show() 30 | { 31 | gameObject.SetActive( true ); 32 | } 33 | 34 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 35 | private void LateUpdate() 36 | { 37 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 38 | if( Keyboard.current != null ) 39 | #endif 40 | { 41 | // Handle keyboard shortcuts 42 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 43 | if( Keyboard.current[Key.Enter].wasPressedThisFrame || Keyboard.current[Key.NumpadEnter].wasPressedThisFrame || Keyboard.current[Key.Escape].wasPressedThisFrame ) 44 | #else 45 | if( Input.GetKeyDown( KeyCode.Return ) || Input.GetKeyDown( KeyCode.KeypadEnter ) || Input.GetKeyDown( KeyCode.Escape ) ) 46 | #endif 47 | OKButtonClicked(); 48 | } 49 | } 50 | #endif 51 | 52 | internal void RefreshSkin( UISkin skin ) 53 | { 54 | contentLayoutGroup.padding.bottom = 22 + (int) ( skin.RowSpacing + skin.RowHeight ); 55 | 56 | Image background = GetComponentInChildren(); 57 | background.color = skin.PopupPanelsBackgroundColor; 58 | background.sprite = skin.PopupPanelsBackground; 59 | 60 | RectTransform buttonsParent = (RectTransform) okButton.transform.parent; 61 | buttonsParent.sizeDelta = new Vector2( buttonsParent.sizeDelta.x, skin.RowHeight ); 62 | 63 | skin.ApplyTo( okButton ); 64 | skin.ApplyTo( messageLabel, skin.PopupPanelsTextColor ); 65 | } 66 | 67 | private void OKButtonClicked() 68 | { 69 | gameObject.SetActive( false ); 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserAccessRestrictedPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85ea21be7cacb484cb6db0d183d3b2a8 3 | timeCreated: 1603800894 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs: -------------------------------------------------------------------------------- 1 | using TMPro; 2 | using UnityEngine; 3 | using UnityEngine.UI; 4 | 5 | namespace SimpleFileBrowser 6 | { 7 | public class FileBrowserContextMenu : MonoBehaviour 8 | { 9 | #pragma warning disable 0649 10 | [SerializeField] 11 | private FileBrowser fileBrowser; 12 | 13 | [SerializeField] 14 | private RectTransform rectTransform; 15 | 16 | [SerializeField] 17 | private Button selectAllButton; 18 | [SerializeField] 19 | private Button deselectAllButton; 20 | [SerializeField] 21 | private Button createFolderButton; 22 | [SerializeField] 23 | private Button deleteButton; 24 | [SerializeField] 25 | private Button renameButton; 26 | 27 | [SerializeField] 28 | private GameObject selectAllButtonSeparator; 29 | 30 | [SerializeField] 31 | private LayoutElement[] allButtonLayoutElements; 32 | [SerializeField] 33 | private TextMeshProUGUI[] allButtonTexts; 34 | [SerializeField] 35 | private Image[] allButtonSeparators; 36 | 37 | [SerializeField] 38 | private float minDistanceToEdges = 10f; 39 | #pragma warning restore 0649 40 | 41 | private void Awake() 42 | { 43 | selectAllButton.onClick.AddListener( OnSelectAllButtonClicked ); 44 | deselectAllButton.onClick.AddListener( OnDeselectAllButtonClicked ); 45 | createFolderButton.onClick.AddListener( OnCreateFolderButtonClicked ); 46 | deleteButton.onClick.AddListener( OnDeleteButtonClicked ); 47 | renameButton.onClick.AddListener( OnRenameButtonClicked ); 48 | } 49 | 50 | internal void Show( bool selectAllButtonVisible, bool deselectAllButtonVisible, bool deleteButtonVisible, bool renameButtonVisible, Vector2 position, bool isMoreOptionsMenu ) 51 | { 52 | selectAllButton.gameObject.SetActive( selectAllButtonVisible ); 53 | deselectAllButton.gameObject.SetActive( deselectAllButtonVisible ); 54 | deleteButton.gameObject.SetActive( deleteButtonVisible ); 55 | renameButton.gameObject.SetActive( renameButtonVisible ); 56 | selectAllButtonSeparator.SetActive( !deselectAllButtonVisible ); 57 | 58 | rectTransform.anchoredPosition = position; 59 | gameObject.SetActive( true ); 60 | 61 | if( isMoreOptionsMenu ) 62 | rectTransform.pivot = Vector2.one; 63 | else 64 | { 65 | // Find the optimal pivot value 66 | LayoutRebuilder.ForceRebuildLayoutImmediate( rectTransform ); 67 | 68 | Vector2 size = rectTransform.sizeDelta; 69 | Vector2 canvasSize = fileBrowser.rectTransform.sizeDelta; 70 | 71 | // Take canvas' Pivot into consideration 72 | Vector2 positionOffset = canvasSize; 73 | positionOffset.Scale( fileBrowser.rectTransform.pivot ); 74 | position += positionOffset; 75 | 76 | // Try bottom-right corner first 77 | Vector2 cornerPos = position + new Vector2( size.x + minDistanceToEdges, -size.y - minDistanceToEdges ); 78 | if( cornerPos.x <= canvasSize.x && cornerPos.y >= 0f ) 79 | rectTransform.pivot = new Vector2( 0f, 1f ); 80 | else 81 | { 82 | // Try bottom-left corner 83 | cornerPos = position - new Vector2( size.x + minDistanceToEdges, size.y + minDistanceToEdges ); 84 | if( cornerPos.x >= 0f && cornerPos.y >= 0f ) 85 | rectTransform.pivot = Vector2.one; 86 | else 87 | { 88 | // Try top-right corner 89 | cornerPos = position + new Vector2( size.x + minDistanceToEdges, size.y + minDistanceToEdges ); 90 | if( cornerPos.x <= canvasSize.x && cornerPos.y <= canvasSize.y ) 91 | rectTransform.pivot = Vector2.zero; 92 | else 93 | { 94 | // Use top-left corner 95 | rectTransform.pivot = new Vector2( 1f, 0f ); 96 | } 97 | } 98 | } 99 | } 100 | } 101 | 102 | internal void Hide() 103 | { 104 | gameObject.SetActive( false ); 105 | } 106 | 107 | internal void RefreshSkin( UISkin skin ) 108 | { 109 | rectTransform.GetComponent().color = skin.ContextMenuBackgroundColor; 110 | 111 | deselectAllButton.image.color = skin.ContextMenuBackgroundColor; 112 | selectAllButton.image.color = skin.ContextMenuBackgroundColor; 113 | createFolderButton.image.color = skin.ContextMenuBackgroundColor; 114 | deleteButton.image.color = skin.ContextMenuBackgroundColor; 115 | renameButton.image.color = skin.ContextMenuBackgroundColor; 116 | 117 | for( int i = 0; i < allButtonLayoutElements.Length; i++ ) 118 | allButtonLayoutElements[i].preferredHeight = skin.RowHeight + 1; 119 | 120 | for( int i = 0; i < allButtonTexts.Length; i++ ) 121 | skin.ApplyTo( allButtonTexts[i], skin.ContextMenuTextColor ); 122 | 123 | for( int i = 0; i < allButtonSeparators.Length; i++ ) 124 | allButtonSeparators[i].color = skin.ContextMenuSeparatorColor; 125 | } 126 | 127 | private void OnSelectAllButtonClicked() 128 | { 129 | Hide(); 130 | fileBrowser.SelectAllFiles(); 131 | } 132 | 133 | private void OnDeselectAllButtonClicked() 134 | { 135 | Hide(); 136 | fileBrowser.DeselectAllFiles(); 137 | } 138 | 139 | private void OnCreateFolderButtonClicked() 140 | { 141 | Hide(); 142 | fileBrowser.CreateNewFolder(); 143 | } 144 | 145 | private void OnDeleteButtonClicked() 146 | { 147 | Hide(); 148 | fileBrowser.DeleteSelectedFiles(); 149 | } 150 | 151 | private void OnRenameButtonClicked() 152 | { 153 | Hide(); 154 | fileBrowser.RenameSelectedFile(); 155 | } 156 | } 157 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d5261bc2717e6143961d30ccb76fb66 3 | timeCreated: 1603793977 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace SimpleFileBrowser 5 | { 6 | public class FileBrowserCursorHandler : MonoBehaviour 7 | #if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS ) 8 | , IPointerEnterHandler, IPointerExitHandler, IBeginDragHandler, IEndDragHandler 9 | #endif 10 | { 11 | #if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS ) 12 | #pragma warning disable 0649 13 | [SerializeField] 14 | private Texture2D resizeCursor; 15 | #pragma warning restore 0649 16 | 17 | private bool isHovering; 18 | private bool isResizing; 19 | 20 | void IPointerEnterHandler.OnPointerEnter( PointerEventData eventData ) 21 | { 22 | isHovering = true; 23 | 24 | if( !eventData.dragging ) 25 | ShowResizeCursor(); 26 | } 27 | 28 | void IPointerExitHandler.OnPointerExit( PointerEventData eventData ) 29 | { 30 | isHovering = false; 31 | 32 | if( !isResizing ) 33 | ShowDefaultCursor(); 34 | } 35 | 36 | void IBeginDragHandler.OnBeginDrag( PointerEventData eventData ) 37 | { 38 | isResizing = true; 39 | ShowResizeCursor(); 40 | } 41 | 42 | void IEndDragHandler.OnEndDrag( PointerEventData eventData ) 43 | { 44 | isResizing = false; 45 | 46 | if( !isHovering ) 47 | ShowDefaultCursor(); 48 | } 49 | 50 | private void ShowDefaultCursor() 51 | { 52 | Cursor.SetCursor( null, Vector2.zero, CursorMode.Auto ); 53 | } 54 | 55 | private void ShowResizeCursor() 56 | { 57 | Cursor.SetCursor( resizeCursor, new Vector2( resizeCursor.width * 0.5f, resizeCursor.height * 0.5f ), CursorMode.Auto ); 58 | } 59 | #endif 60 | } 61 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 759524cf7ef37f244bb00cd9724f0349 3 | timeCreated: 1603745549 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserFileOperationConfirmationPanel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using TMPro; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 6 | using UnityEngine.InputSystem; 7 | #endif 8 | 9 | namespace SimpleFileBrowser 10 | { 11 | public class FileBrowserFileOperationConfirmationPanel : MonoBehaviour 12 | { 13 | public enum OperationType { Delete = 0, Overwrite = 1 }; 14 | 15 | public delegate void OnOperationConfirmed(); 16 | 17 | #pragma warning disable 0649 18 | [SerializeField] 19 | private VerticalLayoutGroup contentLayoutGroup; 20 | 21 | [SerializeField] 22 | private TextMeshProUGUI[] titleLabels; 23 | 24 | [SerializeField] 25 | private GameObject[] targetItems; 26 | 27 | [SerializeField] 28 | private Image[] targetItemIcons; 29 | 30 | [SerializeField] 31 | private TextMeshProUGUI[] targetItemNames; 32 | 33 | [SerializeField] 34 | private GameObject targetItemsRest; 35 | 36 | [SerializeField] 37 | private TextMeshProUGUI targetItemsRestLabel; 38 | 39 | [SerializeField] 40 | private Button yesButton; 41 | 42 | [SerializeField] 43 | private Button noButton; 44 | 45 | [SerializeField] 46 | private float narrowScreenWidth = 380f; 47 | #pragma warning restore 0649 48 | 49 | private OnOperationConfirmed onOperationConfirmed; 50 | 51 | private void Awake() 52 | { 53 | yesButton.onClick.AddListener( OnYesButtonClicked ); 54 | noButton.onClick.AddListener( OnNoButtonClicked ); 55 | } 56 | 57 | internal void Show( FileBrowser fileBrowser, List items, OperationType operationType, OnOperationConfirmed onOperationConfirmed ) 58 | { 59 | Show( fileBrowser, items, null, operationType, onOperationConfirmed ); 60 | } 61 | 62 | internal void Show( FileBrowser fileBrowser, List items, List selectedItemIndices, OperationType operationType, OnOperationConfirmed onOperationConfirmed ) 63 | { 64 | this.onOperationConfirmed = onOperationConfirmed; 65 | 66 | int itemCount = ( selectedItemIndices != null ) ? selectedItemIndices.Count : items.Count; 67 | 68 | for( int i = 0; i < titleLabels.Length; i++ ) 69 | titleLabels[i].gameObject.SetActive( (int) operationType == i ); 70 | 71 | for( int i = 0; i < targetItems.Length; i++ ) 72 | targetItems[i].SetActive( i < itemCount ); 73 | 74 | for( int i = 0; i < targetItems.Length && i < itemCount; i++ ) 75 | { 76 | FileSystemEntry item = items[( selectedItemIndices != null ) ? selectedItemIndices[i] : i]; 77 | targetItemIcons[i].sprite = fileBrowser.GetIconForFileEntry( item ); 78 | targetItemNames[i].text = item.Name; 79 | } 80 | 81 | if( itemCount > targetItems.Length ) 82 | { 83 | targetItemsRestLabel.text = string.Concat( "...and ", ( itemCount - targetItems.Length ).ToString(), " other" ); 84 | targetItemsRest.SetActive( true ); 85 | } 86 | else 87 | targetItemsRest.SetActive( false ); 88 | 89 | gameObject.SetActive( true ); 90 | } 91 | 92 | // Handles responsive user interface 93 | internal void OnCanvasDimensionsChanged( Vector2 size ) 94 | { 95 | if( size.x >= narrowScreenWidth ) 96 | { 97 | ( yesButton.transform as RectTransform ).anchorMin = new Vector2( 0.5f, 0f ); 98 | ( yesButton.transform as RectTransform ).anchorMax = new Vector2( 0.75f, 1f ); 99 | ( noButton.transform as RectTransform ).anchorMin = new Vector2( 0.75f, 0f ); 100 | } 101 | else 102 | { 103 | ( yesButton.transform as RectTransform ).anchorMin = Vector2.zero; 104 | ( yesButton.transform as RectTransform ).anchorMax = new Vector2( 0.5f, 1f ); 105 | ( noButton.transform as RectTransform ).anchorMin = new Vector2( 0.5f, 0f ); 106 | } 107 | } 108 | 109 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 110 | private void LateUpdate() 111 | { 112 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 113 | if( Keyboard.current != null ) 114 | #endif 115 | { 116 | // Handle keyboard shortcuts 117 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 118 | if( Keyboard.current[Key.Enter].wasPressedThisFrame || Keyboard.current[Key.NumpadEnter].wasPressedThisFrame ) 119 | #else 120 | if( Input.GetKeyDown( KeyCode.Return ) || Input.GetKeyDown( KeyCode.KeypadEnter ) ) 121 | #endif 122 | OnYesButtonClicked(); 123 | 124 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 125 | if( Keyboard.current[Key.Escape].wasPressedThisFrame ) 126 | #else 127 | if( Input.GetKeyDown( KeyCode.Escape ) ) 128 | #endif 129 | OnNoButtonClicked(); 130 | } 131 | } 132 | #endif 133 | 134 | internal void RefreshSkin( UISkin skin ) 135 | { 136 | contentLayoutGroup.spacing = skin.RowSpacing; 137 | contentLayoutGroup.padding.bottom = 22 + (int) ( skin.RowSpacing + skin.RowHeight ); 138 | 139 | Image background = GetComponentInChildren(); 140 | background.color = skin.PopupPanelsBackgroundColor; 141 | background.sprite = skin.PopupPanelsBackground; 142 | 143 | RectTransform buttonsParent = yesButton.transform.parent as RectTransform; 144 | buttonsParent.sizeDelta = new Vector2( buttonsParent.sizeDelta.x, skin.RowHeight ); 145 | 146 | skin.ApplyTo( yesButton ); 147 | skin.ApplyTo( noButton ); 148 | 149 | for( int i = 0; i < titleLabels.Length; i++ ) 150 | skin.ApplyTo( titleLabels[i], skin.PopupPanelsTextColor ); 151 | 152 | skin.ApplyTo( targetItemsRestLabel, skin.PopupPanelsTextColor ); 153 | 154 | for( int i = 0; i < targetItemNames.Length; i++ ) 155 | skin.ApplyTo( targetItemNames[i], skin.PopupPanelsTextColor ); 156 | 157 | for( int i = 0; i < targetItems.Length; i++ ) 158 | targetItems[i].GetComponent().preferredHeight = skin.FileHeight; 159 | } 160 | 161 | private void OnYesButtonClicked() 162 | { 163 | gameObject.SetActive( false ); 164 | 165 | if( onOperationConfirmed != null ) 166 | onOperationConfirmed(); 167 | } 168 | 169 | private void OnNoButtonClicked() 170 | { 171 | gameObject.SetActive( false ); 172 | onOperationConfirmed = null; 173 | } 174 | } 175 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserFileOperationConfirmationPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 524a683efed82084b9a9c4a3eff23b73 3 | timeCreated: 1658958138 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2370e7a82ec4087499ebf7efa149e9eb 3 | timeCreated: 1570919647 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs: -------------------------------------------------------------------------------- 1 | using TMPro; 2 | using UnityEngine; 3 | using UnityEngine.EventSystems; 4 | using UnityEngine.UI; 5 | 6 | namespace SimpleFileBrowser 7 | { 8 | public class FileBrowserItem : ListItem, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler 9 | #if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS ) 10 | , IPointerEnterHandler, IPointerExitHandler 11 | #endif 12 | { 13 | #region Constants 14 | private const float DOUBLE_CLICK_TIME = 0.5f; 15 | private const float TOGGLE_MULTI_SELECTION_HOLD_TIME = 0.5f; 16 | #endregion 17 | 18 | #region Variables 19 | protected FileBrowser fileBrowser; 20 | 21 | #pragma warning disable 0649 22 | [SerializeField] 23 | private Image background; 24 | 25 | [SerializeField] 26 | private Image icon; 27 | public Image Icon { get { return icon; } } 28 | 29 | [SerializeField] 30 | private Image multiSelectionToggle; 31 | 32 | [SerializeField] 33 | private TextMeshProUGUI nameText; 34 | #pragma warning restore 0649 35 | 36 | #pragma warning disable 0414 37 | private bool isSelected, isHidden; 38 | #pragma warning restore 0414 39 | 40 | private UISkin skin; 41 | 42 | private float pressTime = Mathf.Infinity; 43 | private float prevClickTime; 44 | #endregion 45 | 46 | #region Properties 47 | private RectTransform m_transform; 48 | public RectTransform TransformComponent 49 | { 50 | get 51 | { 52 | if( m_transform == null ) 53 | m_transform = (RectTransform) transform; 54 | 55 | return m_transform; 56 | } 57 | } 58 | 59 | public string Name { get { return nameText.text; } } 60 | public bool IsDirectory { get; private set; } 61 | #endregion 62 | 63 | #region Initialization Functions 64 | public void SetFileBrowser( FileBrowser fileBrowser, UISkin skin ) 65 | { 66 | this.fileBrowser = fileBrowser; 67 | OnSkinRefreshed( skin, false ); 68 | } 69 | 70 | public void SetFile( Sprite icon, string name, bool isDirectory ) 71 | { 72 | this.icon.sprite = icon; 73 | nameText.text = name; 74 | 75 | IsDirectory = isDirectory; 76 | } 77 | #endregion 78 | 79 | #region Messages 80 | private void Update() 81 | { 82 | if( fileBrowser.AllowMultiSelection && Time.realtimeSinceStartup - pressTime >= TOGGLE_MULTI_SELECTION_HOLD_TIME ) 83 | { 84 | // Item is held for a while 85 | pressTime = Mathf.Infinity; 86 | fileBrowser.OnItemHeld( this ); 87 | } 88 | } 89 | #endregion 90 | 91 | #region Pointer Events 92 | public void OnPointerClick( PointerEventData eventData ) 93 | { 94 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0 95 | if( eventData.button == PointerEventData.InputButton.Middle ) 96 | return; 97 | else if( eventData.button == PointerEventData.InputButton.Right ) 98 | { 99 | // First, select the item 100 | if( !isSelected ) 101 | { 102 | prevClickTime = 0f; 103 | fileBrowser.OnItemSelected( this, false ); 104 | } 105 | 106 | // Then, show the context menu 107 | fileBrowser.OnContextMenuTriggered( eventData.position ); 108 | return; 109 | } 110 | #endif 111 | 112 | if( Time.realtimeSinceStartup - prevClickTime < DOUBLE_CLICK_TIME ) 113 | { 114 | prevClickTime = 0f; 115 | fileBrowser.OnItemSelected( this, true ); 116 | } 117 | else 118 | { 119 | prevClickTime = Time.realtimeSinceStartup; 120 | fileBrowser.OnItemSelected( this, false ); 121 | } 122 | } 123 | 124 | public void OnPointerDown( PointerEventData eventData ) 125 | { 126 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0 127 | if( eventData.button != PointerEventData.InputButton.Left ) 128 | return; 129 | #endif 130 | 131 | pressTime = Time.realtimeSinceStartup; 132 | } 133 | 134 | public void OnPointerUp( PointerEventData eventData ) 135 | { 136 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0 137 | if( eventData.button != PointerEventData.InputButton.Left ) 138 | return; 139 | #endif 140 | 141 | if( pressTime != Mathf.Infinity ) 142 | pressTime = Mathf.Infinity; 143 | else if( fileBrowser.MultiSelectionToggleSelectionMode ) 144 | { 145 | // We have activated MultiSelectionToggleSelectionMode with this press, processing the click would result in 146 | // deselecting this item since its selected state would be toggled 147 | eventData.eligibleForClick = false; 148 | } 149 | } 150 | 151 | #if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS ) 152 | public void OnPointerEnter( PointerEventData eventData ) 153 | { 154 | if( !isSelected ) 155 | background.color = skin.FileHoveredBackgroundColor; 156 | } 157 | #endif 158 | 159 | #if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS ) 160 | public void OnPointerExit( PointerEventData eventData ) 161 | { 162 | if( !isSelected ) 163 | background.color = ( Position % 2 ) == 0 ? skin.FileNormalBackgroundColor : skin.FileAlternatingBackgroundColor; 164 | } 165 | #endif 166 | #endregion 167 | 168 | #region Other Events 169 | public void SetSelected( bool isSelected ) 170 | { 171 | this.isSelected = isSelected; 172 | 173 | background.color = isSelected ? skin.FileSelectedBackgroundColor : ( ( Position % 2 ) == 0 ? skin.FileNormalBackgroundColor : skin.FileAlternatingBackgroundColor ); 174 | nameText.color = isSelected ? skin.FileSelectedTextColor : skin.FileNormalTextColor; 175 | 176 | if( isHidden ) 177 | { 178 | Color c = nameText.color; 179 | c.a = 0.55f; 180 | nameText.color = c; 181 | } 182 | 183 | if( multiSelectionToggle ) // Quick links don't have multi-selection toggle 184 | { 185 | // Don't show multi-selection toggle for folders in file selection mode 186 | if( fileBrowser.MultiSelectionToggleSelectionMode && ( !IsDirectory || fileBrowser.PickerMode != FileBrowser.PickMode.Files ) ) 187 | { 188 | if( !multiSelectionToggle.gameObject.activeSelf ) 189 | { 190 | multiSelectionToggle.gameObject.SetActive( true ); 191 | 192 | Vector2 shiftAmount = new Vector2( multiSelectionToggle.rectTransform.sizeDelta.x, 0f ); 193 | icon.rectTransform.anchoredPosition += shiftAmount; 194 | nameText.rectTransform.anchoredPosition += shiftAmount; 195 | } 196 | 197 | multiSelectionToggle.sprite = isSelected ? skin.FileMultiSelectionToggleOnIcon : skin.FileMultiSelectionToggleOffIcon; 198 | } 199 | else if( multiSelectionToggle.gameObject.activeSelf ) 200 | { 201 | multiSelectionToggle.gameObject.SetActive( false ); 202 | 203 | Vector2 shiftAmount = new Vector2( -multiSelectionToggle.rectTransform.sizeDelta.x, 0f ); 204 | icon.rectTransform.anchoredPosition += shiftAmount; 205 | nameText.rectTransform.anchoredPosition += shiftAmount; 206 | 207 | // Clicking a file shortly after disabling MultiSelectionToggleSelectionMode does nothing, this workaround fixes that issue 208 | prevClickTime = 0f; 209 | } 210 | } 211 | } 212 | 213 | public void SetHidden( bool isHidden ) 214 | { 215 | this.isHidden = isHidden; 216 | 217 | Color c = icon.color; 218 | c.a = isHidden ? 0.5f : 1f; 219 | icon.color = c; 220 | 221 | c = nameText.color; 222 | c.a = isHidden ? 0.55f : ( isSelected ? skin.FileSelectedTextColor.a : skin.FileNormalTextColor.a ); 223 | nameText.color = c; 224 | } 225 | 226 | public void OnSkinRefreshed( UISkin skin, bool isInitialized = true ) 227 | { 228 | this.skin = skin; 229 | 230 | TransformComponent.sizeDelta = new Vector2( TransformComponent.sizeDelta.x, skin.FileHeight ); 231 | skin.ApplyTo( nameText, isSelected ? skin.FileSelectedTextColor : skin.FileNormalTextColor ); 232 | icon.rectTransform.sizeDelta = new Vector2( icon.rectTransform.sizeDelta.x, -skin.FileIconsPadding ); 233 | 234 | if( isInitialized ) 235 | SetSelected( isSelected ); 236 | } 237 | #endregion 238 | } 239 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5f1b2825c50f7b4d9be146ab2137bff 3 | timeCreated: 1479417850 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace SimpleFileBrowser 5 | { 6 | public class FileBrowserMovement : MonoBehaviour 7 | { 8 | #region Variables 9 | #pragma warning disable 0649 10 | private FileBrowser fileBrowser; 11 | private RectTransform canvasTR; 12 | private Camera canvasCam; 13 | 14 | [SerializeField] 15 | private RectTransform window; 16 | 17 | [SerializeField] 18 | private RecycledListView listView; 19 | #pragma warning restore 0649 20 | 21 | private Vector2 initialTouchPos = Vector2.zero; 22 | private Vector2 initialAnchoredPos, initialSizeDelta; 23 | #endregion 24 | 25 | #region Initialization Functions 26 | public void Initialize( FileBrowser fileBrowser ) 27 | { 28 | this.fileBrowser = fileBrowser; 29 | canvasTR = fileBrowser.GetComponent(); 30 | } 31 | #endregion 32 | 33 | #region Pointer Events 34 | public void OnDragStarted( BaseEventData data ) 35 | { 36 | PointerEventData pointer = (PointerEventData) data; 37 | 38 | canvasCam = pointer.pressEventCamera; 39 | RectTransformUtility.ScreenPointToLocalPointInRectangle( window, pointer.pressPosition, canvasCam, out initialTouchPos ); 40 | } 41 | 42 | public void OnDrag( BaseEventData data ) 43 | { 44 | PointerEventData pointer = (PointerEventData) data; 45 | 46 | Vector2 touchPos; 47 | RectTransformUtility.ScreenPointToLocalPointInRectangle( window, pointer.position, canvasCam, out touchPos ); 48 | window.anchoredPosition += touchPos - initialTouchPos; 49 | } 50 | 51 | public void OnEndDrag( BaseEventData data ) 52 | { 53 | fileBrowser.EnsureWindowIsWithinBounds(); 54 | } 55 | 56 | public void OnResizeStarted( BaseEventData data ) 57 | { 58 | PointerEventData pointer = (PointerEventData) data; 59 | 60 | canvasCam = pointer.pressEventCamera; 61 | initialAnchoredPos = window.anchoredPosition; 62 | initialSizeDelta = window.sizeDelta; 63 | RectTransformUtility.ScreenPointToLocalPointInRectangle( canvasTR, pointer.pressPosition, canvasCam, out initialTouchPos ); 64 | } 65 | 66 | public void OnResize( BaseEventData data ) 67 | { 68 | PointerEventData pointer = (PointerEventData) data; 69 | 70 | Vector2 touchPos; 71 | RectTransformUtility.ScreenPointToLocalPointInRectangle( canvasTR, pointer.position, canvasCam, out touchPos ); 72 | 73 | Vector2 delta = touchPos - initialTouchPos; 74 | Vector2 newSize = initialSizeDelta + new Vector2( delta.x, -delta.y ); 75 | Vector2 canvasSize = canvasTR.sizeDelta; 76 | 77 | if( newSize.x < fileBrowser.minWidth ) newSize.x = fileBrowser.minWidth; 78 | if( newSize.y < fileBrowser.minHeight ) newSize.y = fileBrowser.minHeight; 79 | 80 | if( newSize.x > canvasSize.x ) newSize.x = canvasSize.x; 81 | if( newSize.y > canvasSize.y ) newSize.y = canvasSize.y; 82 | 83 | newSize.x = (int) newSize.x; 84 | newSize.y = (int) newSize.y; 85 | 86 | delta = newSize - initialSizeDelta; 87 | 88 | window.anchoredPosition = initialAnchoredPos + new Vector2( delta.x * 0.5f, delta.y * -0.5f ); 89 | 90 | if( window.sizeDelta != newSize ) 91 | { 92 | window.sizeDelta = newSize; 93 | fileBrowser.OnWindowDimensionsChanged( newSize ); 94 | } 95 | 96 | listView.OnViewportDimensionsChanged(); 97 | } 98 | 99 | public void OnEndResize( BaseEventData data ) 100 | { 101 | fileBrowser.EnsureWindowIsWithinBounds(); 102 | } 103 | #endregion 104 | } 105 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46d41d79fe7c3d44ca846b4f3d81a476 3 | timeCreated: 1479486534 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SimpleFileBrowser 4 | { 5 | public class FileBrowserQuickLink : FileBrowserItem 6 | { 7 | #region Properties 8 | private string m_targetPath; 9 | public string TargetPath { get { return m_targetPath; } } 10 | #endregion 11 | 12 | #region Initialization Functions 13 | public void SetQuickLink( Sprite icon, string name, string targetPath ) 14 | { 15 | SetFile( icon, name, true ); 16 | 17 | m_targetPath = targetPath; 18 | } 19 | #endregion 20 | } 21 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f277f5418eabf94cad94208055878af 3 | timeCreated: 1479417850 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs: -------------------------------------------------------------------------------- 1 | using TMPro; 2 | using UnityEngine; 3 | using UnityEngine.EventSystems; 4 | using UnityEngine.UI; 5 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 6 | using UnityEngine.InputSystem; 7 | #endif 8 | 9 | namespace SimpleFileBrowser 10 | { 11 | public class FileBrowserRenamedItem : MonoBehaviour 12 | { 13 | public delegate void OnRenameCompleted( string filename ); 14 | 15 | #pragma warning disable 0649 16 | [SerializeField] 17 | private Image background; 18 | 19 | [SerializeField] 20 | private Image icon; 21 | 22 | [SerializeField] 23 | private TMP_InputField nameInputField; 24 | public TMP_InputField InputField { get { return nameInputField; } } 25 | #pragma warning restore 0649 26 | 27 | private OnRenameCompleted onRenameCompleted; 28 | 29 | private RectTransform m_transform; 30 | public RectTransform TransformComponent 31 | { 32 | get 33 | { 34 | if( m_transform == null ) 35 | m_transform = (RectTransform) transform; 36 | 37 | return m_transform; 38 | } 39 | } 40 | 41 | private void Awake() 42 | { 43 | nameInputField.onEndEdit.AddListener( OnInputFieldEndEdit ); 44 | } 45 | 46 | public void Show( string initialFilename, Color backgroundColor, Sprite icon, OnRenameCompleted onRenameCompleted ) 47 | { 48 | background.color = backgroundColor; 49 | this.icon.sprite = icon; 50 | this.onRenameCompleted = onRenameCompleted; 51 | 52 | transform.SetAsLastSibling(); 53 | gameObject.SetActive( true ); 54 | 55 | nameInputField.text = initialFilename; 56 | nameInputField.ActivateInputField(); 57 | } 58 | 59 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 60 | private void LateUpdate() 61 | { 62 | // Don't allow scrolling with mouse wheel while renaming a file or creating a folder 63 | #if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER 64 | if( Mouse.current != null && Mouse.current.scroll.ReadValue().y != 0f ) 65 | #else 66 | if( Input.mouseScrollDelta.y != 0f ) 67 | #endif 68 | nameInputField.DeactivateInputField(); 69 | } 70 | #endif 71 | 72 | private void OnInputFieldEndEdit( string filename ) 73 | { 74 | gameObject.SetActive( false ); 75 | 76 | // If we don't deselect the InputField manually, FileBrowser's keyboard shortcuts 77 | // no longer work until user clicks on a UI element and thus, deselects the InputField 78 | if( EventSystem.current && !EventSystem.current.alreadySelecting && EventSystem.current.currentSelectedGameObject == nameInputField.gameObject ) 79 | EventSystem.current.SetSelectedGameObject( null ); 80 | 81 | if( onRenameCompleted != null ) 82 | onRenameCompleted( filename ); 83 | } 84 | } 85 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7397ff7ae1ba4c47b6dfd3c84936584 3 | timeCreated: 1603812277 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace SimpleFileBrowser 5 | { 6 | // Credit: http://answers.unity.com/answers/1157876/view.html 7 | [RequireComponent( typeof( CanvasRenderer ) )] 8 | public class NonDrawingGraphic : Graphic 9 | { 10 | public override void SetMaterialDirty() { return; } 11 | public override void SetVerticesDirty() { return; } 12 | 13 | protected override void OnPopulateMesh( VertexHelper vh ) 14 | { 15 | vh.Clear(); 16 | return; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4fd8cdb8c068dd4bb48c415877496ba 3 | timeCreated: 1603794018 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dec11495f4b8cef49b7a3b4b06f094c3 3 | folderAsset: yes 4 | timeCreated: 1485706514 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs: -------------------------------------------------------------------------------- 1 | namespace SimpleFileBrowser 2 | { 3 | public delegate void OnItemClickedHandler( ListItem item ); 4 | 5 | public interface IListViewAdapter 6 | { 7 | OnItemClickedHandler OnItemClicked { get; set; } 8 | 9 | int Count { get; } 10 | float ItemHeight { get; } 11 | 12 | ListItem CreateItem(); 13 | 14 | void SetItemContent( ListItem item ); 15 | } 16 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08e51b912648ace4784ebe20fc6cc961 3 | timeCreated: 1485706575 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SimpleFileBrowser 4 | { 5 | [RequireComponent( typeof( RectTransform ) )] 6 | public class ListItem : MonoBehaviour 7 | { 8 | public object Tag { get; set; } 9 | public int Position { get; set; } 10 | 11 | private IListViewAdapter adapter; 12 | 13 | internal void SetAdapter( IListViewAdapter listView ) 14 | { 15 | this.adapter = listView; 16 | } 17 | 18 | public void OnClick() 19 | { 20 | if( adapter.OnItemClicked != null ) 21 | adapter.OnItemClicked( this ); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c3e7249b2cb96446a7ccfbed51aab81 3 | timeCreated: 1485706535 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.EventSystems; 4 | using UnityEngine.UI; 5 | 6 | namespace SimpleFileBrowser 7 | { 8 | [RequireComponent( typeof( ScrollRect ) )] 9 | public class RecycledListView : MonoBehaviour 10 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 11 | , IPointerClickHandler 12 | #endif 13 | { 14 | #pragma warning disable 0649 15 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 16 | [SerializeField] 17 | private FileBrowser fileBrowser; 18 | #endif 19 | 20 | // Cached components 21 | [SerializeField] 22 | private RectTransform viewportTransform; 23 | [SerializeField] 24 | private RectTransform contentTransform; 25 | #pragma warning restore 0649 26 | 27 | private float itemHeight, _1OverItemHeight; 28 | private float viewportHeight; 29 | 30 | private readonly Dictionary items = new Dictionary(); 31 | private readonly Stack pooledItems = new Stack(); 32 | 33 | IListViewAdapter adapter = null; 34 | 35 | // Current indices of items shown on screen 36 | private int currentTopIndex = -1, currentBottomIndex = -1; 37 | 38 | private void Start() 39 | { 40 | viewportHeight = viewportTransform.rect.height; 41 | GetComponent().onValueChanged.AddListener( ( pos ) => UpdateItemsInTheList() ); 42 | } 43 | 44 | public void SetAdapter( IListViewAdapter adapter ) 45 | { 46 | this.adapter = adapter; 47 | 48 | itemHeight = adapter.ItemHeight; 49 | _1OverItemHeight = 1f / itemHeight; 50 | } 51 | 52 | public void OnSkinRefreshed() 53 | { 54 | if( currentTopIndex >= 0 ) 55 | { 56 | DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex ); 57 | currentTopIndex = currentBottomIndex = -1; 58 | } 59 | 60 | itemHeight = adapter.ItemHeight; 61 | _1OverItemHeight = 1f / itemHeight; 62 | 63 | UpdateList(); 64 | } 65 | 66 | // Update the list 67 | public void UpdateList() 68 | { 69 | float newHeight = Mathf.Max( 1f, adapter.Count * itemHeight ); 70 | contentTransform.sizeDelta = new Vector2( 0f, newHeight ); 71 | viewportHeight = viewportTransform.rect.height; 72 | 73 | UpdateItemsInTheList( true ); 74 | } 75 | 76 | // Window is resized, update the list 77 | public void OnViewportDimensionsChanged() 78 | { 79 | viewportHeight = viewportTransform.rect.height; 80 | UpdateItemsInTheList(); 81 | } 82 | 83 | // Calculate the indices of items to show 84 | private void UpdateItemsInTheList( bool updateAllVisibleItems = false ) 85 | { 86 | // If there is at least one item to show 87 | if( adapter.Count > 0 ) 88 | { 89 | float contentPos = contentTransform.anchoredPosition.y - 1f; 90 | 91 | int newTopIndex = (int) ( contentPos * _1OverItemHeight ); 92 | int newBottomIndex = (int) ( ( contentPos + viewportHeight + 2f ) * _1OverItemHeight ); 93 | 94 | if( newTopIndex < 0 ) 95 | newTopIndex = 0; 96 | 97 | if( newBottomIndex > adapter.Count - 1 ) 98 | newBottomIndex = adapter.Count - 1; 99 | 100 | if( currentTopIndex == -1 ) 101 | { 102 | // There are no active items 103 | 104 | updateAllVisibleItems = true; 105 | 106 | currentTopIndex = newTopIndex; 107 | currentBottomIndex = newBottomIndex; 108 | 109 | CreateItemsBetweenIndices( newTopIndex, newBottomIndex ); 110 | } 111 | else 112 | { 113 | // There are some active items 114 | 115 | if( newBottomIndex < currentTopIndex || newTopIndex > currentBottomIndex ) 116 | { 117 | // If user scrolled a lot such that, none of the items are now within 118 | // the bounds of the scroll view, pool all the previous items and create 119 | // new items for the new list of visible entries 120 | updateAllVisibleItems = true; 121 | 122 | DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex ); 123 | CreateItemsBetweenIndices( newTopIndex, newBottomIndex ); 124 | } 125 | else 126 | { 127 | // User did not scroll a lot such that, some items are are still within 128 | // the bounds of the scroll view. Don't destroy them but update their content, 129 | // if necessary 130 | if( newTopIndex > currentTopIndex ) 131 | { 132 | DestroyItemsBetweenIndices( currentTopIndex, newTopIndex - 1 ); 133 | } 134 | 135 | if( newBottomIndex < currentBottomIndex ) 136 | { 137 | DestroyItemsBetweenIndices( newBottomIndex + 1, currentBottomIndex ); 138 | } 139 | 140 | if( newTopIndex < currentTopIndex ) 141 | { 142 | CreateItemsBetweenIndices( newTopIndex, currentTopIndex - 1 ); 143 | 144 | // If it is not necessary to update all the items, 145 | // then just update the newly created items. Otherwise, 146 | // wait for the major update 147 | if( !updateAllVisibleItems ) 148 | { 149 | UpdateItemContentsBetweenIndices( newTopIndex, currentTopIndex - 1 ); 150 | } 151 | } 152 | 153 | if( newBottomIndex > currentBottomIndex ) 154 | { 155 | CreateItemsBetweenIndices( currentBottomIndex + 1, newBottomIndex ); 156 | 157 | // If it is not necessary to update all the items, 158 | // then just update the newly created items. Otherwise, 159 | // wait for the major update 160 | if( !updateAllVisibleItems ) 161 | { 162 | UpdateItemContentsBetweenIndices( currentBottomIndex + 1, newBottomIndex ); 163 | } 164 | } 165 | } 166 | 167 | currentTopIndex = newTopIndex; 168 | currentBottomIndex = newBottomIndex; 169 | } 170 | 171 | if( updateAllVisibleItems ) 172 | { 173 | // Update all the items 174 | UpdateItemContentsBetweenIndices( currentTopIndex, currentBottomIndex ); 175 | } 176 | } 177 | else if( currentTopIndex != -1 ) 178 | { 179 | // There is nothing to show but some items are still visible; pool them 180 | DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex ); 181 | 182 | currentTopIndex = -1; 183 | } 184 | } 185 | 186 | private void CreateItemsBetweenIndices( int topIndex, int bottomIndex ) 187 | { 188 | for( int i = topIndex; i <= bottomIndex; i++ ) 189 | { 190 | CreateItemAtIndex( i ); 191 | } 192 | } 193 | 194 | // Create (or unpool) an item 195 | private void CreateItemAtIndex( int index ) 196 | { 197 | ListItem item; 198 | if( pooledItems.Count > 0 ) 199 | { 200 | item = pooledItems.Pop(); 201 | item.gameObject.SetActive( true ); 202 | } 203 | else 204 | { 205 | item = adapter.CreateItem(); 206 | item.SetAdapter( adapter ); 207 | } 208 | 209 | // Reposition the item 210 | ( (RectTransform) item.transform ).anchoredPosition = new Vector2( 1f, -index * itemHeight ); 211 | 212 | // To access this item easily in the future, add it to the dictionary 213 | items[index] = item; 214 | } 215 | 216 | private void DestroyItemsBetweenIndices( int topIndex, int bottomIndex ) 217 | { 218 | for( int i = topIndex; i <= bottomIndex; i++ ) 219 | { 220 | ListItem item = items[i]; 221 | 222 | item.gameObject.SetActive( false ); 223 | pooledItems.Push( item ); 224 | } 225 | 226 | if( topIndex == currentTopIndex && bottomIndex == currentBottomIndex ) 227 | items.Clear(); 228 | else 229 | { 230 | for( int i = topIndex; i <= bottomIndex; i++ ) 231 | items.Remove( i ); 232 | } 233 | } 234 | 235 | private void UpdateItemContentsBetweenIndices( int topIndex, int bottomIndex ) 236 | { 237 | for( int i = topIndex; i <= bottomIndex; i++ ) 238 | { 239 | ListItem item = items[i]; 240 | 241 | item.Position = i; 242 | adapter.SetItemContent( item ); 243 | } 244 | } 245 | 246 | #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0 247 | // When free space inside ScrollRect is clicked: 248 | // Left click: deselect selected file(s) 249 | // Right click: show context menu 250 | public void OnPointerClick( PointerEventData eventData ) 251 | { 252 | if( eventData.button == PointerEventData.InputButton.Left ) 253 | fileBrowser.DeselectAllFiles(); 254 | else if( eventData.button == PointerEventData.InputButton.Right ) 255 | fileBrowser.OnContextMenuTriggered( eventData.position ); 256 | } 257 | #endif 258 | } 259 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87ad67b4806678e40a492e337338760b 3 | timeCreated: 1485620000 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Scripts/UISkin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66bc3ce4885990c40a88f80fe0ad0101 3 | timeCreated: 1634711050 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SimpleFileBrowser.Runtime", 3 | "references": [ 4 | "Unity.InputSystem", 5 | "Unity.TextMeshPro" 6 | ], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "autoReferenced": true, 11 | "overrideReferences": false, 12 | "precompiledReferences": [], 13 | "defineConstraints": [], 14 | "optionalUnityReferences": [] 15 | } -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c685d05731421f64287ad6d13be5af0e 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Skins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e6307005d898f2458a6b0a2ef136d0b 3 | folderAsset: yes 4 | timeCreated: 1634717866 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Skins/DarkSkin.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 66bc3ce4885990c40a88f80fe0ad0101, type: 3} 13 | m_Name: DarkSkin 14 | m_EditorClassIdentifier: 15 | m_font: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 16 | m_fontSize: 14 17 | m_rowHeight: 30 18 | m_rowSpacing: 8 19 | m_windowColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 20 | m_filesListColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} 21 | m_filesVerticalSeparatorColor: {r: 0.334, g: 0.334, b: 0.334, a: 1} 22 | m_titleBackgroundColor: {r: 0.07058824, g: 0.07058824, b: 0.07058824, a: 1} 23 | m_titleTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 24 | m_windowResizeGizmoColor: {r: 1, g: 1, b: 1, a: 0.87058824} 25 | m_headerButtonsColor: {r: 1, g: 1, b: 1, a: 1} 26 | m_windowResizeGizmo: {fileID: 21300000, guid: 285f1e681b119ce48ae469448241360b, 27 | type: 3} 28 | m_headerBackButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 29 | m_headerForwardButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, 30 | type: 3} 31 | m_headerUpButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 32 | m_headerContextMenuButton: {fileID: 21300000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0, 33 | type: 3} 34 | m_inputFieldNormalBackgroundColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, 35 | a: 1} 36 | m_inputFieldInvalidBackgroundColor: {r: 0.4392157, g: 0.12156863, b: 0.12156863, 37 | a: 1} 38 | m_inputFieldTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 39 | m_inputFieldPlaceholderTextColor: {r: 1, g: 1, b: 1, a: 0.6509804} 40 | m_inputFieldSelectedTextColor: {r: 0.13725491, g: 0.46666667, b: 0.69411767, a: 0.5019608} 41 | m_inputFieldCaretColor: {r: 1, g: 1, b: 1, a: 1} 42 | m_inputFieldBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, 43 | type: 3} 44 | m_buttonColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1} 45 | m_buttonTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 46 | m_buttonBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3} 47 | m_dropdownColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1} 48 | m_dropdownTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 49 | m_dropdownArrowColor: {r: 1, g: 1, b: 1, a: 0.87058824} 50 | m_dropdownCheckmarkColor: {r: 1, g: 1, b: 1, a: 0.87058824} 51 | m_dropdownBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, 52 | type: 3} 53 | m_dropdownArrow: {fileID: 21300000, guid: f73f38102c749484bbd884d4d8d87440, type: 3} 54 | m_dropdownCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, 55 | type: 3} 56 | m_toggleColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1} 57 | m_toggleTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 58 | m_toggleCheckmarkColor: {r: 1, g: 1, b: 1, a: 0.87058824} 59 | m_toggleBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, type: 3} 60 | m_toggleCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3} 61 | m_scrollbarBackgroundColor: {r: 0.07058824, g: 0.07058824, b: 0.07058824, a: 1} 62 | m_scrollbarColor: {r: 0.26666668, g: 0.26666668, b: 0.26666668, a: 1} 63 | m_fileHeight: 30 64 | m_fileIconsPadding: 6 65 | m_fileNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 0} 66 | m_fileAlternatingBackgroundColor: {r: 1, g: 1, b: 1, a: 0.043137256} 67 | m_fileHoveredBackgroundColor: {r: 0.88235295, g: 0.88235295, b: 1, a: 0.2} 68 | m_fileSelectedBackgroundColor: {r: 0, g: 0.34117648, b: 0.5803922, a: 1} 69 | m_fileNormalTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 70 | m_fileSelectedTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 71 | m_folderIcon: {fileID: 21300000, guid: 27947666271b231439b4409a81cb5d59, type: 3} 72 | m_driveIcon: {fileID: 21300000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3} 73 | m_defaultFileIcon: {fileID: 21300000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3} 74 | m_filetypeIcons: 75 | - extension: .txt 76 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 77 | - extension: .doc 78 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 79 | - extension: .docx 80 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 81 | - extension: .xml 82 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 83 | - extension: .json 84 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 85 | - extension: .rtf 86 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 87 | - extension: .pdf 88 | icon: {fileID: 21300000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3} 89 | - extension: .jpg 90 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 91 | - extension: .jpeg 92 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 93 | - extension: .png 94 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 95 | - extension: .gif 96 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 97 | - extension: .bmp 98 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 99 | - extension: .psd 100 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 101 | - extension: .tif 102 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 103 | - extension: .tiff 104 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 105 | - extension: .mp4 106 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 107 | - extension: .mkv 108 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 109 | - extension: .mov 110 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 111 | - extension: .avi 112 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 113 | - extension: .flv 114 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 115 | - extension: .webm 116 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 117 | - extension: .wmv 118 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 119 | - extension: .mp3 120 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 121 | - extension: .wav 122 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 123 | - extension: .aac 124 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 125 | - extension: .m4a 126 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 127 | - extension: .ogg 128 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 129 | - extension: .wma 130 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 131 | - extension: .flac 132 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 133 | - extension: .zip 134 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 135 | - extension: .rar 136 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 137 | - extension: .7z 138 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 139 | - extension: .gz 140 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 141 | - extension: .exe 142 | icon: {fileID: 21300000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3} 143 | m_fileMultiSelectionToggleOffIcon: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e, 144 | type: 3} 145 | m_fileMultiSelectionToggleOnIcon: {fileID: 21300000, guid: 30a2566f94f937b4998542121050e68b, 146 | type: 3} 147 | m_contextMenuBackgroundColor: {r: 0.11372549, g: 0.11372549, b: 0.11372549, a: 1} 148 | m_contextMenuTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 149 | m_contextMenuSeparatorColor: {r: 0.6392157, g: 0.6392157, b: 0.6392157, a: 1} 150 | m_popupPanelsBackgroundColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1} 151 | m_popupPanelsTextColor: {r: 1, g: 1, b: 1, a: 0.87058824} 152 | m_popupPanelsBackground: {fileID: 21300000, guid: b9c5fedc997f125448c4d8be2fc43bcd, 153 | type: 3} 154 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Skins/DarkSkin.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07c1616acb3e05d4789781b38d6ab800 3 | timeCreated: 1634717905 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Skins/LightSkin.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 66bc3ce4885990c40a88f80fe0ad0101, type: 3} 13 | m_Name: LightSkin 14 | m_EditorClassIdentifier: 15 | m_font: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 16 | m_fontSize: 14 17 | m_rowHeight: 30 18 | m_rowSpacing: 8 19 | m_windowColor: {r: 0.9338235, g: 0.9338235, b: 0.9338235, a: 1} 20 | m_filesListColor: {r: 1, g: 1, b: 1, a: 1} 21 | m_filesVerticalSeparatorColor: {r: 0.6397059, g: 0.6397059, b: 0.6397059, a: 1} 22 | m_titleBackgroundColor: {r: 0.30882353, g: 0.30882353, b: 0.30882353, a: 1} 23 | m_titleTextColor: {r: 1, g: 1, b: 1, a: 1} 24 | m_windowResizeGizmoColor: {r: 0.5294118, g: 0.5294118, b: 0.5294118, a: 1} 25 | m_headerButtonsColor: {r: 1, g: 1, b: 1, a: 1} 26 | m_windowResizeGizmo: {fileID: 21300000, guid: 285f1e681b119ce48ae469448241360b, 27 | type: 3} 28 | m_headerBackButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 29 | m_headerForwardButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, 30 | type: 3} 31 | m_headerUpButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 32 | m_headerContextMenuButton: {fileID: 21300000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0, 33 | type: 3} 34 | m_inputFieldNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 1} 35 | m_inputFieldInvalidBackgroundColor: {r: 1, g: 0.39215687, b: 0.39215687, a: 1} 36 | m_inputFieldTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 37 | m_inputFieldPlaceholderTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 38 | a: 0.5} 39 | m_inputFieldSelectedTextColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} 40 | m_inputFieldCaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 41 | m_inputFieldBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, 42 | type: 3} 43 | m_buttonColor: {r: 1, g: 1, b: 1, a: 1} 44 | m_buttonTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 45 | m_buttonBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3} 46 | m_dropdownColor: {r: 1, g: 1, b: 1, a: 1} 47 | m_dropdownTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 48 | m_dropdownArrowColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 49 | m_dropdownCheckmarkColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 50 | m_dropdownBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, 51 | type: 3} 52 | m_dropdownArrow: {fileID: 21300000, guid: f73f38102c749484bbd884d4d8d87440, type: 3} 53 | m_dropdownCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, 54 | type: 3} 55 | m_toggleColor: {r: 1, g: 1, b: 1, a: 1} 56 | m_toggleTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 57 | m_toggleCheckmarkColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 58 | m_toggleBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, type: 3} 59 | m_toggleCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3} 60 | m_scrollbarBackgroundColor: {r: 0.9191176, g: 0.9191176, b: 0.9191176, a: 1} 61 | m_scrollbarColor: {r: 0.7647059, g: 0.7647059, b: 0.7647059, a: 1} 62 | m_fileHeight: 30 63 | m_fileIconsPadding: 6 64 | m_fileNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 0} 65 | m_fileAlternatingBackgroundColor: {r: 1, g: 1, b: 1, a: 0} 66 | m_fileHoveredBackgroundColor: {r: 0.8980392, g: 0.9529412, b: 1, a: 1} 67 | m_fileSelectedBackgroundColor: {r: 0.7058824, g: 0.8666667, b: 1, a: 1} 68 | m_fileNormalTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 69 | m_fileSelectedTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 70 | m_folderIcon: {fileID: 21300000, guid: 27947666271b231439b4409a81cb5d59, type: 3} 71 | m_driveIcon: {fileID: 21300000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3} 72 | m_defaultFileIcon: {fileID: 21300000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3} 73 | m_filetypeIcons: 74 | - extension: .txt 75 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 76 | - extension: .doc 77 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 78 | - extension: .docx 79 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 80 | - extension: .xml 81 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 82 | - extension: .json 83 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 84 | - extension: .rtf 85 | icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 86 | - extension: .pdf 87 | icon: {fileID: 21300000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3} 88 | - extension: .jpg 89 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 90 | - extension: .jpeg 91 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 92 | - extension: .png 93 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 94 | - extension: .gif 95 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 96 | - extension: .bmp 97 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 98 | - extension: .psd 99 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 100 | - extension: .tif 101 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 102 | - extension: .tiff 103 | icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 104 | - extension: .mp4 105 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 106 | - extension: .mkv 107 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 108 | - extension: .mov 109 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 110 | - extension: .avi 111 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 112 | - extension: .flv 113 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 114 | - extension: .webm 115 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 116 | - extension: .wmv 117 | icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 118 | - extension: .mp3 119 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 120 | - extension: .wav 121 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 122 | - extension: .aac 123 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 124 | - extension: .m4a 125 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 126 | - extension: .ogg 127 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 128 | - extension: .wma 129 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 130 | - extension: .flac 131 | icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 132 | - extension: .zip 133 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 134 | - extension: .rar 135 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 136 | - extension: .7z 137 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 138 | - extension: .gz 139 | icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 140 | - extension: .exe 141 | icon: {fileID: 21300000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3} 142 | m_fileMultiSelectionToggleOffIcon: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e, 143 | type: 3} 144 | m_fileMultiSelectionToggleOnIcon: {fileID: 21300000, guid: 30a2566f94f937b4998542121050e68b, 145 | type: 3} 146 | m_contextMenuBackgroundColor: {r: 0.955, g: 0.955, b: 0.955, a: 1} 147 | m_contextMenuTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 148 | m_contextMenuSeparatorColor: {r: 0.6397059, g: 0.6397059, b: 0.6397059, a: 1} 149 | m_popupPanelsBackgroundColor: {r: 0.955, g: 0.955, b: 0.955, a: 1} 150 | m_popupPanelsTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 151 | m_popupPanelsBackground: {fileID: 21300000, guid: b9c5fedc997f125448c4d8be2fc43bcd, 152 | type: 3} 153 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Skins/LightSkin.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 758becaa4751c514ab3abd821b4078bb 3 | timeCreated: 1634717905 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 651607359bdd10946a8eafc45e7d1445 3 | folderAsset: yes 4 | timeCreated: 1479476379 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/Checkmark.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/Checkmark.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4924b77159e651e4aaa9a22286725d94 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f73f38102c749484bbd884d4d8d87440 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01b10cc2da49f7442ba6525072e1f86a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: -3 33 | maxTextureSize: 64 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | - serializedVersion: 3 105 | buildTarget: Windows Store Apps 106 | maxTextureSize: 64 107 | resizeAlgorithm: 0 108 | textureFormat: -1 109 | textureCompression: 0 110 | compressionQuality: 50 111 | crunchedCompression: 0 112 | allowsAlphaSplitting: 0 113 | overridden: 0 114 | androidETC2FallbackOverride: 0 115 | forceMaximumCompressionQuality_BC6H_BC7: 1 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 5e97eb03825dee720800000000000000 123 | internalID: 0 124 | vertices: [] 125 | indices: 126 | edges: [] 127 | weights: [] 128 | secondaryTextures: [] 129 | nameFileIdTable: {} 130 | spritePackingTag: SimpleFileBrowserUI 131 | pSDRemoveMatte: 1 132 | pSDShowRemoveMatteOption: 1 133 | userData: 134 | assetBundleName: 135 | assetBundleVariant: 136 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1b4f73b07909c94393f4feccb24fec5 3 | folderAsset: yes 4 | timeCreated: 1634649107 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b2a773e413d3e84f8c7c757734af584 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 293ea6a99c4ba134cae49556942ee0ff 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89f87b95a0cf73b4484ab74fe3f9ea26 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81da6e5b6342f8f47a5a3a24221306c6 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1e1f7ef76f59f54bbde5162f2709794 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27947666271b231439b4409a81cb5d59 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93482309cf79cef4a9ed8464c560334b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The following sprites are taken from external sources and licensed under the CC0 License: 2 | 3 | - ArchiveIcon: https://www.pngrepo.com/svg/227623/zip 4 | - AudioFileIcon: https://www.pngrepo.com/svg/293355/music 5 | - DefaultFileIcon: https://www.pngrepo.com/svg/200084/file-sheet 6 | - DriveIcon: https://www.pngrepo.com/svg/152885/hard-drive-device 7 | - ExecutableIcon: Created from scratch 8 | - FolderIcon: https://www.pngrepo.com/svg/229838/folder 9 | - ImageFileIcon: https://www.pngrepo.com/svg/231128/picture-image 10 | - PdfFileIcon: https://www.pngrepo.com/svg/28209/pdf 11 | - TextFileIcon: https://www.pngrepo.com/svg/241790/file-document 12 | - VideoFileIcon: https://www.pngrepo.com/svg/79032/play-video -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99791c82b2c040241ae29b4408c8e02f 3 | timeCreated: 1563308858 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d06b8cf70dff2fe418249a6276f9ff70 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53a62df1d392a10498ec79719f8eef1f 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 64 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 64 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 64 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 130f660889a70c947bff4c8ba8a2c73e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6beaeac8de2af749a48581db778df3e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30a2566f94f937b4998542121050e68b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 1 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 1 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 1 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ResizeCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/ResizeCursor.png -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/ResizeCursor.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5edcf29b853ebee47bf2c39ef6b99934 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 1 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 0 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 7 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | cookieLightType: 0 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 2048 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 2048 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 1 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: 119 | pSDRemoveMatte: 0 120 | pSDShowRemoveMatteOption: 0 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 285f1e681b119ce48ae469448241360b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3eb0ab0fddc930a498bef8ce7e149ea0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f668f62689b67d242ad33ff665594344 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 5, y: 5, z: 5, w: 5} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ff773ea42aedd04c8bb96a1fe9a73b8 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 5, y: 5, z: 5, w: 5} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9c5fedc997f125448c4d8be2fc43bcd 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 5, y: 5, z: 5, w: 5} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90bee1ddeeef38a4f860f96b5510c136 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 5, y: 5, z: 5, w: 5} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasirkula/UnitySimpleFileBrowser/bce53b258059a5e6563e0be233f804a4f189649e/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c46fa192de46b04e8281f225bee0230 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 5 33 | maxTextureSize: 32 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 16 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 5, y: 5, z: 5, w: 6} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 32 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 32 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 0 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Android 94 | maxTextureSize: 32 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 0 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: [] 108 | physicsShape: [] 109 | bones: [] 110 | spriteID: 5e97eb03825dee720800000000000000 111 | internalID: 0 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | secondaryTextures: [] 117 | nameFileIdTable: {} 118 | spritePackingTag: SimpleFileBrowserUI 119 | pSDRemoveMatte: 1 120 | pSDShowRemoveMatteOption: 1 121 | userData: 122 | assetBundleName: 123 | assetBundleVariant: 124 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSpriteAtlas.spriteatlas: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!687078895 &4343727234628468602 4 | SpriteAtlas: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: SimpleFileBrowserSpriteAtlas 10 | m_EditorData: 11 | serializedVersion: 2 12 | textureSettings: 13 | serializedVersion: 2 14 | anisoLevel: 1 15 | compressionQuality: 50 16 | maxTextureSize: 2048 17 | textureCompression: 0 18 | filterMode: 1 19 | generateMipMaps: 0 20 | readable: 0 21 | crunchedCompression: 0 22 | sRGB: 1 23 | platformSettings: 24 | - serializedVersion: 3 25 | m_BuildTarget: DefaultTexturePlatform 26 | m_MaxTextureSize: 2048 27 | m_ResizeAlgorithm: 0 28 | m_TextureFormat: -1 29 | m_TextureCompression: 0 30 | m_CompressionQuality: 50 31 | m_CrunchedCompression: 0 32 | m_AllowsAlphaSplitting: 0 33 | m_Overridden: 0 34 | m_AndroidETC2FallbackOverride: 0 35 | m_ForceMaximumCompressionQuality_BC6H_BC7: 1 36 | packingSettings: 37 | serializedVersion: 2 38 | padding: 8 39 | blockOffset: 1 40 | allowAlphaSplitting: 0 41 | enableRotation: 0 42 | enableTightPacking: 0 43 | enableAlphaDilation: 0 44 | secondaryTextureSettings: {} 45 | variantMultiplier: 1 46 | packables: 47 | - {fileID: 2800000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 48 | - {fileID: 2800000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 49 | - {fileID: 2800000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3} 50 | - {fileID: 2800000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3} 51 | - {fileID: 2800000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3} 52 | - {fileID: 2800000, guid: 27947666271b231439b4409a81cb5d59, type: 3} 53 | - {fileID: 2800000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 54 | - {fileID: 2800000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3} 55 | - {fileID: 2800000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 56 | - {fileID: 2800000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 57 | - {fileID: 2800000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3} 58 | - {fileID: 2800000, guid: f73f38102c749484bbd884d4d8d87440, type: 3} 59 | - {fileID: 2800000, guid: 01b10cc2da49f7442ba6525072e1f86a, type: 3} 60 | - {fileID: 2800000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 61 | - {fileID: 2800000, guid: d6beaeac8de2af749a48581db778df3e, type: 3} 62 | - {fileID: 2800000, guid: 30a2566f94f937b4998542121050e68b, type: 3} 63 | - {fileID: 2800000, guid: 285f1e681b119ce48ae469448241360b, type: 3} 64 | - {fileID: 2800000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0, type: 3} 65 | - {fileID: 2800000, guid: f668f62689b67d242ad33ff665594344, type: 3} 66 | - {fileID: 2800000, guid: 6ff773ea42aedd04c8bb96a1fe9a73b8, type: 3} 67 | - {fileID: 2800000, guid: b9c5fedc997f125448c4d8be2fc43bcd, type: 3} 68 | - {fileID: 2800000, guid: 90bee1ddeeef38a4f860f96b5510c136, type: 3} 69 | - {fileID: 2800000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3} 70 | bindAsDefault: 1 71 | isAtlasV2: 0 72 | cachedData: {fileID: 0} 73 | m_MasterAtlas: {fileID: 0} 74 | m_PackedSprites: 75 | - {fileID: 21300000, guid: f73f38102c749484bbd884d4d8d87440, type: 3} 76 | - {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3} 77 | - {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3} 78 | - {fileID: 21300000, guid: 01b10cc2da49f7442ba6525072e1f86a, type: 3} 79 | - {fileID: 21300000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3} 80 | - {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, type: 3} 81 | - {fileID: 21300000, guid: 27947666271b231439b4409a81cb5d59, type: 3} 82 | - {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3} 83 | - {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3} 84 | - {fileID: 21300000, guid: 285f1e681b119ce48ae469448241360b, type: 3} 85 | - {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3} 86 | - {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3} 87 | - {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3} 88 | - {fileID: 21300000, guid: 6ff773ea42aedd04c8bb96a1fe9a73b8, type: 3} 89 | - {fileID: 21300000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3} 90 | - {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e, type: 3} 91 | - {fileID: 21300000, guid: b9c5fedc997f125448c4d8be2fc43bcd, type: 3} 92 | - {fileID: 21300000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3} 93 | - {fileID: 21300000, guid: 90bee1ddeeef38a4f860f96b5510c136, type: 3} 94 | - {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3} 95 | - {fileID: 21300000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0, type: 3} 96 | - {fileID: 21300000, guid: 30a2566f94f937b4998542121050e68b, type: 3} 97 | - {fileID: 21300000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3} 98 | m_PackedSpriteNamesToIndex: 99 | - DropdownArrow 100 | - Checkmark 101 | - VideoFileIcon 102 | - ErrorIcon 103 | - DefaultFileIcon 104 | - SimpleFileBrowserSlicedBackground1 105 | - FolderIcon 106 | - TextFileIcon 107 | - ForwardArrow 108 | - SimpleFileBrowserDrag 109 | - ImageFileIcon 110 | - SimpleFileBrowserSlicedBackground5 111 | - AudioFileIcon 112 | - SimpleFileBrowserSlicedBackground2 113 | - DriveIcon 114 | - MultiSelectionToggleOff 115 | - SimpleFileBrowserSlicedBackground3 116 | - PdfFileIcon 117 | - SimpleFileBrowserSlicedBackground4 118 | - ArchiveIcon 119 | - SimpleFileBrowserMoreOptions 120 | - MultiSelectionToggleOn 121 | - ExecutableIcon 122 | m_RenderDataMap: {} 123 | m_Tag: SimpleFileBrowserSpriteAtlas 124 | m_IsVariant: 0 125 | -------------------------------------------------------------------------------- /Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSpriteAtlas.spriteatlas.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1171c432c4306874fb9d5812093dcfac 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4343727234628468602 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.yasirkula.simplefilebrowser", 3 | "displayName": "Simple File Browser", 4 | "version": "1.7.4", 5 | "documentationUrl": "https://github.com/yasirkula/UnitySimpleFileBrowser", 6 | "changelogUrl": "https://github.com/yasirkula/UnitySimpleFileBrowser/releases", 7 | "licensesUrl": "https://github.com/yasirkula/UnitySimpleFileBrowser/blob/master/LICENSE.txt", 8 | "description": "This plugin helps you show save/load dialogs during gameplay with its uGUI based file browser." 9 | } 10 | -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67c5b913f413c8d419f87bd0d8aabd81 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | --------------------------------------------------------------------------------