313 Commits
1.4.0 ... 1.7

Author SHA1 Message Date
c16185e1de Remove unused music asset 2025-09-05 14:08:40 -07:00
e781b3138d Fix audio pitch 2025-09-05 14:08:34 -07:00
7f092dc977 Add a option for randomized music 2025-09-05 13:52:36 -07:00
5eee7e69f1 Fix berries never going off screen 2025-09-05 13:52:12 -07:00
6a40dfcbb4 Total berries leaderboard 2025-09-05 13:01:07 -07:00
1b9ed6770d Fixes with random berry and anti berry 2025-09-05 12:39:35 -07:00
251b518ac5 Fix legacy leaderboards not clearing objects when going to another leaderboard 2025-09-05 12:16:52 -07:00
952ec1cba3 1.7 2025-09-04 19:49:38 -07:00
ab5052781a Clamp all berries to screen when resizing window 2025-09-04 19:41:58 -07:00
36078293ae Fix issue with berries going off screen when using anti berry 2025-09-04 19:30:23 -07:00
0d754b9af9 Fix new berries not despawning on reset 2025-09-04 19:28:05 -07:00
2c091f444b Make audio get faster when speedy berry is active 2025-09-04 19:26:43 -07:00
7fdba6d071 Add the new berries to stats menu 2025-09-04 19:04:19 -07:00
e7f345d78f Forgot to remove this 2025-09-04 18:58:33 -07:00
fc25abc528 OnlyShow filter fix 2025-09-04 18:19:46 -07:00
2dcdafaf69 Improve icon marketplace download code and also add a Only Show dropdown filter 2025-09-04 17:47:26 -07:00
a836550206 Random Berry and Anti Berry, along with many asset changes 2025-09-04 17:25:56 -07:00
e4d95bbf3d Change anti berry texture 2025-09-04 16:58:14 -07:00
29af8817a7 Randomized music 2025-09-04 15:59:58 -07:00
3332c12711 Add rainbow image scripts 2025-09-04 15:47:40 -07:00
1910170ae7 Add sound tracks for the game 2025-09-04 15:45:05 -07:00
7bf47e897e Disable compression for audio 2025-09-04 15:44:48 -07:00
56d40a2b1d Swap wall berry for RandomBerry textures 2025-09-02 19:11:19 -07:00
51ca5ea736 Add AntiBerry and WallBerry assets 2025-09-02 18:21:40 -07:00
7d814e3b3c Make high score text highlighted 2025-09-02 18:21:24 -07:00
f270f55f1e Build Linux on Mac 2025-09-02 17:48:55 -07:00
fec42fb4e6 New KS path 2025-09-02 17:48:17 -07:00
91866a87fe Fix iOS (new appleid) and gitignore 2025-09-01 11:14:51 -07:00
a03c9a178f Fix edit ui on mobile weirdness 2025-08-31 09:23:29 -07:00
fc849318a2 Fix a bug 2025-08-31 09:09:07 -07:00
ad1e14b54c Reset options menu data when exiting download menu 2025-08-31 09:08:20 -07:00
862026e760 Reset button for options menu 2025-08-31 09:07:06 -07:00
f18a6fe7f9 Sort from Newest to oldest instead of Oldest to newest by default 2025-08-31 09:02:23 -07:00
8b60cb1798 Fixes to loading and account data loading 2025-08-30 23:17:06 -07:00
67ed1fe25e Makmake the icon purchase sound be used 2025-08-30 19:49:52 -07:00
a5f24db4c5 Use extended version of main menu music 2025-08-29 15:25:39 -07:00
1cdc2cb230 Update unity 2025-08-29 13:48:02 -07:00
015de48e34 Legacy leaderboards 2025-08-28 12:19:13 -07:00
3999f810a3 1.6.3 2025-08-27 22:31:59 -07:00
22c7e2f570 Improvements & fixing potential bugs 2025-08-27 22:29:55 -07:00
077f5c324c Forgot to add this 2025-08-27 22:11:50 -07:00
cf3c5388c5 Forgot to add sort by support 2025-08-27 22:02:29 -07:00
42c1d2d48c Fix a bug where you get stuck in options menu 2025-08-27 21:40:57 -07:00
d62ea4d09b Marketplace download options and refresh button 2025-08-27 21:31:55 -07:00
98782c8ce9 Fix slider text not disappearing when editing the UI 2025-08-27 20:42:35 -07:00
64836dbe4b Update readme 2025-08-27 19:50:34 -07:00
dec3995449 Readonly thing 2025-08-27 19:28:45 -07:00
f9231e568f Fix input for custom bird name 2025-08-27 00:39:50 -07:00
768e41017b 1.6.2 2025-08-26 19:03:49 -07:00
c4f3647809 Coin leaderboard 2025-08-26 19:03:46 -07:00
bc9d8693fb Fix version not being in savefile 2025-08-26 18:41:51 -07:00
048d6d4734 Fix poison berry being %5, now it's 12.5% 2025-08-26 17:53:13 -07:00
50a4701c37 Fix background color when using marketplace icon 2025-08-26 17:39:45 -07:00
8e41b26f63 Fix berry leaderboards 2025-08-26 16:11:41 -07:00
cba75b57a3 1.6.1 2025-08-26 14:44:51 -07:00
fbd2395d75 Make it so you don't have to pay to purchase/claim your own icon 2025-08-26 14:43:56 -07:00
3dfd25918c Make icon marketplace icons show up in chatroom and leaderboards 2025-08-26 14:29:10 -07:00
d6b5ed0462 Fix settings menu and pause sliders 2025-08-26 14:11:15 -07:00
996ea62161 Use a universally supported library for file picking 2025-08-26 14:10:55 -07:00
36b2b5cd36 Fix a stupid isssue since 1.4.0-beta 2025-08-25 23:25:34 -07:00
0e94830c0c Fix music slider label 2025-08-25 23:19:34 -07:00
608b471b81 Fix buttons being usable in edit ui on mobile 2025-08-25 22:47:54 -07:00
fef5b86927 Make mobile buttons draggable and fix some scaling potential problems with texts 2025-08-25 22:35:03 -07:00
47ba151c25 Fix fullscreen mode 2025-08-25 21:54:07 -07:00
b14ca2518b Text auto scaling in chatroom + fix previews for edit msg 2025-08-25 21:34:24 -07:00
7d475c0773 Fix license 2025-08-25 21:23:03 -07:00
d8baca3d25 Tweaks to chatroom 2025-08-25 21:21:40 -07:00
19a6941bc6 Fix width for texts in icon marketplace menu 2025-08-25 17:50:06 -07:00
cb6923b0b6 Fix toggles in settings 2025-08-25 17:07:19 -07:00
7d910d602e Fix maybe 2025-08-25 13:39:55 -07:00
ea9b393d7b Legacy save conversion [Untested but should work] 2025-08-25 13:30:48 -07:00
50eb3dc128 Fix the pos for exit button 2025-08-24 23:24:06 -07:00
b0f6d2bb3a More offset 2025-08-24 23:23:32 -07:00
ff1693cbf6 Redo social buttons 2025-08-24 23:23:21 -07:00
e8bd834c05 Finally remake texture for exit button 2025-08-24 23:18:54 -07:00
5b4d33634d Send and recieve entire savefile from server 2025-08-24 23:14:59 -07:00
eb968ce65e Fix silly bug 2025-08-24 22:26:54 -07:00
1c3096a4cd Use server response for message 2025-08-24 21:58:10 -07:00
9817635376 Replace X in icon marketplace upload section 2025-08-24 21:51:09 -07:00
04b0ee3201 Add reporting 2025-08-24 21:38:39 -07:00
ea42566556 Almost done with Chatroom Options 2025-08-24 19:31:51 -07:00
874a77eb62 Use updated version of rounded corners script 2025-08-24 16:29:42 -07:00
981170e785 Did not know it was offset by 2 pixels 2025-08-24 15:57:10 -07:00
b979ded215 Simplify that 2025-08-24 15:52:07 -07:00
ff7a5becb2 Convert chatroom response to use a custom type 2025-08-24 15:49:31 -07:00
d7a3f6dcb5 Start working on Chatroom Options Menu 2025-08-24 15:43:46 -07:00
b16aa75628 Fix chatroom weirdness on desktop 2025-08-24 15:23:10 -07:00
35e3ad3712 Fix restart button not being gray 2025-08-24 15:00:43 -07:00
c0e3105abb Improve texture quality on settings and sliders 2025-08-24 14:55:56 -07:00
d0f220264c Remove arrow textures 2025-08-24 14:55:44 -07:00
458e60de2f Completely remake mobile gameplayer buttons, and rever graphics renderer changes and just have linux on Vulkan instead 2025-08-24 14:21:35 -07:00
d3c898231f Build changes 2025-08-23 17:54:10 -07:00
b27be89351 WHY DOES THIS NEED TO CHANGE 2025-08-23 17:36:43 -07:00
2ea61246ad Bump version to 1.6 and rename android package to xyz.lncvrt.berrydash, and remove x86_64 support for android 2025-08-23 15:28:00 -07:00
888d30d6b3 Completely wipe savefile on logout 2025-08-23 14:58:47 -07:00
ddd582addb Remove data for when you login 2025-08-23 14:52:49 -07:00
29950dace9 Fix chatroom for mobile 2025-08-23 14:50:33 -07:00
62f4011341 Hover effect and make options button look better 2025-08-23 13:57:42 -07:00
1477b8e112 Show options button + background color per chat entry 2025-08-23 13:41:30 -07:00
b09ca19505 Bruh 2025-08-23 13:30:14 -07:00
12b458f732 Add options button to chatroom (not done) 2025-08-23 13:27:10 -07:00
b29b61a04f Update unity 2025-08-22 16:01:28 -07:00
230fdc5132 Re-add loading stuff that was removed temp 2025-08-20 19:36:13 -07:00
b912116539 Increment coins by 10 instead of 1 so getting coins is easier 2025-08-20 18:24:23 -07:00
3bd192e7ed Rename down button to be DownButton in inspector 2025-08-20 18:08:07 -07:00
cc5fef110f Down button to make going to latest message easier 2025-08-20 17:57:13 -07:00
46ebca303e Chatroom redesign 2025-08-20 17:31:08 -07:00
44c03d8a82 Update readme and remove comparison files 2025-08-20 14:59:35 -07:00
21e5a52f98 ANOTHER STUPID ISSUE 2025-08-20 14:18:58 -07:00
609a4bc014 Fix a stupid issue 2025-08-20 14:16:44 -07:00
6b3cbc809c Bruh 2025-08-20 14:13:34 -07:00
54b82937e5 Send marketplace & coin berry data to server (along with save) 2025-08-20 13:59:05 -07:00
aeadfc8cef Fix possible issues with requests 2025-08-20 13:52:22 -07:00
a11d375ec6 Oops 2025-08-20 13:26:35 -07:00
e38a37801b Add a custom key for if someone makes a mod of the game it won't clash with the main savefile 2025-08-20 13:25:18 -07:00
b9becd25a1 Unlink from unity cloud 2025-08-20 13:00:42 -07:00
72e6a6a731 Stats menu 2025-08-20 12:50:02 -07:00
aad7d5e1ea Preview the color when it's changed 2025-08-20 12:35:24 -07:00
4df226df89 Make marketplace icons show up in game 2025-08-20 12:24:48 -07:00
5895615e8d And also fix another issue because yes 2025-08-20 12:18:06 -07:00
676094457f Fix icons menu 2025-08-20 12:15:28 -07:00
583ac47e04 Should be done with making the icons menu work with marketplace 2025-08-19 22:23:24 -07:00
274a0ee972 Remove Twitter & Reddit from socials 2025-08-02 18:06:01 -07:00
1625576fb3 Redo all asset metadata 2025-08-02 17:59:47 -07:00
1ae58ca2d6 Add happybob icon 2025-07-30 01:24:47 -07:00
b40a3061f9 Get ready for icon marketplace selection in icons menu 2025-07-29 22:28:34 -07:00
8b04b4d552 Bazooka manager priority changes 2025-07-29 22:05:01 -07:00
2c543b6d98 Idk what I was doing 2025-07-29 21:30:43 -07:00
df76ee10d3 Format balance required on not enough coins popup 2025-07-29 21:18:44 -07:00
560dcf350e I did that wrong 2025-07-29 21:16:59 -07:00
99e4efcaf3 Coin Berry stuff 2025-07-29 21:12:21 -07:00
7d0bad955b Fixes to ensure menus dont break 2025-07-29 21:12:03 -07:00
4470db1708 Format with commas 2025-07-29 19:59:26 -07:00
0f414ab0ed Make X look better 2025-07-29 19:59:15 -07:00
37151a4996 Fix the marketplace not working in the game player
This took me 3 weeks to figure out, I hate everything
2025-07-29 19:36:43 -07:00
bae9ed9eac Remove a useless savefile entry 2025-07-16 22:09:23 -07:00
b997eb553e Add purchasing icons 2025-07-16 21:59:41 -07:00
90d5c2d8c2 Add more types, should be done for those I think 2025-07-16 21:31:18 -07:00
ce673da55b Add custom type for download icon, it will make my life easier when making this 2025-07-16 21:23:38 -07:00
414048e19f Idk what I was doing this is better 2025-07-16 21:14:52 -07:00
2b8e29b101 Fixes to download script 2025-07-16 21:11:37 -07:00
2c80fbdf2d Add balance text to download menu 2025-07-16 21:06:33 -07:00
553d05f269 Add coin berry to berry leaderboards 2025-07-16 19:43:39 -07:00
747e67dbdc Carlos 2025-07-15 22:42:53 -07:00
4bce440e31 Change copyright text 2025-07-15 12:10:46 -07:00
a3ee794647 Add coin sound effects 2025-07-15 00:38:23 -07:00
037bef7bcf Add copyright text 2025-07-15 00:34:47 -07:00
322995f1e1 Idek what I changed 2025-07-14 16:59:48 -07:00
47030a76a1 A bunch of tweaks 2025-07-14 16:55:26 -07:00
7d5f7ea7c6 Savefile change 2025-07-14 16:21:46 -07:00
83f11c7e6a Move status text on upload menu 2025-07-14 16:04:07 -07:00
55523be0a3 Fix input for bird name 2025-07-14 16:02:55 -07:00
7e1da4a1a6 Upload icon feature 2025-07-14 16:00:14 -07:00
60597456e9 Swap price & designer name places 2025-07-14 14:31:45 -07:00
166027526e Forgot again 2025-07-14 14:27:14 -07:00
d6fa7c7e17 Make back button consistant 2025-07-14 14:26:59 -07:00
121a1522ef Fix overlay issue 2025-07-14 14:01:06 -07:00
a412170630 Forgot to define this 2025-07-14 14:00:31 -07:00
d495ca8f3b Add back button 2025-07-14 13:59:58 -07:00
a642f92288 Improve markeplace scripts 2025-07-14 13:57:44 -07:00
fd32df4eb7 Set texture of bird in upload icon 2025-07-14 13:54:18 -07:00
8546d9a900 Add more to upload marketplace icon 2025-07-14 13:42:49 -07:00
6f65e46c1e Get further on icon marketplace I will work on it tmr 2025-07-13 22:30:58 -07:00
1c2889be13 Make this static 2025-07-13 22:25:24 -07:00
711077d611 Update inputsystem 2025-07-13 22:14:26 -07:00
d005345798 Add image util 2025-07-13 22:06:02 -07:00
8af34427e8 Bouncy Bouncy 2025-07-13 22:05:54 -07:00
ca0af09aac Check for username in send chatroom message 2025-07-13 12:01:55 -07:00
a915b2462a Make warnings disappear 2025-07-13 11:06:00 -07:00
6fed43351a Add library for file picker 2025-07-13 10:59:02 -07:00
a785db0a42 Add icon marketplace menu to build scene list 2025-07-13 10:44:01 -07:00
19aa264fc9 Resize if too big somehow 2025-07-13 10:43:46 -07:00
6caf0b24ff Start working on Icon Marketplace 2025-07-13 10:41:15 -07:00
87e76c0148 Change compression on some things 2025-07-13 10:36:38 -07:00
4496755eba Add a berry parent 2025-07-12 21:46:42 -07:00
8172372fa2 Fix messy code 2025-07-12 21:41:37 -07:00
86921e8a75 Add Coin Berry (doesn't do anything atm) 2025-07-12 21:31:11 -07:00
dd39e65fc9 Other account menu server rewrite changes 2025-07-12 21:13:51 -07:00
1e559ce97f Idk what this is 2025-07-12 20:19:58 -07:00
4274f5b205 Update chatroom script for server rewrite 2025-07-12 20:19:39 -07:00
87caca7722 Update unity 2025-07-12 19:25:57 -07:00
8bf10963d5 Update leaderboards script for server rewrite 2025-07-12 16:52:36 -07:00
70a0b0ea9a Fix again im stupid 2025-07-12 15:54:37 -07:00
d2dd22408a Fix account change username script 2025-07-12 15:47:33 -07:00
37f11aa7ae Update account change username script for server rewrite 2025-07-12 15:42:55 -07:00
6003ea3fb3 Fix beta version warning 2025-07-12 15:36:39 -07:00
78b4e5c7e8 Beta version warning 2025-07-12 15:35:47 -07:00
d245bb37c7 Update account change password script for server rewrite 2025-07-12 15:23:41 -07:00
3fd9b2d30c Fix account logged in panel using wrong status text updater 2025-07-12 15:23:07 -07:00
45d5abd622 Remove game crashing on encryption issue 2025-07-12 15:08:55 -07:00
95dfb4b1ea Fix save file issue 2025-07-12 15:00:52 -07:00
c35107cfc9 Make color panel UIs use one script instead of 3 2025-07-12 14:29:01 -07:00
2728738184 Rename BazookaSetting.cs to Types/SettingTypes.cs 2025-07-12 13:59:37 -07:00
fa4ba4e0e7 Fix menu music 2025-07-12 13:54:35 -07:00
ccc51bf99a Revamp color picker UI in setting and icons menu 2025-07-12 13:47:07 -07:00
36f65c3f5a Bazooka Manager is basically complete now (after 2+ weeks) and start working on server rewrite 2025-07-12 13:46:42 -07:00
599b0fa545 Log if there is no encryption keys 2025-07-08 22:11:02 -07:00
5e3be9293a Fix compile issues 2025-07-08 22:07:25 -07:00
47c7fc89e8 Fix latest version button not showing on scene reload 2025-07-06 16:37:26 -07:00
8c7210e33f Add ColorPickerUI script 2025-07-05 11:32:10 -07:00
4e95668675 Remove some webgl stuff
Browser support is being dropped
2025-07-01 22:53:58 -07:00
b1e479472f Format commas in attempt account 2025-07-01 22:52:34 -07:00
1f14ea0ca9 Add bazooka save file manager
Don't ask why the name is bazooka. I will bazooka you out of existance
if you ask.
2025-07-01 19:09:53 -07:00
1e459e5537 Fix the look of mobile buttons 2025-06-30 16:05:45 -07:00
825d6662ec Massive change 2025-06-30 16:01:46 -07:00
40556e5b20 Fix a null issue 2025-06-30 15:41:33 -07:00
663da562dd Update leaderboards menu 2025-06-30 15:35:22 -07:00
0c2483f249 Draggable UI improvements 2025-06-30 14:56:32 -07:00
2d5d4004b4 Fix the position of the alert 2025-06-30 14:47:34 -07:00
0347dac2d8 Tell the user why they can't send requests on self-built instance 2025-06-30 14:38:45 -07:00
68e61a9370 Update unity 2025-06-30 14:37:30 -07:00
d379143894 Improve slowberry texture 2025-06-27 12:06:36 -07:00
62c339f09a Fix being able to edit the ui when not paused 2025-06-25 13:36:12 -07:00
866661f32a Fix latest version button 2025-06-25 13:33:32 -07:00
9bb62c8736 Fix reset fps text pos 2025-06-25 01:01:52 -07:00
2aed4e416a Add draggable UI to game player 2025-06-25 00:58:26 -07:00
73822ebb94 1.5.2 2025-06-24 14:43:30 -07:00
7b7890aa8c Add new response from the server 2025-06-24 14:42:59 -07:00
24f983ecb1 Fix values clearing when you go to the account panel when logged out 2025-06-24 14:35:17 -07:00
d3ae8e56a5 Fix logout values 2025-06-24 14:28:59 -07:00
a968d6c28b Add overlay color customization 2025-06-24 14:16:02 -07:00
a5d37fdaf5 Menu music listens to volume slider now 2025-06-24 13:31:52 -07:00
c13dd8439d Add menu music 2025-06-24 13:21:50 -07:00
b657415e9a Encrypt WWWForm keys too 2025-06-24 00:53:12 -07:00
7ef6d153e1 Make it so the user has to be logged in to send a message 2025-06-24 00:51:14 -07:00
06e367966a This literally cannot happen 2025-06-24 00:45:58 -07:00
a8088d0964 Fix an issue with the requests adding up each time you send a message 2025-06-23 23:54:03 -07:00
d548663222 1.5.1 2025-06-23 23:11:45 -07:00
3056e38cf2 Chatroom menu! 2025-06-23 23:10:12 -07:00
bcc8a91015 Send bird color to servers and load it on leaderboards 2025-06-23 23:10:05 -07:00
3a80abd28c Leadebroards menu improvements 2025-06-23 20:15:17 -07:00
261d4a8985 Fix default values for color panels 2025-06-20 08:56:39 -07:00
d5e2601cb9 Make icon color customizable 2025-06-18 20:46:39 -07:00
96090090fa Add color to RGB text in settings menu 2025-06-18 20:35:31 -07:00
79a4a5e07b Idk why it was like that 2025-06-16 16:56:52 -07:00
1abe2ac064 Add background color setting 2025-06-16 14:42:25 -07:00
b37db5231e Fix status text again 2025-06-15 19:51:43 -07:00
09b18a07bf Tweaks 2025-06-15 19:38:53 -07:00
ec797297e0 Fix issue with refresh login 2025-06-15 19:12:57 -07:00
b48a826052 Fix leadrboard menu inconsistencies II 2025-06-15 18:39:20 -07:00
845e58f98f Fix leaderboards menu inconsistencies 2025-06-15 18:35:25 -07:00
f2b6d14312 Set new icon of game 2025-06-15 17:06:38 -07:00
e82a51b7ae Bump version 2025-06-15 16:51:44 -07:00
0b1edbe7d4 Overhaul leaderboards menu 2025-06-15 16:50:20 -07:00
c8fe25e85d Fix register menu error messages 2025-06-15 15:48:26 -07:00
c5e51b53dd Fix refresh login menu & login menu error messages 2025-06-15 15:44:46 -07:00
3ce13f5b1f Fix load account error messages 2025-06-15 15:36:55 -07:00
0f4744541c Fix save account error messages 2025-06-15 15:36:17 -07:00
30c07b45c8 Fix change username menu error messages 2025-06-15 15:34:50 -07:00
ef6f7039f1 Fix change password menu error messages 2025-06-15 15:31:57 -07:00
653f8b6f5a Add new messages to other endpoints 2025-06-15 15:25:08 -07:00
ae63408675 Load new stats on login 2025-06-15 14:16:37 -07:00
12d95097a2 Make sending data to the server easier & send new stats to the server (and load, not fully yet tho) 2025-06-15 14:14:40 -07:00
533bd53073 I missed one lol 2025-06-15 13:50:15 -07:00
ee8358a55e Chatroom websockets are hell so I'm delaying it 2025-06-15 13:48:57 -07:00
17c6b913a4 Fix an issue with freezing game 2025-06-12 13:23:52 -07:00
733bfbbe0a Fix an issue with freezing the game 2025-06-11 23:13:19 -07:00
ad02945757 Update unity 2025-06-11 22:06:41 -07:00
2e77a159c3 I can't be bothered to do a real solution 2025-06-11 15:54:13 -07:00
07e109eec3 Oh. 2025-06-11 14:39:52 -07:00
683988fc97 Remove dum shit 2025-06-11 14:20:35 -07:00
eff9f38068 Puppet is an idiot (Add IJKL support) 2025-06-11 14:18:28 -07:00
e5eaa1d973 Fix speedy berry jump height 2025-06-11 14:06:32 -07:00
d6fa5154f7 Add the up arrow texture for the berry 2025-06-11 13:47:04 -07:00
d16e9abed8 Slow berry texture tweaks 2025-06-11 12:53:08 -07:00
6c054cb7b2 Golden berry texture tweaks 2025-06-10 23:59:36 -07:00
01965a548a Speedberry texture tweaks 2025-06-10 23:57:03 -07:00
339d8afca3 Fix potential issue 2025-06-10 19:24:27 -07:00
b8efbe7e88 Add attempts and total attempts 2025-06-10 19:23:05 -07:00
4d5e653572 Encrypted server-side responses 2025-06-10 18:40:58 -07:00
ab302ef19c Speedy berry fixes 2025-06-10 17:57:30 -07:00
932d93fb3f oops 2025-06-10 17:47:16 -07:00
781a7bbebc Menu tweaks 2025-06-10 17:46:55 -07:00
f304f85e5c Tweaks to leaderboards menu 2025-06-10 17:44:32 -07:00
98c6af818a Remove web data caching (it doesn't work) 2025-06-10 17:26:07 -07:00
37fd63b4a4 Bruh 2025-06-10 17:14:13 -07:00
af26bef2ec Fix issue with socials setting 2025-06-10 17:13:01 -07:00
f50f70423b Add encryption to sent server data because happybob007 makes my life difficult 2025-06-10 17:02:01 -07:00
e932396c28 Add speedyberry + Update unity 2025-06-10 15:59:51 -07:00
627b822388 Shit. 2025-06-08 19:30:25 -07:00
2018030b00 Small optimization 2025-06-08 19:21:18 -07:00
28d824ccff Fix it not being gray on start 2025-06-08 19:18:15 -07:00
f93d18deb0 Make the respawn button gray if not at 1 score 2025-06-08 19:15:31 -07:00
cf7952cce1 Make it so you can't respawn if you don't have one score 2025-06-08 19:14:22 -07:00
00e3e57767 Move left and right arrows for mobile up a little 2025-06-08 18:05:29 -07:00
aec33fb729 Improve camera player clamping, track the total berries collected, and minify apks 2025-06-08 17:53:21 -07:00
f713e155d8 Rework the way account menu works 2025-06-08 09:35:27 -07:00
9b4b71ce9d Change icon of game (might stay, idk) 2025-06-08 09:06:11 -07:00
236f6fa0ec Merge pull request #4 from Thepuppetqueen57/main
Added support for down arrow and the s key for jumping
2025-06-08 08:58:31 -07:00
Thepuppetqueen57
421e265d26 Made it so you can point your controller joystick down or use the down button on the dpad to jump
Lncvrt wanted this so I aaahahah. Also I don't have a controller to test
this with so we will just have to hope it works.
2025-06-08 08:52:35 -07:00
Thepuppetqueen57
5d74621edb Added support for down arrow and the s key for jumping
The code could be formatted better so I might do that in a seperate pr
2025-06-08 08:43:28 -07:00
8f3ecfdab4 Add a setting to hide socials from main menu 2025-06-07 14:25:46 -07:00
95a37395a1 Oops lmao 2025-06-07 14:02:24 -07:00
4d26811340 iPhone / iPad build profile 2025-06-07 14:01:52 -07:00
140e4de466 Fix location for version text 2025-06-07 13:59:06 -07:00
1ed5050008 Add refresh login 2025-06-06 16:38:47 -07:00
46642d8c85 1 more 2025-06-06 15:48:00 -07:00
aa11b4d5ea Add possible error codes to the leaderboards menu 2025-06-06 15:26:28 -07:00
8c2ee42dbb Fix leaderboards request 2025-06-06 14:53:57 -07:00
4e5d6edc18 Fix leaderboards button not enabling after fetch (when failing) 2025-06-06 13:22:11 -07:00
12d2fc34d9 Better FPS Text screen support 2025-06-06 13:12:29 -07:00
e1b978eac3 Social icons + Better screen support 2025-06-06 12:30:31 -07:00
fc98158a81 Don't check for update on web 2025-06-06 00:06:26 -07:00
7548eebc5b Web changes 2025-06-06 00:03:00 -07:00
098ff4fb16 WebGL build files named as hashes & allow caching 2025-06-05 22:11:14 -07:00
2f29ab5406 Remove unity splash screen 2025-06-05 21:45:19 -07:00
02b515a8af 1.4.1 2025-06-05 21:34:31 -07:00
ca814f4dd7 That didn't need to be a variable 2025-06-05 21:34:15 -07:00
a69f4cc73d Optimize arrow finding code & add commas to scores 2025-06-05 21:31:48 -07:00
ccc6a5431c Show version if on the Browser 2025-06-05 21:31:25 -07:00
7bd76275d0 Add the hashtag back to the leaderboards menu 2025-06-05 18:35:33 -07:00
00141ae324 Fix input fields in accounts menu 2025-06-05 18:14:36 -07:00
3815040f47 Add "v" before version in latest version text 2025-06-05 17:49:33 -07:00
335 changed files with 86914 additions and 4362 deletions

4
.gitignore vendored
View File

@@ -82,4 +82,6 @@ crashlytics-build.properties
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
.DS_STORE

View File

@@ -66,5 +66,5 @@
"explorer.fileNesting.patterns": {
"*.sln": "*.csproj"
},
"dotnet.defaultSolution": "BerryDash-source.sln"
"dotnet.defaultSolution": "BerryDash-Src.sln"
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: dc198920b982b344ca7225d9cf15e881
guid: 45eb5e5096e3c282a94fd0eb7928a6ad
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 6440a5f3157375d469774ee0793ec07b
folderAsset: yes
timeCreated: 1479413187
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: ff366e107d0770a41a2afe8ad87ef708
folderAsset: yes
timeCreated: 1509396159
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,52 @@
#if UNITY_EDITOR || UNITY_ANDROID
using System;
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBCallbackHelper : MonoBehaviour
{
private bool autoDestroyWithCallback;
private Action mainThreadAction = null;
public static FBCallbackHelper Create( bool autoDestroyWithCallback )
{
FBCallbackHelper result = new GameObject( "FBCallbackHelper" ).AddComponent<FBCallbackHelper>();
result.autoDestroyWithCallback = autoDestroyWithCallback;
DontDestroyOnLoad( result.gameObject );
return result;
}
public void CallOnMainThread( Action function )
{
lock( this )
{
mainThreadAction += function;
}
}
private void Update()
{
if( mainThreadAction != null )
{
try
{
Action temp;
lock( this )
{
temp = mainThreadAction;
mainThreadAction = null;
}
temp();
}
finally
{
if( autoDestroyWithCallback )
Destroy( gameObject );
}
}
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 997bfc59716c24c41ad03bcbd7f8ef0a
timeCreated: 1570918076
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs
uploadId: 758381

View File

@@ -0,0 +1,24 @@
#if UNITY_EDITOR || UNITY_ANDROID
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBDirectoryReceiveCallbackAndroid : AndroidJavaProxy
{
private readonly FileBrowser.AndroidSAFDirectoryPickCallback callback;
private readonly FBCallbackHelper callbackHelper;
public FBDirectoryReceiveCallbackAndroid( FileBrowser.AndroidSAFDirectoryPickCallback callback ) : base( "com.yasirkula.unity.FileBrowserDirectoryReceiver" )
{
this.callback = callback;
callbackHelper = FBCallbackHelper.Create( true );
}
[UnityEngine.Scripting.Preserve]
public void OnDirectoryPicked( string rawUri, string name )
{
callbackHelper.CallOnMainThread( () => callback( rawUri, name ) );
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 8dec4dc5be16ca84e9c147627361671d
timeCreated: 1520199471
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs
uploadId: 758381

View File

@@ -0,0 +1,24 @@
#if UNITY_EDITOR || UNITY_ANDROID
using UnityEngine;
namespace SimpleFileBrowser
{
public class FBPermissionCallbackAndroid : AndroidJavaProxy
{
private readonly FileBrowser.PermissionCallback callback;
private readonly FBCallbackHelper callbackHelper;
public FBPermissionCallbackAndroid( FileBrowser.PermissionCallback callback ) : base( "com.yasirkula.unity.FileBrowserPermissionReceiver" )
{
this.callback = callback;
callbackHelper = FBCallbackHelper.Create( true );
}
[UnityEngine.Scripting.Preserve]
public void OnPermissionResult( int result )
{
callbackHelper.CallOnMainThread( () => callback( (FileBrowser.Permission) result ) );
}
}
}
#endif

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 2cd91db0ba676ef47af67e3597037d1a
timeCreated: 1520199471
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs
uploadId: 758381

View File

@@ -0,0 +1,40 @@
fileFormatVersion: 2
guid: cae0a78f915b13748ba09fd56bafb4c8
timeCreated: 1606638456
licenseType: Store
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Android: Android
second:
enabled: 1
settings: {}
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 53eaeb5abaee5aa4ca7f07beacb73c2e
folderAsset: yes
timeCreated: 1479489583
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,401 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1000010981689570
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224000013702633820}
- component: {fileID: 222000010857273394}
- component: {fileID: 4089076303554880505}
m_Layer: 5
m_Name: Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224000013702633820
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000010981689570}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 224000013952242090}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 19, y: 0}
m_SizeDelta: {x: -38, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222000010857273394
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000010981689570}
m_CullTransparentMesh: 1
--- !u!114 &4089076303554880505
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000010981689570}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Filename
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 10
m_fontSizeMax: 40
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 3
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 0
m_parseCtrlCharacters: 0
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1000011646011302
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224000013952242090}
- component: {fileID: 222000013410998874}
- component: {fileID: 114000012602770182}
- component: {fileID: 114000012265032802}
m_Layer: 5
m_Name: SimpleFileBrowserItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224000013952242090
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000011646011302}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 224000012393993334}
- {fileID: 224447975432582502}
- {fileID: 224000013702633820}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!222 &222000013410998874
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000011646011302}
m_CullTransparentMesh: 1
--- !u!114 &114000012602770182
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000011646011302}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 6ff773ea42aedd04c8bb96a1fe9a73b8, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &114000012265032802
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000011646011302}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b5f1b2825c50f7b4d9be146ab2137bff, type: 3}
m_Name:
m_EditorClassIdentifier:
background: {fileID: 114000012602770182}
icon: {fileID: 114807149938652920}
multiSelectionToggle: {fileID: 114000013208375990}
nameText: {fileID: 4089076303554880505}
--- !u!1 &1000013967986654
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224000012393993334}
- component: {fileID: 222000012809932278}
- component: {fileID: 114000013208375990}
m_Layer: 5
m_Name: MultiSelectionToggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &224000012393993334
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000013967986654}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 224000013952242090}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 18.99997, y: 0}
m_SizeDelta: {x: 30, y: -6}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222000012809932278
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000013967986654}
m_CullTransparentMesh: 1
--- !u!114 &114000013208375990
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1000013967986654}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1268973638054374
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 224447975432582502}
- component: {fileID: 222113778025760416}
- component: {fileID: 114807149938652920}
- component: {fileID: 114942441918357790}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &224447975432582502
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268973638054374}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 224000013952242090}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 19, y: 0}
m_SizeDelta: {x: 30, y: -6}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222113778025760416
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268973638054374}
m_CullTransparentMesh: 1
--- !u!114 &114807149938652920
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268973638054374}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &114942441918357790
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1268973638054374}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.1764706}
m_EffectDistance: {x: 0.75, y: -0.75}
m_UseGraphicAlpha: 1

View File

@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: c2db22c1e3cd2584fa0e9168745a4536
timeCreated: 1479415743
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab
uploadId: 758381

View File

@@ -0,0 +1,179 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &423326606346492666
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1000011646011302, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3}
propertyPath: m_Name
value: SimpleFileBrowserQuickLink
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_SizeDelta.y
value: 30
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224000013952242090, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 114000012265032802, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: c2db22c1e3cd2584fa0e9168745a4536, type: 3}
--- !u!114 &308519873171270658 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114807149938652920, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
m_PrefabInstance: {fileID: 423326606346492666}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &309331268969241084 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000012602770182, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
m_PrefabInstance: {fileID: 423326606346492666}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422345297158446428}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &422345297158446428 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1000011646011302, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
m_PrefabInstance: {fileID: 423326606346492666}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1505320505842670623
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422345297158446428}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1f277f5418eabf94cad94208055878af, type: 3}
m_Name:
m_EditorClassIdentifier:
background: {fileID: 309331268969241084}
icon: {fileID: 308519873171270658}
multiSelectionToggle: {fileID: 0}
nameText: {fileID: 4422715658905204995}
--- !u!114 &4422715658905204995 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4089076303554880505, guid: c2db22c1e3cd2584fa0e9168745a4536,
type: 3}
m_PrefabInstance: {fileID: 423326606346492666}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: c4e8ee7cea600bf4fb4498b4a47ae8f5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab
uploadId: 758381

View File

@@ -0,0 +1,6 @@
= Simple File Browser (v1.7.4) =
Documentation: https://github.com/yasirkula/UnitySimpleFileBrowser
FAQ: https://github.com/yasirkula/UnitySimpleFileBrowser#faq
Example code: https://github.com/yasirkula/UnitySimpleFileBrowser#example-code
E-mail: yasirkula@gmail.com

View File

@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 02a0a0f34932297429c157aca8b9a977
timeCreated: 1563308858
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/README.txt
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f4cd9780a618bad4b821ad3b1a68bacd
folderAsset: yes
timeCreated: 1479561120
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 9ea2606f8fddead46aabb7adb3d8d434
timeCreated: 1479415546
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: be37f3e38d135f94e9d78c79ef89d303
folderAsset: yes
timeCreated: 1479413886
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,73 @@
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
using UnityEngine.InputSystem.UI;
#endif
namespace SimpleFileBrowser
{
// Avoid multiple EventSystems in the scene by activating the embedded EventSystem only if one doesn't already exist in the scene
[DefaultExecutionOrder( 1000 )]
public class EventSystemHandler : MonoBehaviour
{
#pragma warning disable 0649
[SerializeField]
private GameObject embeddedEventSystem;
#pragma warning restore 0649
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
private void Awake()
{
StandaloneInputModule legacyInputModule = embeddedEventSystem.GetComponent<StandaloneInputModule>();
if( legacyInputModule )
{
DestroyImmediate( legacyInputModule );
embeddedEventSystem.AddComponent<InputSystemUIInputModule>();
}
}
#endif
private void OnEnable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
SceneManager.sceneLoaded += OnSceneLoaded;
SceneManager.sceneUnloaded -= OnSceneUnloaded;
SceneManager.sceneUnloaded += OnSceneUnloaded;
ActivateEventSystemIfNeeded();
}
private void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
SceneManager.sceneUnloaded -= OnSceneUnloaded;
DeactivateEventSystem();
}
private void OnSceneLoaded( Scene scene, LoadSceneMode mode )
{
DeactivateEventSystem();
ActivateEventSystemIfNeeded();
}
private void OnSceneUnloaded( Scene current )
{
// Deactivate the embedded EventSystem before changing scenes because the new scene might have its own EventSystem
DeactivateEventSystem();
}
private void ActivateEventSystemIfNeeded()
{
if( embeddedEventSystem && !EventSystem.current )
embeddedEventSystem.SetActive( true );
}
private void DeactivateEventSystem()
{
if( embeddedEventSystem )
embeddedEventSystem.SetActive( false );
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 0868341868a4a4641b4d272d2fc5f538
timeCreated: 1658741613
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/EventSystemHandler.cs
uploadId: 758381

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: f51dc09bf9e35804ba0f5e76c527025e
timeCreated: 1479416382
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs
uploadId: 758381

View File

@@ -0,0 +1,72 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
using UnityEngine.InputSystem;
#endif
namespace SimpleFileBrowser
{
public class FileBrowserAccessRestrictedPanel : MonoBehaviour
{
#pragma warning disable 0649
[SerializeField]
private HorizontalLayoutGroup contentLayoutGroup;
[SerializeField]
private TextMeshProUGUI messageLabel;
[SerializeField]
private Button okButton;
#pragma warning restore 0649
private void Awake()
{
okButton.onClick.AddListener( OKButtonClicked );
}
internal void Show()
{
gameObject.SetActive( true );
}
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
private void LateUpdate()
{
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Keyboard.current != null )
#endif
{
// Handle keyboard shortcuts
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Keyboard.current[Key.Enter].wasPressedThisFrame || Keyboard.current[Key.NumpadEnter].wasPressedThisFrame || Keyboard.current[Key.Escape].wasPressedThisFrame )
#else
if( Input.GetKeyDown( KeyCode.Return ) || Input.GetKeyDown( KeyCode.KeypadEnter ) || Input.GetKeyDown( KeyCode.Escape ) )
#endif
OKButtonClicked();
}
}
#endif
internal void RefreshSkin( UISkin skin )
{
contentLayoutGroup.padding.bottom = 22 + (int) ( skin.RowSpacing + skin.RowHeight );
Image background = GetComponentInChildren<Image>();
background.color = skin.PopupPanelsBackgroundColor;
background.sprite = skin.PopupPanelsBackground;
RectTransform buttonsParent = (RectTransform) okButton.transform.parent;
buttonsParent.sizeDelta = new Vector2( buttonsParent.sizeDelta.x, skin.RowHeight );
skin.ApplyTo( okButton );
skin.ApplyTo( messageLabel, skin.PopupPanelsTextColor );
}
private void OKButtonClicked()
{
gameObject.SetActive( false );
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 85ea21be7cacb484cb6db0d183d3b2a8
timeCreated: 1603800894
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserAccessRestrictedPanel.cs
uploadId: 758381

View File

@@ -0,0 +1,157 @@
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace SimpleFileBrowser
{
public class FileBrowserContextMenu : MonoBehaviour
{
#pragma warning disable 0649
[SerializeField]
private FileBrowser fileBrowser;
[SerializeField]
private RectTransform rectTransform;
[SerializeField]
private Button selectAllButton;
[SerializeField]
private Button deselectAllButton;
[SerializeField]
private Button createFolderButton;
[SerializeField]
private Button deleteButton;
[SerializeField]
private Button renameButton;
[SerializeField]
private GameObject selectAllButtonSeparator;
[SerializeField]
private LayoutElement[] allButtonLayoutElements;
[SerializeField]
private TextMeshProUGUI[] allButtonTexts;
[SerializeField]
private Image[] allButtonSeparators;
[SerializeField]
private float minDistanceToEdges = 10f;
#pragma warning restore 0649
private void Awake()
{
selectAllButton.onClick.AddListener( OnSelectAllButtonClicked );
deselectAllButton.onClick.AddListener( OnDeselectAllButtonClicked );
createFolderButton.onClick.AddListener( OnCreateFolderButtonClicked );
deleteButton.onClick.AddListener( OnDeleteButtonClicked );
renameButton.onClick.AddListener( OnRenameButtonClicked );
}
internal void Show( bool selectAllButtonVisible, bool deselectAllButtonVisible, bool deleteButtonVisible, bool renameButtonVisible, Vector2 position, bool isMoreOptionsMenu )
{
selectAllButton.gameObject.SetActive( selectAllButtonVisible );
deselectAllButton.gameObject.SetActive( deselectAllButtonVisible );
deleteButton.gameObject.SetActive( deleteButtonVisible );
renameButton.gameObject.SetActive( renameButtonVisible );
selectAllButtonSeparator.SetActive( !deselectAllButtonVisible );
rectTransform.anchoredPosition = position;
gameObject.SetActive( true );
if( isMoreOptionsMenu )
rectTransform.pivot = Vector2.one;
else
{
// Find the optimal pivot value
LayoutRebuilder.ForceRebuildLayoutImmediate( rectTransform );
Vector2 size = rectTransform.sizeDelta;
Vector2 canvasSize = fileBrowser.rectTransform.sizeDelta;
// Take canvas' Pivot into consideration
Vector2 positionOffset = canvasSize;
positionOffset.Scale( fileBrowser.rectTransform.pivot );
position += positionOffset;
// Try bottom-right corner first
Vector2 cornerPos = position + new Vector2( size.x + minDistanceToEdges, -size.y - minDistanceToEdges );
if( cornerPos.x <= canvasSize.x && cornerPos.y >= 0f )
rectTransform.pivot = new Vector2( 0f, 1f );
else
{
// Try bottom-left corner
cornerPos = position - new Vector2( size.x + minDistanceToEdges, size.y + minDistanceToEdges );
if( cornerPos.x >= 0f && cornerPos.y >= 0f )
rectTransform.pivot = Vector2.one;
else
{
// Try top-right corner
cornerPos = position + new Vector2( size.x + minDistanceToEdges, size.y + minDistanceToEdges );
if( cornerPos.x <= canvasSize.x && cornerPos.y <= canvasSize.y )
rectTransform.pivot = Vector2.zero;
else
{
// Use top-left corner
rectTransform.pivot = new Vector2( 1f, 0f );
}
}
}
}
}
internal void Hide()
{
gameObject.SetActive( false );
}
internal void RefreshSkin( UISkin skin )
{
rectTransform.GetComponent<Image>().color = skin.ContextMenuBackgroundColor;
deselectAllButton.image.color = skin.ContextMenuBackgroundColor;
selectAllButton.image.color = skin.ContextMenuBackgroundColor;
createFolderButton.image.color = skin.ContextMenuBackgroundColor;
deleteButton.image.color = skin.ContextMenuBackgroundColor;
renameButton.image.color = skin.ContextMenuBackgroundColor;
for( int i = 0; i < allButtonLayoutElements.Length; i++ )
allButtonLayoutElements[i].preferredHeight = skin.RowHeight + 1;
for( int i = 0; i < allButtonTexts.Length; i++ )
skin.ApplyTo( allButtonTexts[i], skin.ContextMenuTextColor );
for( int i = 0; i < allButtonSeparators.Length; i++ )
allButtonSeparators[i].color = skin.ContextMenuSeparatorColor;
}
private void OnSelectAllButtonClicked()
{
Hide();
fileBrowser.SelectAllFiles();
}
private void OnDeselectAllButtonClicked()
{
Hide();
fileBrowser.DeselectAllFiles();
}
private void OnCreateFolderButtonClicked()
{
Hide();
fileBrowser.CreateNewFolder();
}
private void OnDeleteButtonClicked()
{
Hide();
fileBrowser.DeleteSelectedFiles();
}
private void OnRenameButtonClicked()
{
Hide();
fileBrowser.RenameSelectedFile();
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 0d5261bc2717e6143961d30ccb76fb66
timeCreated: 1603793977
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs
uploadId: 758381

View File

@@ -0,0 +1,61 @@
using UnityEngine;
using UnityEngine.EventSystems;
namespace SimpleFileBrowser
{
public class FileBrowserCursorHandler : MonoBehaviour
#if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS )
, IPointerEnterHandler, IPointerExitHandler, IBeginDragHandler, IEndDragHandler
#endif
{
#if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS )
#pragma warning disable 0649
[SerializeField]
private Texture2D resizeCursor;
#pragma warning restore 0649
private bool isHovering;
private bool isResizing;
void IPointerEnterHandler.OnPointerEnter( PointerEventData eventData )
{
isHovering = true;
if( !eventData.dragging )
ShowResizeCursor();
}
void IPointerExitHandler.OnPointerExit( PointerEventData eventData )
{
isHovering = false;
if( !isResizing )
ShowDefaultCursor();
}
void IBeginDragHandler.OnBeginDrag( PointerEventData eventData )
{
isResizing = true;
ShowResizeCursor();
}
void IEndDragHandler.OnEndDrag( PointerEventData eventData )
{
isResizing = false;
if( !isHovering )
ShowDefaultCursor();
}
private void ShowDefaultCursor()
{
Cursor.SetCursor( null, Vector2.zero, CursorMode.Auto );
}
private void ShowResizeCursor()
{
Cursor.SetCursor( resizeCursor, new Vector2( resizeCursor.width * 0.5f, resizeCursor.height * 0.5f ), CursorMode.Auto );
}
#endif
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 759524cf7ef37f244bb00cd9724f0349
timeCreated: 1603745549
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs
uploadId: 758381

View File

@@ -0,0 +1,175 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
using UnityEngine.InputSystem;
#endif
namespace SimpleFileBrowser
{
public class FileBrowserFileOperationConfirmationPanel : MonoBehaviour
{
public enum OperationType { Delete = 0, Overwrite = 1 };
public delegate void OnOperationConfirmed();
#pragma warning disable 0649
[SerializeField]
private VerticalLayoutGroup contentLayoutGroup;
[SerializeField]
private TextMeshProUGUI[] titleLabels;
[SerializeField]
private GameObject[] targetItems;
[SerializeField]
private Image[] targetItemIcons;
[SerializeField]
private TextMeshProUGUI[] targetItemNames;
[SerializeField]
private GameObject targetItemsRest;
[SerializeField]
private TextMeshProUGUI targetItemsRestLabel;
[SerializeField]
private Button yesButton;
[SerializeField]
private Button noButton;
[SerializeField]
private float narrowScreenWidth = 380f;
#pragma warning restore 0649
private OnOperationConfirmed onOperationConfirmed;
private void Awake()
{
yesButton.onClick.AddListener( OnYesButtonClicked );
noButton.onClick.AddListener( OnNoButtonClicked );
}
internal void Show( FileBrowser fileBrowser, List<FileSystemEntry> items, OperationType operationType, OnOperationConfirmed onOperationConfirmed )
{
Show( fileBrowser, items, null, operationType, onOperationConfirmed );
}
internal void Show( FileBrowser fileBrowser, List<FileSystemEntry> items, List<int> selectedItemIndices, OperationType operationType, OnOperationConfirmed onOperationConfirmed )
{
this.onOperationConfirmed = onOperationConfirmed;
int itemCount = ( selectedItemIndices != null ) ? selectedItemIndices.Count : items.Count;
for( int i = 0; i < titleLabels.Length; i++ )
titleLabels[i].gameObject.SetActive( (int) operationType == i );
for( int i = 0; i < targetItems.Length; i++ )
targetItems[i].SetActive( i < itemCount );
for( int i = 0; i < targetItems.Length && i < itemCount; i++ )
{
FileSystemEntry item = items[( selectedItemIndices != null ) ? selectedItemIndices[i] : i];
targetItemIcons[i].sprite = fileBrowser.GetIconForFileEntry( item );
targetItemNames[i].text = item.Name;
}
if( itemCount > targetItems.Length )
{
targetItemsRestLabel.text = string.Concat( "...and ", ( itemCount - targetItems.Length ).ToString(), " other" );
targetItemsRest.SetActive( true );
}
else
targetItemsRest.SetActive( false );
gameObject.SetActive( true );
}
// Handles responsive user interface
internal void OnCanvasDimensionsChanged( Vector2 size )
{
if( size.x >= narrowScreenWidth )
{
( yesButton.transform as RectTransform ).anchorMin = new Vector2( 0.5f, 0f );
( yesButton.transform as RectTransform ).anchorMax = new Vector2( 0.75f, 1f );
( noButton.transform as RectTransform ).anchorMin = new Vector2( 0.75f, 0f );
}
else
{
( yesButton.transform as RectTransform ).anchorMin = Vector2.zero;
( yesButton.transform as RectTransform ).anchorMax = new Vector2( 0.5f, 1f );
( noButton.transform as RectTransform ).anchorMin = new Vector2( 0.5f, 0f );
}
}
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
private void LateUpdate()
{
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Keyboard.current != null )
#endif
{
// Handle keyboard shortcuts
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Keyboard.current[Key.Enter].wasPressedThisFrame || Keyboard.current[Key.NumpadEnter].wasPressedThisFrame )
#else
if( Input.GetKeyDown( KeyCode.Return ) || Input.GetKeyDown( KeyCode.KeypadEnter ) )
#endif
OnYesButtonClicked();
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Keyboard.current[Key.Escape].wasPressedThisFrame )
#else
if( Input.GetKeyDown( KeyCode.Escape ) )
#endif
OnNoButtonClicked();
}
}
#endif
internal void RefreshSkin( UISkin skin )
{
contentLayoutGroup.spacing = skin.RowSpacing;
contentLayoutGroup.padding.bottom = 22 + (int) ( skin.RowSpacing + skin.RowHeight );
Image background = GetComponentInChildren<Image>();
background.color = skin.PopupPanelsBackgroundColor;
background.sprite = skin.PopupPanelsBackground;
RectTransform buttonsParent = yesButton.transform.parent as RectTransform;
buttonsParent.sizeDelta = new Vector2( buttonsParent.sizeDelta.x, skin.RowHeight );
skin.ApplyTo( yesButton );
skin.ApplyTo( noButton );
for( int i = 0; i < titleLabels.Length; i++ )
skin.ApplyTo( titleLabels[i], skin.PopupPanelsTextColor );
skin.ApplyTo( targetItemsRestLabel, skin.PopupPanelsTextColor );
for( int i = 0; i < targetItemNames.Length; i++ )
skin.ApplyTo( targetItemNames[i], skin.PopupPanelsTextColor );
for( int i = 0; i < targetItems.Length; i++ )
targetItems[i].GetComponent<LayoutElement>().preferredHeight = skin.FileHeight;
}
private void OnYesButtonClicked()
{
gameObject.SetActive( false );
if( onOperationConfirmed != null )
onOperationConfirmed();
}
private void OnNoButtonClicked()
{
gameObject.SetActive( false );
onOperationConfirmed = null;
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 524a683efed82084b9a9c4a3eff23b73
timeCreated: 1658958138
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserFileOperationConfirmationPanel.cs
uploadId: 758381

View File

@@ -0,0 +1,565 @@
using System.IO;
using UnityEngine;
namespace SimpleFileBrowser
{
public readonly struct FileSystemEntry
{
public readonly string Path;
public readonly string Name;
public readonly string Extension;
public readonly FileAttributes Attributes;
public readonly bool IsDirectory { get { return ( Attributes & FileAttributes.Directory ) == FileAttributes.Directory; } }
public FileSystemEntry( string path, string name, string extension, bool isDirectory )
{
Path = path;
Name = name;
Extension = extension;
Attributes = isDirectory ? FileAttributes.Directory : FileAttributes.Normal;
}
public FileSystemEntry( FileSystemInfo fileInfo, string extension )
{
Path = fileInfo.FullName;
Name = fileInfo.Name;
Extension = extension;
try
{
Attributes = fileInfo.Attributes;
}
catch
{
/// I've encountered UnauthorizedAccessException while accessing <see cref="FileSystemInfo.Attributes"/> on iOS.
Attributes = ( fileInfo is DirectoryInfo ) ? FileAttributes.Directory : 0;
}
}
}
public static class FileBrowserHelpers
{
#if !UNITY_EDITOR && UNITY_ANDROID
private static AndroidJavaClass m_ajc = null;
public static AndroidJavaClass AJC
{
get
{
if( m_ajc == null )
m_ajc = new AndroidJavaClass( "com.yasirkula.unity.FileBrowser" );
return m_ajc;
}
}
private static AndroidJavaObject m_context = null;
public static AndroidJavaObject Context
{
get
{
if( m_context == null )
{
using( AndroidJavaObject unityClass = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) )
{
m_context = unityClass.GetStatic<AndroidJavaObject>( "currentActivity" );
}
}
return m_context;
}
}
private static string m_temporaryFilePath = null;
private static string TemporaryFilePath
{
get
{
if( m_temporaryFilePath == null )
{
m_temporaryFilePath = Path.Combine( Application.temporaryCachePath, "tmpFile" );
Directory.CreateDirectory( Application.temporaryCachePath );
}
return m_temporaryFilePath;
}
}
// On Android 10+, filesystem can be accessed via Storage Access Framework only
private static bool? m_shouldUseSAF = null;
public static bool ShouldUseSAF
{
get
{
if( m_shouldUseSAF == null )
m_shouldUseSAF = AJC.CallStatic<bool>( "CheckSAF" );
return m_shouldUseSAF.Value;
}
}
public static bool ShouldUseSAFForPath( string path ) // true: path should be managed with AJC (native helper class for Storage Access Framework), false: path should be managed with System.IO
{
return ShouldUseSAF && ( string.IsNullOrEmpty( path ) || path[0] != '/' );
}
#endif
public static bool FileExists( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<bool>( "SAFEntryExists", Context, path, false );
#endif
return File.Exists( path );
}
public static bool DirectoryExists( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<bool>( "SAFEntryExists", Context, path, true );
else if( ShouldUseSAF ) // Directory.Exists returns true even for inaccessible directories on Android 10+, we need to check if the directory is accessible
{
try
{
Directory.GetFiles( path, "testtesttest" );
return true;
}
catch
{
return false;
}
}
#endif
return Directory.Exists( path );
}
public static bool IsDirectory( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<bool>( "SAFEntryDirectory", Context, path );
#endif
if( Directory.Exists( path ) )
return true;
if( File.Exists( path ) )
return false;
string extension = Path.GetExtension( path );
return extension == null || extension.Length <= 1; // extension includes '.'
}
public static bool IsPathDescendantOfAnother( string path, string parentFolderPath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<bool>( "IsSAFEntryChildOfAnother", Context, path, parentFolderPath );
#endif
path = Path.GetFullPath( path ).Replace( '\\', '/' );
parentFolderPath = Path.GetFullPath( parentFolderPath ).Replace( '\\', '/' );
if( path == parentFolderPath )
return false;
if( parentFolderPath[parentFolderPath.Length - 1] != '/' )
parentFolderPath += "/";
return path != parentFolderPath && path.StartsWith( parentFolderPath, System.StringComparison.OrdinalIgnoreCase );
}
public static string GetDirectoryName( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<string>( "GetParentDirectory", Context, path );
#endif
return Path.GetDirectoryName( path );
}
public static FileSystemEntry[] GetEntriesInDirectory( string path, bool extractOnlyLastSuffixFromExtensions )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
{
string resultRaw = AJC.CallStatic<string>( "OpenSAFFolder", Context, path );
int separatorIndex = resultRaw.IndexOf( "<>" );
if( separatorIndex <= 0 )
{
Debug.LogError( "Entry count does not exist" );
return null;
}
int entryCount = 0;
for( int i = 0; i < separatorIndex; i++ )
{
char ch = resultRaw[i];
if( ch < '0' && ch > '9' )
{
Debug.LogError( "Couldn't parse entry count" );
return null;
}
entryCount = entryCount * 10 + ( ch - '0' );
}
if( entryCount <= 0 )
return null;
FileSystemEntry[] result = new FileSystemEntry[entryCount];
for( int i = 0; i < entryCount; i++ )
{
separatorIndex += 2;
if( separatorIndex >= resultRaw.Length )
{
Debug.LogError( "Couldn't fetch directory attribute" );
return null;
}
bool isDirectory = resultRaw[separatorIndex] == 'd';
separatorIndex++;
int nextSeparatorIndex = resultRaw.IndexOf( "<>", separatorIndex );
if( nextSeparatorIndex <= 0 )
{
Debug.LogError( "Entry name is empty" );
return null;
}
string entryName = resultRaw.Substring( separatorIndex, nextSeparatorIndex - separatorIndex );
separatorIndex = nextSeparatorIndex + 2;
nextSeparatorIndex = resultRaw.IndexOf( "<>", separatorIndex );
if( nextSeparatorIndex <= 0 )
{
Debug.LogError( "Entry rawUri is empty" );
return null;
}
string rawUri = resultRaw.Substring( separatorIndex, nextSeparatorIndex - separatorIndex );
separatorIndex = nextSeparatorIndex;
result[i] = new FileSystemEntry( rawUri, entryName, isDirectory ? null : FileBrowser.GetExtensionFromFilename( entryName, extractOnlyLastSuffixFromExtensions ), isDirectory );
}
return result;
}
#endif
try
{
string[] files = Directory.GetFiles( path );
string[] subDirectories = Directory.GetDirectories( path );
FileSystemEntry[] result = new FileSystemEntry[files.Length + subDirectories.Length];
int index = 0;
for( int i = 0; i < files.Length; i++ )
{
try
{
FileInfo fileInfo = new FileInfo( files[i] );
result[index] = new FileSystemEntry( fileInfo, FileBrowser.GetExtensionFromFilename( fileInfo.Name, extractOnlyLastSuffixFromExtensions ) );
index++;
}
catch( System.Exception e )
{
Debug.LogException( e );
}
}
for( int i = 0; i < subDirectories.Length; i++ )
{
try
{
result[index] = new FileSystemEntry( new DirectoryInfo( subDirectories[i] ), string.Empty );
index++;
}
catch( System.Exception e )
{
Debug.LogException( e );
}
}
if( result.Length != index )
System.Array.Resize( ref result, index );
return result;
}
catch( System.UnauthorizedAccessException ) { }
catch( System.Exception e )
{
Debug.LogException( e );
}
return null;
}
public static string CreateFileInDirectory( string directoryPath, string filename )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( directoryPath ) )
return AJC.CallStatic<string>( "CreateSAFEntry", Context, directoryPath, false, filename );
#endif
string path = Path.Combine( directoryPath, filename );
using( File.Create( path ) ) { }
return path;
}
public static string CreateFolderInDirectory( string directoryPath, string folderName )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( directoryPath ) )
return AJC.CallStatic<string>( "CreateSAFEntry", Context, directoryPath, true, folderName );
#endif
string path = Path.Combine( directoryPath, folderName );
Directory.CreateDirectory( path );
return path;
}
public static void WriteBytesToFile( string targetPath, byte[] bytes )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( targetPath ) )
{
File.WriteAllBytes( TemporaryFilePath, bytes );
AJC.CallStatic( "WriteToSAFEntry", Context, targetPath, TemporaryFilePath, false );
File.Delete( TemporaryFilePath );
return;
}
#endif
File.WriteAllBytes( targetPath, bytes );
}
public static void WriteTextToFile( string targetPath, string text )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( targetPath ) )
{
File.WriteAllText( TemporaryFilePath, text );
AJC.CallStatic( "WriteToSAFEntry", Context, targetPath, TemporaryFilePath, false );
File.Delete( TemporaryFilePath );
return;
}
#endif
File.WriteAllText( targetPath, text );
}
public static void AppendBytesToFile( string targetPath, byte[] bytes )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( targetPath ) )
{
File.WriteAllBytes( TemporaryFilePath, bytes );
AJC.CallStatic( "WriteToSAFEntry", Context, targetPath, TemporaryFilePath, true );
File.Delete( TemporaryFilePath );
return;
}
#endif
using( var stream = new FileStream( targetPath, FileMode.Append, FileAccess.Write ) )
{
stream.Write( bytes, 0, bytes.Length );
}
}
public static void AppendTextToFile( string targetPath, string text )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( targetPath ) )
{
File.WriteAllText( TemporaryFilePath, text );
AJC.CallStatic( "WriteToSAFEntry", Context, targetPath, TemporaryFilePath, true );
File.Delete( TemporaryFilePath );
return;
}
#endif
File.AppendAllText( targetPath, text );
}
private static void AppendFileToFile( string targetPath, string sourceFileToAppend )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( targetPath ) )
{
AJC.CallStatic( "WriteToSAFEntry", Context, targetPath, sourceFileToAppend, true );
return;
}
#endif
using( Stream input = File.OpenRead( sourceFileToAppend ) )
using( Stream output = new FileStream( targetPath, FileMode.Append, FileAccess.Write ) )
{
byte[] buffer = new byte[4096];
int bytesRead;
while( ( bytesRead = input.Read( buffer, 0, buffer.Length ) ) > 0 )
output.Write( buffer, 0, bytesRead );
}
}
public static byte[] ReadBytesFromFile( string sourcePath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( sourcePath ) )
{
AJC.CallStatic( "ReadFromSAFEntry", Context, sourcePath, TemporaryFilePath );
byte[] result = File.ReadAllBytes( TemporaryFilePath );
File.Delete( TemporaryFilePath );
return result;
}
#endif
return File.ReadAllBytes( sourcePath );
}
public static string ReadTextFromFile( string sourcePath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( sourcePath ) )
{
AJC.CallStatic( "ReadFromSAFEntry", Context, sourcePath, TemporaryFilePath );
string result = File.ReadAllText( TemporaryFilePath );
File.Delete( TemporaryFilePath );
return result;
}
#endif
return File.ReadAllText( sourcePath );
}
public static void CopyFile( string sourcePath, string destinationPath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAF ) // No need to use ShouldUseSAFForPath because both SAF paths and raw file paths are handled on the native-side
{
AJC.CallStatic( "CopyFile", Context, sourcePath, destinationPath, false );
return;
}
#endif
File.Copy( sourcePath, destinationPath, true );
}
public static void CopyDirectory( string sourcePath, string destinationPath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAF ) // No need to use ShouldUseSAFForPath because both SAF paths and raw directory paths are handled on the native-side
{
AJC.CallStatic( "CopyDirectory", Context, sourcePath, destinationPath, false );
return;
}
#endif
CopyDirectoryRecursively( new DirectoryInfo( sourcePath ), destinationPath );
}
private static void CopyDirectoryRecursively( DirectoryInfo sourceDirectory, string destinationPath )
{
Directory.CreateDirectory( destinationPath );
FileInfo[] files = sourceDirectory.GetFiles();
for( int i = 0; i < files.Length; i++ )
files[i].CopyTo( Path.Combine( destinationPath, files[i].Name ), true );
DirectoryInfo[] subDirectories = sourceDirectory.GetDirectories();
for( int i = 0; i < subDirectories.Length; i++ )
CopyDirectoryRecursively( subDirectories[i], Path.Combine( destinationPath, subDirectories[i].Name ) );
}
public static void MoveFile( string sourcePath, string destinationPath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAF ) // No need to use ShouldUseSAFForPath because both SAF paths and raw file paths are handled on the native-side
{
AJC.CallStatic( "CopyFile", Context, sourcePath, destinationPath, true );
return;
}
#endif
File.Move( sourcePath, destinationPath );
}
public static void MoveDirectory( string sourcePath, string destinationPath )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAF ) // No need to use ShouldUseSAFForPath because both SAF paths and raw directory paths are handled on the native-side
{
AJC.CallStatic( "CopyDirectory", Context, sourcePath, destinationPath, true );
return;
}
#endif
Directory.Move( sourcePath, destinationPath );
}
public static string RenameFile( string path, string newName )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<string>( "RenameSAFEntry", Context, path, newName );
#endif
string newPath = Path.Combine( Path.GetDirectoryName( path ), newName );
File.Move( path, newPath );
return newPath;
}
public static string RenameDirectory( string path, string newName )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<string>( "RenameSAFEntry", Context, path, newName );
#endif
string newPath = Path.Combine( new DirectoryInfo( path ).Parent.FullName, newName );
Directory.Move( path, newPath );
return newPath;
}
public static void DeleteFile( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
{
AJC.CallStatic<bool>( "DeleteSAFEntry", Context, path );
return;
}
#endif
File.Delete( path );
}
public static void DeleteDirectory( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
{
AJC.CallStatic<bool>( "DeleteSAFEntry", Context, path );
return;
}
#endif
Directory.Delete( path, true );
}
public static string GetFilename( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<string>( "SAFEntryName", Context, path );
#endif
return Path.GetFileName( path );
}
public static long GetFilesize( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
if( ShouldUseSAFForPath( path ) )
return AJC.CallStatic<long>( "SAFEntrySize", Context, path );
#endif
return new FileInfo( path ).Length;
}
public static System.DateTime GetLastModifiedDate( string path )
{
#if !UNITY_EDITOR && UNITY_ANDROID
// Credit: https://stackoverflow.com/a/28504416/2373034
if( ShouldUseSAFForPath( path ) )
return new System.DateTime( 1970, 1, 1, 0, 0, 0 ).AddMilliseconds( AJC.CallStatic<long>( "SAFEntryLastModified", Context, path ) );
#endif
return new FileInfo( path ).LastWriteTime;
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 2370e7a82ec4087499ebf7efa149e9eb
timeCreated: 1570919647
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs
uploadId: 758381

View File

@@ -0,0 +1,239 @@
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace SimpleFileBrowser
{
public class FileBrowserItem : ListItem, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler
#if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS )
, IPointerEnterHandler, IPointerExitHandler
#endif
{
#region Constants
private const float DOUBLE_CLICK_TIME = 0.5f;
private const float TOGGLE_MULTI_SELECTION_HOLD_TIME = 0.5f;
#endregion
#region Variables
protected FileBrowser fileBrowser;
#pragma warning disable 0649
[SerializeField]
private Image background;
[SerializeField]
private Image icon;
public Image Icon { get { return icon; } }
[SerializeField]
private Image multiSelectionToggle;
[SerializeField]
private TextMeshProUGUI nameText;
#pragma warning restore 0649
#pragma warning disable 0414
private bool isSelected, isHidden;
#pragma warning restore 0414
private UISkin skin;
private float pressTime = Mathf.Infinity;
private float prevClickTime;
#endregion
#region Properties
private RectTransform m_transform;
public RectTransform TransformComponent
{
get
{
if( m_transform == null )
m_transform = (RectTransform) transform;
return m_transform;
}
}
public string Name { get { return nameText.text; } }
public bool IsDirectory { get; private set; }
#endregion
#region Initialization Functions
public void SetFileBrowser( FileBrowser fileBrowser, UISkin skin )
{
this.fileBrowser = fileBrowser;
OnSkinRefreshed( skin, false );
}
public void SetFile( Sprite icon, string name, bool isDirectory )
{
this.icon.sprite = icon;
nameText.text = name;
IsDirectory = isDirectory;
}
#endregion
#region Messages
private void Update()
{
if( fileBrowser.AllowMultiSelection && Time.realtimeSinceStartup - pressTime >= TOGGLE_MULTI_SELECTION_HOLD_TIME )
{
// Item is held for a while
pressTime = Mathf.Infinity;
fileBrowser.OnItemHeld( this );
}
}
#endregion
#region Pointer Events
public void OnPointerClick( PointerEventData eventData )
{
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0
if( eventData.button == PointerEventData.InputButton.Middle )
return;
else if( eventData.button == PointerEventData.InputButton.Right )
{
// First, select the item
if( !isSelected )
{
prevClickTime = 0f;
fileBrowser.OnItemSelected( this, false );
}
// Then, show the context menu
fileBrowser.OnContextMenuTriggered( eventData.position );
return;
}
#endif
if( Time.realtimeSinceStartup - prevClickTime < DOUBLE_CLICK_TIME )
{
prevClickTime = 0f;
fileBrowser.OnItemSelected( this, true );
}
else
{
prevClickTime = Time.realtimeSinceStartup;
fileBrowser.OnItemSelected( this, false );
}
}
public void OnPointerDown( PointerEventData eventData )
{
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0
if( eventData.button != PointerEventData.InputButton.Left )
return;
#endif
pressTime = Time.realtimeSinceStartup;
}
public void OnPointerUp( PointerEventData eventData )
{
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL || UNITY_WSA || UNITY_WSA_10_0
if( eventData.button != PointerEventData.InputButton.Left )
return;
#endif
if( pressTime != Mathf.Infinity )
pressTime = Mathf.Infinity;
else if( fileBrowser.MultiSelectionToggleSelectionMode )
{
// We have activated MultiSelectionToggleSelectionMode with this press, processing the click would result in
// deselecting this item since its selected state would be toggled
eventData.eligibleForClick = false;
}
}
#if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS )
public void OnPointerEnter( PointerEventData eventData )
{
if( !isSelected )
background.color = skin.FileHoveredBackgroundColor;
}
#endif
#if UNITY_EDITOR || ( !UNITY_ANDROID && !UNITY_IOS )
public void OnPointerExit( PointerEventData eventData )
{
if( !isSelected )
background.color = ( Position % 2 ) == 0 ? skin.FileNormalBackgroundColor : skin.FileAlternatingBackgroundColor;
}
#endif
#endregion
#region Other Events
public void SetSelected( bool isSelected )
{
this.isSelected = isSelected;
background.color = isSelected ? skin.FileSelectedBackgroundColor : ( ( Position % 2 ) == 0 ? skin.FileNormalBackgroundColor : skin.FileAlternatingBackgroundColor );
nameText.color = isSelected ? skin.FileSelectedTextColor : skin.FileNormalTextColor;
if( isHidden )
{
Color c = nameText.color;
c.a = 0.55f;
nameText.color = c;
}
if( multiSelectionToggle ) // Quick links don't have multi-selection toggle
{
// Don't show multi-selection toggle for folders in file selection mode
if( fileBrowser.MultiSelectionToggleSelectionMode && ( !IsDirectory || fileBrowser.PickerMode != FileBrowser.PickMode.Files ) )
{
if( !multiSelectionToggle.gameObject.activeSelf )
{
multiSelectionToggle.gameObject.SetActive( true );
Vector2 shiftAmount = new Vector2( multiSelectionToggle.rectTransform.sizeDelta.x, 0f );
icon.rectTransform.anchoredPosition += shiftAmount;
nameText.rectTransform.anchoredPosition += shiftAmount;
}
multiSelectionToggle.sprite = isSelected ? skin.FileMultiSelectionToggleOnIcon : skin.FileMultiSelectionToggleOffIcon;
}
else if( multiSelectionToggle.gameObject.activeSelf )
{
multiSelectionToggle.gameObject.SetActive( false );
Vector2 shiftAmount = new Vector2( -multiSelectionToggle.rectTransform.sizeDelta.x, 0f );
icon.rectTransform.anchoredPosition += shiftAmount;
nameText.rectTransform.anchoredPosition += shiftAmount;
// Clicking a file shortly after disabling MultiSelectionToggleSelectionMode does nothing, this workaround fixes that issue
prevClickTime = 0f;
}
}
}
public void SetHidden( bool isHidden )
{
this.isHidden = isHidden;
Color c = icon.color;
c.a = isHidden ? 0.5f : 1f;
icon.color = c;
c = nameText.color;
c.a = isHidden ? 0.55f : ( isSelected ? skin.FileSelectedTextColor.a : skin.FileNormalTextColor.a );
nameText.color = c;
}
public void OnSkinRefreshed( UISkin skin, bool isInitialized = true )
{
this.skin = skin;
TransformComponent.sizeDelta = new Vector2( TransformComponent.sizeDelta.x, skin.FileHeight );
skin.ApplyTo( nameText, isSelected ? skin.FileSelectedTextColor : skin.FileNormalTextColor );
icon.rectTransform.sizeDelta = new Vector2( icon.rectTransform.sizeDelta.x, -skin.FileIconsPadding );
if( isInitialized )
SetSelected( isSelected );
}
#endregion
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: b5f1b2825c50f7b4d9be146ab2137bff
timeCreated: 1479417850
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs
uploadId: 758381

View File

@@ -0,0 +1,105 @@
using UnityEngine;
using UnityEngine.EventSystems;
namespace SimpleFileBrowser
{
public class FileBrowserMovement : MonoBehaviour
{
#region Variables
#pragma warning disable 0649
private FileBrowser fileBrowser;
private RectTransform canvasTR;
private Camera canvasCam;
[SerializeField]
private RectTransform window;
[SerializeField]
private RecycledListView listView;
#pragma warning restore 0649
private Vector2 initialTouchPos = Vector2.zero;
private Vector2 initialAnchoredPos, initialSizeDelta;
#endregion
#region Initialization Functions
public void Initialize( FileBrowser fileBrowser )
{
this.fileBrowser = fileBrowser;
canvasTR = fileBrowser.GetComponent<RectTransform>();
}
#endregion
#region Pointer Events
public void OnDragStarted( BaseEventData data )
{
PointerEventData pointer = (PointerEventData) data;
canvasCam = pointer.pressEventCamera;
RectTransformUtility.ScreenPointToLocalPointInRectangle( window, pointer.pressPosition, canvasCam, out initialTouchPos );
}
public void OnDrag( BaseEventData data )
{
PointerEventData pointer = (PointerEventData) data;
Vector2 touchPos;
RectTransformUtility.ScreenPointToLocalPointInRectangle( window, pointer.position, canvasCam, out touchPos );
window.anchoredPosition += touchPos - initialTouchPos;
}
public void OnEndDrag( BaseEventData data )
{
fileBrowser.EnsureWindowIsWithinBounds();
}
public void OnResizeStarted( BaseEventData data )
{
PointerEventData pointer = (PointerEventData) data;
canvasCam = pointer.pressEventCamera;
initialAnchoredPos = window.anchoredPosition;
initialSizeDelta = window.sizeDelta;
RectTransformUtility.ScreenPointToLocalPointInRectangle( canvasTR, pointer.pressPosition, canvasCam, out initialTouchPos );
}
public void OnResize( BaseEventData data )
{
PointerEventData pointer = (PointerEventData) data;
Vector2 touchPos;
RectTransformUtility.ScreenPointToLocalPointInRectangle( canvasTR, pointer.position, canvasCam, out touchPos );
Vector2 delta = touchPos - initialTouchPos;
Vector2 newSize = initialSizeDelta + new Vector2( delta.x, -delta.y );
Vector2 canvasSize = canvasTR.sizeDelta;
if( newSize.x < fileBrowser.minWidth ) newSize.x = fileBrowser.minWidth;
if( newSize.y < fileBrowser.minHeight ) newSize.y = fileBrowser.minHeight;
if( newSize.x > canvasSize.x ) newSize.x = canvasSize.x;
if( newSize.y > canvasSize.y ) newSize.y = canvasSize.y;
newSize.x = (int) newSize.x;
newSize.y = (int) newSize.y;
delta = newSize - initialSizeDelta;
window.anchoredPosition = initialAnchoredPos + new Vector2( delta.x * 0.5f, delta.y * -0.5f );
if( window.sizeDelta != newSize )
{
window.sizeDelta = newSize;
fileBrowser.OnWindowDimensionsChanged( newSize );
}
listView.OnViewportDimensionsChanged();
}
public void OnEndResize( BaseEventData data )
{
fileBrowser.EnsureWindowIsWithinBounds();
}
#endregion
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 46d41d79fe7c3d44ca846b4f3d81a476
timeCreated: 1479486534
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs
uploadId: 758381

View File

@@ -0,0 +1,21 @@
using UnityEngine;
namespace SimpleFileBrowser
{
public class FileBrowserQuickLink : FileBrowserItem
{
#region Properties
private string m_targetPath;
public string TargetPath { get { return m_targetPath; } }
#endregion
#region Initialization Functions
public void SetQuickLink( Sprite icon, string name, string targetPath )
{
SetFile( icon, name, true );
m_targetPath = targetPath;
}
#endregion
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 1f277f5418eabf94cad94208055878af
timeCreated: 1479417850
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs
uploadId: 758381

View File

@@ -0,0 +1,85 @@
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
using UnityEngine.InputSystem;
#endif
namespace SimpleFileBrowser
{
public class FileBrowserRenamedItem : MonoBehaviour
{
public delegate void OnRenameCompleted( string filename );
#pragma warning disable 0649
[SerializeField]
private Image background;
[SerializeField]
private Image icon;
[SerializeField]
private TMP_InputField nameInputField;
public TMP_InputField InputField { get { return nameInputField; } }
#pragma warning restore 0649
private OnRenameCompleted onRenameCompleted;
private RectTransform m_transform;
public RectTransform TransformComponent
{
get
{
if( m_transform == null )
m_transform = (RectTransform) transform;
return m_transform;
}
}
private void Awake()
{
nameInputField.onEndEdit.AddListener( OnInputFieldEndEdit );
}
public void Show( string initialFilename, Color backgroundColor, Sprite icon, OnRenameCompleted onRenameCompleted )
{
background.color = backgroundColor;
this.icon.sprite = icon;
this.onRenameCompleted = onRenameCompleted;
transform.SetAsLastSibling();
gameObject.SetActive( true );
nameInputField.text = initialFilename;
nameInputField.ActivateInputField();
}
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
private void LateUpdate()
{
// Don't allow scrolling with mouse wheel while renaming a file or creating a folder
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER
if( Mouse.current != null && Mouse.current.scroll.ReadValue().y != 0f )
#else
if( Input.mouseScrollDelta.y != 0f )
#endif
nameInputField.DeactivateInputField();
}
#endif
private void OnInputFieldEndEdit( string filename )
{
gameObject.SetActive( false );
// If we don't deselect the InputField manually, FileBrowser's keyboard shortcuts
// no longer work until user clicks on a UI element and thus, deselects the InputField
if( EventSystem.current && !EventSystem.current.alreadySelecting && EventSystem.current.currentSelectedGameObject == nameInputField.gameObject )
EventSystem.current.SetSelectedGameObject( null );
if( onRenameCompleted != null )
onRenameCompleted( filename );
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: c7397ff7ae1ba4c47b6dfd3c84936584
timeCreated: 1603812277
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs
uploadId: 758381

View File

@@ -0,0 +1,19 @@
using UnityEngine;
using UnityEngine.UI;
namespace SimpleFileBrowser
{
// Credit: http://answers.unity.com/answers/1157876/view.html
[RequireComponent( typeof( CanvasRenderer ) )]
public class NonDrawingGraphic : Graphic
{
public override void SetMaterialDirty() { return; }
public override void SetVerticesDirty() { return; }
protected override void OnPopulateMesh( VertexHelper vh )
{
vh.Clear();
return;
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: b4fd8cdb8c068dd4bb48c415877496ba
timeCreated: 1603794018
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: dec11495f4b8cef49b7a3b4b06f094c3
folderAsset: yes
timeCreated: 1485706514
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,16 @@
namespace SimpleFileBrowser
{
public delegate void OnItemClickedHandler( ListItem item );
public interface IListViewAdapter
{
OnItemClickedHandler OnItemClicked { get; set; }
int Count { get; }
float ItemHeight { get; }
ListItem CreateItem();
void SetItemContent( ListItem item );
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 08e51b912648ace4784ebe20fc6cc961
timeCreated: 1485706575
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs
uploadId: 758381

View File

@@ -0,0 +1,24 @@
using UnityEngine;
namespace SimpleFileBrowser
{
[RequireComponent( typeof( RectTransform ) )]
public class ListItem : MonoBehaviour
{
public object Tag { get; set; }
public int Position { get; set; }
private IListViewAdapter adapter;
internal void SetAdapter( IListViewAdapter listView )
{
this.adapter = listView;
}
public void OnClick()
{
if( adapter.OnItemClicked != null )
adapter.OnItemClicked( this );
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 9c3e7249b2cb96446a7ccfbed51aab81
timeCreated: 1485706535
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs
uploadId: 758381

View File

@@ -0,0 +1,259 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace SimpleFileBrowser
{
[RequireComponent( typeof( ScrollRect ) )]
public class RecycledListView : MonoBehaviour
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
, IPointerClickHandler
#endif
{
#pragma warning disable 0649
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
[SerializeField]
private FileBrowser fileBrowser;
#endif
// Cached components
[SerializeField]
private RectTransform viewportTransform;
[SerializeField]
private RectTransform contentTransform;
#pragma warning restore 0649
private float itemHeight, _1OverItemHeight;
private float viewportHeight;
private readonly Dictionary<int, ListItem> items = new Dictionary<int, ListItem>();
private readonly Stack<ListItem> pooledItems = new Stack<ListItem>();
IListViewAdapter adapter = null;
// Current indices of items shown on screen
private int currentTopIndex = -1, currentBottomIndex = -1;
private void Start()
{
viewportHeight = viewportTransform.rect.height;
GetComponent<ScrollRect>().onValueChanged.AddListener( ( pos ) => UpdateItemsInTheList() );
}
public void SetAdapter( IListViewAdapter adapter )
{
this.adapter = adapter;
itemHeight = adapter.ItemHeight;
_1OverItemHeight = 1f / itemHeight;
}
public void OnSkinRefreshed()
{
if( currentTopIndex >= 0 )
{
DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex );
currentTopIndex = currentBottomIndex = -1;
}
itemHeight = adapter.ItemHeight;
_1OverItemHeight = 1f / itemHeight;
UpdateList();
}
// Update the list
public void UpdateList()
{
float newHeight = Mathf.Max( 1f, adapter.Count * itemHeight );
contentTransform.sizeDelta = new Vector2( 0f, newHeight );
viewportHeight = viewportTransform.rect.height;
UpdateItemsInTheList( true );
}
// Window is resized, update the list
public void OnViewportDimensionsChanged()
{
viewportHeight = viewportTransform.rect.height;
UpdateItemsInTheList();
}
// Calculate the indices of items to show
private void UpdateItemsInTheList( bool updateAllVisibleItems = false )
{
// If there is at least one item to show
if( adapter.Count > 0 )
{
float contentPos = contentTransform.anchoredPosition.y - 1f;
int newTopIndex = (int) ( contentPos * _1OverItemHeight );
int newBottomIndex = (int) ( ( contentPos + viewportHeight + 2f ) * _1OverItemHeight );
if( newTopIndex < 0 )
newTopIndex = 0;
if( newBottomIndex > adapter.Count - 1 )
newBottomIndex = adapter.Count - 1;
if( currentTopIndex == -1 )
{
// There are no active items
updateAllVisibleItems = true;
currentTopIndex = newTopIndex;
currentBottomIndex = newBottomIndex;
CreateItemsBetweenIndices( newTopIndex, newBottomIndex );
}
else
{
// There are some active items
if( newBottomIndex < currentTopIndex || newTopIndex > currentBottomIndex )
{
// If user scrolled a lot such that, none of the items are now within
// the bounds of the scroll view, pool all the previous items and create
// new items for the new list of visible entries
updateAllVisibleItems = true;
DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex );
CreateItemsBetweenIndices( newTopIndex, newBottomIndex );
}
else
{
// User did not scroll a lot such that, some items are are still within
// the bounds of the scroll view. Don't destroy them but update their content,
// if necessary
if( newTopIndex > currentTopIndex )
{
DestroyItemsBetweenIndices( currentTopIndex, newTopIndex - 1 );
}
if( newBottomIndex < currentBottomIndex )
{
DestroyItemsBetweenIndices( newBottomIndex + 1, currentBottomIndex );
}
if( newTopIndex < currentTopIndex )
{
CreateItemsBetweenIndices( newTopIndex, currentTopIndex - 1 );
// If it is not necessary to update all the items,
// then just update the newly created items. Otherwise,
// wait for the major update
if( !updateAllVisibleItems )
{
UpdateItemContentsBetweenIndices( newTopIndex, currentTopIndex - 1 );
}
}
if( newBottomIndex > currentBottomIndex )
{
CreateItemsBetweenIndices( currentBottomIndex + 1, newBottomIndex );
// If it is not necessary to update all the items,
// then just update the newly created items. Otherwise,
// wait for the major update
if( !updateAllVisibleItems )
{
UpdateItemContentsBetweenIndices( currentBottomIndex + 1, newBottomIndex );
}
}
}
currentTopIndex = newTopIndex;
currentBottomIndex = newBottomIndex;
}
if( updateAllVisibleItems )
{
// Update all the items
UpdateItemContentsBetweenIndices( currentTopIndex, currentBottomIndex );
}
}
else if( currentTopIndex != -1 )
{
// There is nothing to show but some items are still visible; pool them
DestroyItemsBetweenIndices( currentTopIndex, currentBottomIndex );
currentTopIndex = -1;
}
}
private void CreateItemsBetweenIndices( int topIndex, int bottomIndex )
{
for( int i = topIndex; i <= bottomIndex; i++ )
{
CreateItemAtIndex( i );
}
}
// Create (or unpool) an item
private void CreateItemAtIndex( int index )
{
ListItem item;
if( pooledItems.Count > 0 )
{
item = pooledItems.Pop();
item.gameObject.SetActive( true );
}
else
{
item = adapter.CreateItem();
item.SetAdapter( adapter );
}
// Reposition the item
( (RectTransform) item.transform ).anchoredPosition = new Vector2( 1f, -index * itemHeight );
// To access this item easily in the future, add it to the dictionary
items[index] = item;
}
private void DestroyItemsBetweenIndices( int topIndex, int bottomIndex )
{
for( int i = topIndex; i <= bottomIndex; i++ )
{
ListItem item = items[i];
item.gameObject.SetActive( false );
pooledItems.Push( item );
}
if( topIndex == currentTopIndex && bottomIndex == currentBottomIndex )
items.Clear();
else
{
for( int i = topIndex; i <= bottomIndex; i++ )
items.Remove( i );
}
}
private void UpdateItemContentsBetweenIndices( int topIndex, int bottomIndex )
{
for( int i = topIndex; i <= bottomIndex; i++ )
{
ListItem item = items[i];
item.Position = i;
adapter.SetItemContent( item );
}
}
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA || UNITY_WSA_10_0
// When free space inside ScrollRect is clicked:
// Left click: deselect selected file(s)
// Right click: show context menu
public void OnPointerClick( PointerEventData eventData )
{
if( eventData.button == PointerEventData.InputButton.Left )
fileBrowser.DeselectAllFiles();
else if( eventData.button == PointerEventData.InputButton.Right )
fileBrowser.OnContextMenuTriggered( eventData.position );
}
#endif
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 87ad67b4806678e40a492e337338760b
timeCreated: 1485620000
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs
uploadId: 758381

View File

@@ -0,0 +1,672 @@
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace SimpleFileBrowser
{
[Serializable]
public struct FiletypeIcon
{
public string extension;
public Sprite icon;
}
[CreateAssetMenu( fileName = "UI Skin", menuName = "yasirkula/SimpleFileBrowser/UI Skin", order = 111 )]
public class UISkin : ScriptableObject
{
private int m_version = 0;
public int Version { get { return m_version; } }
[ContextMenu( "Refresh UI" )]
private void Invalidate()
{
m_version = UnityEngine.Random.Range( int.MinValue / 2, int.MaxValue / 2 );
initializedFiletypeIcons = false;
}
#if UNITY_EDITOR
protected virtual void OnValidate()
{
// Refresh all UIs that use this skin
Invalidate();
}
#endif
#pragma warning disable 0649
[Header( "General" )]
[SerializeField]
private TMP_FontAsset m_font;
public TMP_FontAsset Font
{
get { return m_font; }
set { if( m_font != value ) { m_font = value; m_version++; } }
}
[SerializeField]
private int m_fontSize = 14;
public int FontSize
{
get { return m_fontSize; }
set { if( m_fontSize != value ) { m_fontSize = value; m_version++; } }
}
[SerializeField]
private float m_rowHeight = 30f;
public float RowHeight
{
get { return m_rowHeight; }
set { if( m_rowHeight != value ) { m_rowHeight = value; m_version++; } }
}
[SerializeField]
private float m_rowSpacing = 8f;
public float RowSpacing
{
get { return m_rowSpacing; }
set { if( m_rowSpacing != value ) { m_rowSpacing = value; m_version++; } }
}
[Header( "File Browser Window" )]
[SerializeField]
private Color m_windowColor = Color.grey;
public Color WindowColor
{
get { return m_windowColor; }
set { if( m_windowColor != value ) { m_windowColor = value; m_version++; } }
}
[SerializeField]
private Color m_filesListColor = Color.white;
public Color FilesListColor
{
get { return m_filesListColor; }
set { if( m_filesListColor != value ) { m_filesListColor = value; m_version++; } }
}
[SerializeField]
private Color m_filesVerticalSeparatorColor = Color.grey;
public Color FilesVerticalSeparatorColor
{
get { return m_filesVerticalSeparatorColor; }
set { if( m_filesVerticalSeparatorColor != value ) { m_filesVerticalSeparatorColor = value; m_version++; } }
}
[SerializeField]
private Color m_titleBackgroundColor = Color.black;
public Color TitleBackgroundColor
{
get { return m_titleBackgroundColor; }
set { if( m_titleBackgroundColor != value ) { m_titleBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_titleTextColor = Color.white;
public Color TitleTextColor
{
get { return m_titleTextColor; }
set { if( m_titleTextColor != value ) { m_titleTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_windowResizeGizmoColor = Color.black;
public Color WindowResizeGizmoColor
{
get { return m_windowResizeGizmoColor; }
set { if( m_windowResizeGizmoColor != value ) { m_windowResizeGizmoColor = value; m_version++; } }
}
[SerializeField]
private Color m_headerButtonsColor = Color.white;
public Color HeaderButtonsColor
{
get { return m_headerButtonsColor; }
set { if( m_headerButtonsColor != value ) { m_headerButtonsColor = value; m_version++; } }
}
[SerializeField]
private Sprite m_windowResizeGizmo;
public Sprite WindowResizeGizmo
{
get { return m_windowResizeGizmo; }
set { if( m_windowResizeGizmo != value ) { m_windowResizeGizmo = value; m_version++; } }
}
[SerializeField]
private Sprite m_headerBackButton;
public Sprite HeaderBackButton
{
get { return m_headerBackButton; }
set { if( m_headerBackButton != value ) { m_headerBackButton = value; m_version++; } }
}
[SerializeField]
private Sprite m_headerForwardButton;
public Sprite HeaderForwardButton
{
get { return m_headerForwardButton; }
set { if( m_headerForwardButton != value ) { m_headerForwardButton = value; m_version++; } }
}
[SerializeField]
private Sprite m_headerUpButton;
public Sprite HeaderUpButton
{
get { return m_headerUpButton; }
set { if( m_headerUpButton != value ) { m_headerUpButton = value; m_version++; } }
}
[SerializeField]
private Sprite m_headerContextMenuButton;
public Sprite HeaderContextMenuButton
{
get { return m_headerContextMenuButton; }
set { if( m_headerContextMenuButton != value ) { m_headerContextMenuButton = value; m_version++; } }
}
[Header( "Input Fields" )]
[SerializeField]
private Color m_inputFieldNormalBackgroundColor = Color.white;
public Color InputFieldNormalBackgroundColor
{
get { return m_inputFieldNormalBackgroundColor; }
set { if( m_inputFieldNormalBackgroundColor != value ) { m_inputFieldNormalBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_inputFieldInvalidBackgroundColor = Color.red;
public Color InputFieldInvalidBackgroundColor
{
get { return m_inputFieldInvalidBackgroundColor; }
set { if( m_inputFieldInvalidBackgroundColor != value ) { m_inputFieldInvalidBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_inputFieldTextColor = Color.black;
public Color InputFieldTextColor
{
get { return m_inputFieldTextColor; }
set { if( m_inputFieldTextColor != value ) { m_inputFieldTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_inputFieldPlaceholderTextColor = new Color( 0f, 0f, 0f, 0.5f );
public Color InputFieldPlaceholderTextColor
{
get { return m_inputFieldPlaceholderTextColor; }
set { if( m_inputFieldPlaceholderTextColor != value ) { m_inputFieldPlaceholderTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_inputFieldSelectedTextColor = Color.blue;
public Color InputFieldSelectedTextColor
{
get { return m_inputFieldSelectedTextColor; }
set { if( m_inputFieldSelectedTextColor != value ) { m_inputFieldSelectedTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_inputFieldCaretColor = Color.black;
public Color InputFieldCaretColor
{
get { return m_inputFieldCaretColor; }
set { if( m_inputFieldCaretColor != value ) { m_inputFieldCaretColor = value; m_version++; } }
}
[SerializeField]
private Sprite m_inputFieldBackground;
public Sprite InputFieldBackground
{
get { return m_inputFieldBackground; }
set { if( m_inputFieldBackground != value ) { m_inputFieldBackground = value; m_version++; } }
}
[Header( "Buttons" )]
[SerializeField]
private Color m_buttonColor = Color.white;
public Color ButtonColor
{
get { return m_buttonColor; }
set { if( m_buttonColor != value ) { m_buttonColor = value; m_version++; } }
}
[SerializeField]
private Color m_buttonTextColor = Color.black;
public Color ButtonTextColor
{
get { return m_buttonTextColor; }
set { if( m_buttonTextColor != value ) { m_buttonTextColor = value; m_version++; } }
}
[SerializeField]
private Sprite m_buttonBackground;
public Sprite ButtonBackground
{
get { return m_buttonBackground; }
set { if( m_buttonBackground != value ) { m_buttonBackground = value; m_version++; } }
}
[Header( "Dropdowns" )]
[SerializeField]
private Color m_dropdownColor = Color.white;
public Color DropdownColor
{
get { return m_dropdownColor; }
set { if( m_dropdownColor != value ) { m_dropdownColor = value; m_version++; } }
}
[SerializeField]
private Color m_dropdownTextColor = Color.black;
public Color DropdownTextColor
{
get { return m_dropdownTextColor; }
set { if( m_dropdownTextColor != value ) { m_dropdownTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_dropdownArrowColor = Color.black;
public Color DropdownArrowColor
{
get { return m_dropdownArrowColor; }
set { if( m_dropdownArrowColor != value ) { m_dropdownArrowColor = value; m_version++; } }
}
[SerializeField]
private Color m_dropdownCheckmarkColor = Color.black;
public Color DropdownCheckmarkColor
{
get { return m_dropdownCheckmarkColor; }
set { if( m_dropdownCheckmarkColor != value ) { m_dropdownCheckmarkColor = value; m_version++; } }
}
[SerializeField]
private Sprite m_dropdownBackground;
public Sprite DropdownBackground
{
get { return m_dropdownBackground; }
set { if( m_dropdownBackground != value ) { m_dropdownBackground = value; m_version++; } }
}
[SerializeField]
private Sprite m_dropdownArrow;
public Sprite DropdownArrow
{
get { return m_dropdownArrow; }
set { if( m_dropdownArrow != value ) { m_dropdownArrow = value; m_version++; } }
}
[SerializeField]
private Sprite m_dropdownCheckmark;
public Sprite DropdownCheckmark
{
get { return m_dropdownCheckmark; }
set { if( m_dropdownCheckmark != value ) { m_dropdownCheckmark = value; m_version++; } }
}
[Header( "Toggles" )]
[SerializeField]
private Color m_toggleColor = Color.white;
public Color ToggleColor
{
get { return m_toggleColor; }
set { if( m_toggleColor != value ) { m_toggleColor = value; m_version++; } }
}
[SerializeField]
private Color m_toggleTextColor = Color.black;
public Color ToggleTextColor
{
get { return m_toggleTextColor; }
set { if( m_toggleTextColor != value ) { m_toggleTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_toggleCheckmarkColor = Color.black;
public Color ToggleCheckmarkColor
{
get { return m_toggleCheckmarkColor; }
set { if( m_toggleCheckmarkColor != value ) { m_toggleCheckmarkColor = value; m_version++; } }
}
[SerializeField]
private Sprite m_toggleBackground;
public Sprite ToggleBackground
{
get { return m_toggleBackground; }
set { if( m_toggleBackground != value ) { m_toggleBackground = value; m_version++; } }
}
[SerializeField]
private Sprite m_toggleCheckmark;
public Sprite ToggleCheckmark
{
get { return m_toggleCheckmark; }
set { if( m_toggleCheckmark != value ) { m_toggleCheckmark = value; m_version++; } }
}
[Header( "Scrollbars" )]
[SerializeField]
private Color m_scrollbarBackgroundColor = Color.grey;
public Color ScrollbarBackgroundColor
{
get { return m_scrollbarBackgroundColor; }
set { if( m_scrollbarBackgroundColor != value ) { m_scrollbarBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_scrollbarColor = Color.black;
public Color ScrollbarColor
{
get { return m_scrollbarColor; }
set { if( m_scrollbarColor != value ) { m_scrollbarColor = value; m_version++; } }
}
[Header( "Files" )]
[SerializeField]
private float m_fileHeight = 30f;
public float FileHeight
{
get { return m_fileHeight; }
set { if( m_fileHeight != value ) { m_fileHeight = value; m_version++; } }
}
[SerializeField]
private float m_fileIconsPadding = 6f;
public float FileIconsPadding
{
get { return m_fileIconsPadding; }
set { if( m_fileIconsPadding != value ) { m_fileIconsPadding = value; m_version++; } }
}
[SerializeField]
private Color m_fileNormalBackgroundColor = Color.clear;
public Color FileNormalBackgroundColor
{
get { return m_fileNormalBackgroundColor; }
set { if( m_fileNormalBackgroundColor != value ) { m_fileNormalBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_fileAlternatingBackgroundColor = Color.clear;
public Color FileAlternatingBackgroundColor
{
get { return m_fileAlternatingBackgroundColor; }
set { if( m_fileAlternatingBackgroundColor != value ) { m_fileAlternatingBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_fileHoveredBackgroundColor = Color.cyan;
public Color FileHoveredBackgroundColor
{
get { return m_fileHoveredBackgroundColor; }
set { if( m_fileHoveredBackgroundColor != value ) { m_fileHoveredBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_fileSelectedBackgroundColor = Color.blue;
public Color FileSelectedBackgroundColor
{
get { return m_fileSelectedBackgroundColor; }
set { if( m_fileSelectedBackgroundColor != value ) { m_fileSelectedBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_fileNormalTextColor = Color.black;
public Color FileNormalTextColor
{
get { return m_fileNormalTextColor; }
set { if( m_fileNormalTextColor != value ) { m_fileNormalTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_fileSelectedTextColor = Color.black;
public Color FileSelectedTextColor
{
get { return m_fileSelectedTextColor; }
set { if( m_fileSelectedTextColor != value ) { m_fileSelectedTextColor = value; m_version++; } }
}
[Header( "File Icons" )]
[SerializeField]
private Sprite m_folderIcon;
public Sprite FolderIcon
{
get { return m_folderIcon; }
set { if( m_folderIcon != value ) { m_folderIcon = value; m_version++; } }
}
[SerializeField]
private Sprite m_driveIcon;
public Sprite DriveIcon
{
get { return m_driveIcon; }
set { if( m_driveIcon != value ) { m_driveIcon = value; m_version++; } }
}
[SerializeField]
private Sprite m_defaultFileIcon;
public Sprite DefaultFileIcon
{
get { return m_defaultFileIcon; }
set { if( m_defaultFileIcon != value ) { m_defaultFileIcon = value; m_version++; } }
}
[SerializeField]
private FiletypeIcon[] m_filetypeIcons;
public FiletypeIcon[] FiletypeIcons
{
get { return m_filetypeIcons; }
set
{
if( m_filetypeIcons != value )
{
m_filetypeIcons = value;
initializedFiletypeIcons = false;
m_version++;
}
}
}
[NonSerialized] // Never save this value during domain reload (it's sometimes saved even though it's private)
private bool initializedFiletypeIcons = false;
private Dictionary<string, Sprite> filetypeToIcon;
[NonSerialized]
private bool m_allIconExtensionsHaveSingleSuffix = true;
public bool AllIconExtensionsHaveSingleSuffix
{
get
{
if( !initializedFiletypeIcons )
InitializeFiletypeIcons();
return m_allIconExtensionsHaveSingleSuffix;
}
}
[SerializeField]
private Sprite m_fileMultiSelectionToggleOffIcon;
public Sprite FileMultiSelectionToggleOffIcon
{
get { return m_fileMultiSelectionToggleOffIcon; }
set { if( m_fileMultiSelectionToggleOffIcon != value ) { m_fileMultiSelectionToggleOffIcon = value; m_version++; } }
}
[SerializeField]
private Sprite m_fileMultiSelectionToggleOnIcon;
public Sprite FileMultiSelectionToggleOnIcon
{
get { return m_fileMultiSelectionToggleOnIcon; }
set { if( m_fileMultiSelectionToggleOnIcon != value ) { m_fileMultiSelectionToggleOnIcon = value; m_version++; } }
}
[Header( "Context Menu" )]
[SerializeField]
private Color m_contextMenuBackgroundColor = Color.grey;
public Color ContextMenuBackgroundColor
{
get { return m_contextMenuBackgroundColor; }
set { if( m_contextMenuBackgroundColor != value ) { m_contextMenuBackgroundColor = value; m_version++; } }
}
[SerializeField]
private Color m_contextMenuTextColor = Color.black;
public Color ContextMenuTextColor
{
get { return m_contextMenuTextColor; }
set { if( m_contextMenuTextColor != value ) { m_contextMenuTextColor = value; m_version++; } }
}
[SerializeField]
private Color m_contextMenuSeparatorColor = Color.black;
public Color ContextMenuSeparatorColor
{
get { return m_contextMenuSeparatorColor; }
set { if( m_contextMenuSeparatorColor != value ) { m_contextMenuSeparatorColor = value; m_version++; } }
}
[Header( "Popup Panels" )]
[SerializeField, UnityEngine.Serialization.FormerlySerializedAs( "m_deletePanelBackgroundColor" )]
private Color m_popupPanelsBackgroundColor = Color.grey;
public Color PopupPanelsBackgroundColor
{
get { return m_popupPanelsBackgroundColor; }
set { if( m_popupPanelsBackgroundColor != value ) { m_popupPanelsBackgroundColor = value; m_version++; } }
}
[SerializeField, UnityEngine.Serialization.FormerlySerializedAs( "m_deletePanelTextColor" )]
private Color m_popupPanelsTextColor = Color.black;
public Color PopupPanelsTextColor
{
get { return m_popupPanelsTextColor; }
set { if( m_popupPanelsTextColor != value ) { m_popupPanelsTextColor = value; m_version++; } }
}
[SerializeField, UnityEngine.Serialization.FormerlySerializedAs( "m_deletePanelBackground" )]
private Sprite m_popupPanelsBackground;
public Sprite PopupPanelsBackground
{
get { return m_popupPanelsBackground; }
set { if( m_popupPanelsBackground != value ) { m_popupPanelsBackground = value; m_version++; } }
}
#pragma warning restore 0649
public void ApplyTo( TMP_Text text, Color textColor )
{
text.color = textColor;
text.font = m_font;
text.fontSize = m_fontSize;
}
public void ApplyTo( TMP_InputField inputField )
{
inputField.image.color = m_inputFieldNormalBackgroundColor;
inputField.image.sprite = m_inputFieldBackground;
inputField.selectionColor = m_inputFieldSelectedTextColor;
inputField.caretColor = m_inputFieldCaretColor;
ApplyTo( inputField.textComponent, m_inputFieldTextColor );
if( inputField.placeholder as TMP_Text )
ApplyTo( (TMP_Text) inputField.placeholder, m_inputFieldPlaceholderTextColor );
}
public void ApplyTo( Button button )
{
button.image.color = m_buttonColor;
button.image.sprite = m_buttonBackground;
ApplyTo( button.GetComponentInChildren<TMP_Text>(), m_buttonTextColor );
}
public void ApplyTo( TMP_Dropdown dropdown )
{
dropdown.image.color = m_dropdownColor;
dropdown.image.sprite = m_dropdownBackground;
dropdown.template.GetComponent<Image>().color = m_dropdownColor;
Image dropdownArrow = dropdown.transform.Find( "Arrow" ).GetComponent<Image>();
dropdownArrow.color = m_dropdownArrowColor;
dropdownArrow.sprite = m_dropdownArrow;
ApplyTo( dropdown.captionText, m_dropdownTextColor );
ApplyTo( dropdown.itemText, m_dropdownTextColor );
RectTransform dropdownItem = (RectTransform) dropdown.itemText.transform.parent;
dropdownItem.sizeDelta = new Vector2( dropdownItem.sizeDelta.x, m_rowHeight );
dropdownItem.Find( "Item Background" ).GetComponent<Image>().color = m_dropdownColor;
RectTransform dropdownScrollContent = (RectTransform) dropdownItem.parent;
dropdownScrollContent.sizeDelta = new Vector2( dropdownScrollContent.sizeDelta.x, dropdownItem.sizeDelta.y + 2f );
Image dropdownCheckmark = dropdownItem.Find( "Item Checkmark" ).GetComponent<Image>();
dropdownCheckmark.color = m_dropdownCheckmarkColor;
dropdownCheckmark.sprite = m_dropdownCheckmark;
}
public void ApplyTo( Toggle toggle )
{
toggle.image.color = m_toggleColor;
toggle.image.sprite = m_toggleBackground;
toggle.graphic.color = m_toggleCheckmarkColor;
( (Image) toggle.graphic ).sprite = m_toggleCheckmark;
ApplyTo( toggle.GetComponentInChildren<TMP_Text>(), m_toggleTextColor );
}
public void ApplyTo( Scrollbar scrollbar )
{
scrollbar.GetComponent<Image>().color = m_scrollbarBackgroundColor;
scrollbar.image.color = m_scrollbarColor;
}
public Sprite GetIconForFileEntry( in FileSystemEntry fileInfo, bool extensionMayHaveMultipleSuffixes )
{
if( !initializedFiletypeIcons )
InitializeFiletypeIcons();
Sprite icon;
if( fileInfo.IsDirectory )
return m_folderIcon;
else if( filetypeToIcon.TryGetValue( fileInfo.Extension, out icon ) )
return icon;
else if( extensionMayHaveMultipleSuffixes )
{
for( int i = 0; i < m_filetypeIcons.Length; i++ )
{
if( fileInfo.Extension.EndsWith( m_filetypeIcons[i].extension, StringComparison.Ordinal ) )
{
filetypeToIcon[fileInfo.Extension] = m_filetypeIcons[i].icon;
return m_filetypeIcons[i].icon;
}
}
}
filetypeToIcon[fileInfo.Extension] = m_defaultFileIcon;
return m_defaultFileIcon;
}
private void InitializeFiletypeIcons()
{
initializedFiletypeIcons = true;
if( filetypeToIcon == null )
filetypeToIcon = new Dictionary<string, Sprite>( 128 );
else
filetypeToIcon.Clear();
m_allIconExtensionsHaveSingleSuffix = true;
for( int i = 0; i < m_filetypeIcons.Length; i++ )
{
m_filetypeIcons[i].extension = m_filetypeIcons[i].extension.ToLowerInvariant();
if( m_filetypeIcons[i].extension[0] != '.' )
m_filetypeIcons[i].extension = "." + m_filetypeIcons[i].extension;
filetypeToIcon[m_filetypeIcons[i].extension] = m_filetypeIcons[i].icon;
m_allIconExtensionsHaveSingleSuffix &= ( m_filetypeIcons[i].extension.LastIndexOf( '.' ) == 0 );
}
}
}
}

View File

@@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: 66bc3ce4885990c40a88f80fe0ad0101
timeCreated: 1634711050
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Scripts/UISkin.cs
uploadId: 758381

View File

@@ -0,0 +1,15 @@
{
"name": "SimpleFileBrowser.Runtime",
"references": [
"Unity.InputSystem",
"Unity.TextMeshPro"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"autoReferenced": true,
"overrideReferences": false,
"precompiledReferences": [],
"defineConstraints": [],
"optionalUnityReferences": []
}

View File

@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: c685d05731421f64287ad6d13be5af0e
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 7e6307005d898f2458a6b0a2ef136d0b
folderAsset: yes
timeCreated: 1634717866
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,153 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 66bc3ce4885990c40a88f80fe0ad0101, type: 3}
m_Name: DarkSkin
m_EditorClassIdentifier:
m_font: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSize: 14
m_rowHeight: 30
m_rowSpacing: 8
m_windowColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_filesListColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1}
m_filesVerticalSeparatorColor: {r: 0.334, g: 0.334, b: 0.334, a: 1}
m_titleBackgroundColor: {r: 0.07058824, g: 0.07058824, b: 0.07058824, a: 1}
m_titleTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_windowResizeGizmoColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_headerButtonsColor: {r: 1, g: 1, b: 1, a: 1}
m_windowResizeGizmo: {fileID: 21300000, guid: 285f1e681b119ce48ae469448241360b,
type: 3}
m_headerBackButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3}
m_headerForwardButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e,
type: 3}
m_headerUpButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3}
m_headerContextMenuButton: {fileID: 21300000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0,
type: 3}
m_inputFieldNormalBackgroundColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216,
a: 1}
m_inputFieldInvalidBackgroundColor: {r: 0.4392157, g: 0.12156863, b: 0.12156863,
a: 1}
m_inputFieldTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_inputFieldPlaceholderTextColor: {r: 1, g: 1, b: 1, a: 0.6509804}
m_inputFieldSelectedTextColor: {r: 0.13725491, g: 0.46666667, b: 0.69411767, a: 0.5019608}
m_inputFieldCaretColor: {r: 1, g: 1, b: 1, a: 1}
m_inputFieldBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344,
type: 3}
m_buttonColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_buttonTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_buttonBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3}
m_dropdownColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_dropdownTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_dropdownArrowColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_dropdownCheckmarkColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_dropdownBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230,
type: 3}
m_dropdownArrow: {fileID: 21300000, guid: f73f38102c749484bbd884d4d8d87440, type: 3}
m_dropdownCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94,
type: 3}
m_toggleColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_toggleTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_toggleCheckmarkColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_toggleBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, type: 3}
m_toggleCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3}
m_scrollbarBackgroundColor: {r: 0.07058824, g: 0.07058824, b: 0.07058824, a: 1}
m_scrollbarColor: {r: 0.26666668, g: 0.26666668, b: 0.26666668, a: 1}
m_fileHeight: 30
m_fileIconsPadding: 6
m_fileNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 0}
m_fileAlternatingBackgroundColor: {r: 1, g: 1, b: 1, a: 0.043137256}
m_fileHoveredBackgroundColor: {r: 0.88235295, g: 0.88235295, b: 1, a: 0.2}
m_fileSelectedBackgroundColor: {r: 0, g: 0.34117648, b: 0.5803922, a: 1}
m_fileNormalTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_fileSelectedTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_folderIcon: {fileID: 21300000, guid: 27947666271b231439b4409a81cb5d59, type: 3}
m_driveIcon: {fileID: 21300000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3}
m_defaultFileIcon: {fileID: 21300000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3}
m_filetypeIcons:
- extension: .txt
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .doc
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .docx
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .xml
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .json
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .rtf
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .pdf
icon: {fileID: 21300000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3}
- extension: .jpg
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .jpeg
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .png
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .gif
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .bmp
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .psd
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .tif
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .tiff
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .mp4
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mkv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mov
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .avi
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .flv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .webm
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .wmv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mp3
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .wav
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .aac
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .m4a
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .ogg
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .wma
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .flac
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .zip
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .rar
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .7z
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .gz
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .exe
icon: {fileID: 21300000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3}
m_fileMultiSelectionToggleOffIcon: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e,
type: 3}
m_fileMultiSelectionToggleOnIcon: {fileID: 21300000, guid: 30a2566f94f937b4998542121050e68b,
type: 3}
m_contextMenuBackgroundColor: {r: 0.11372549, g: 0.11372549, b: 0.11372549, a: 1}
m_contextMenuTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_contextMenuSeparatorColor: {r: 0.6392157, g: 0.6392157, b: 0.6392157, a: 1}
m_popupPanelsBackgroundColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1}
m_popupPanelsTextColor: {r: 1, g: 1, b: 1, a: 0.87058824}
m_popupPanelsBackground: {fileID: 21300000, guid: b9c5fedc997f125448c4d8be2fc43bcd,
type: 3}

View File

@@ -0,0 +1,16 @@
fileFormatVersion: 2
guid: 07c1616acb3e05d4789781b38d6ab800
timeCreated: 1634717905
licenseType: Store
NativeFormatImporter:
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Skins/DarkSkin.asset
uploadId: 758381

View File

@@ -0,0 +1,152 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 66bc3ce4885990c40a88f80fe0ad0101, type: 3}
m_Name: LightSkin
m_EditorClassIdentifier:
m_font: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSize: 14
m_rowHeight: 30
m_rowSpacing: 8
m_windowColor: {r: 0.9338235, g: 0.9338235, b: 0.9338235, a: 1}
m_filesListColor: {r: 1, g: 1, b: 1, a: 1}
m_filesVerticalSeparatorColor: {r: 0.6397059, g: 0.6397059, b: 0.6397059, a: 1}
m_titleBackgroundColor: {r: 0.30882353, g: 0.30882353, b: 0.30882353, a: 1}
m_titleTextColor: {r: 1, g: 1, b: 1, a: 1}
m_windowResizeGizmoColor: {r: 0.5294118, g: 0.5294118, b: 0.5294118, a: 1}
m_headerButtonsColor: {r: 1, g: 1, b: 1, a: 1}
m_windowResizeGizmo: {fileID: 21300000, guid: 285f1e681b119ce48ae469448241360b,
type: 3}
m_headerBackButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3}
m_headerForwardButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e,
type: 3}
m_headerUpButton: {fileID: 21300000, guid: 130f660889a70c947bff4c8ba8a2c73e, type: 3}
m_headerContextMenuButton: {fileID: 21300000, guid: 3eb0ab0fddc930a498bef8ce7e149ea0,
type: 3}
m_inputFieldNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 1}
m_inputFieldInvalidBackgroundColor: {r: 1, g: 0.39215687, b: 0.39215687, a: 1}
m_inputFieldTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_inputFieldPlaceholderTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843,
a: 0.5}
m_inputFieldSelectedTextColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_inputFieldCaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_inputFieldBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344,
type: 3}
m_buttonColor: {r: 1, g: 1, b: 1, a: 1}
m_buttonTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_buttonBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230, type: 3}
m_dropdownColor: {r: 1, g: 1, b: 1, a: 1}
m_dropdownTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_dropdownArrowColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_dropdownCheckmarkColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_dropdownBackground: {fileID: 21300000, guid: 2c46fa192de46b04e8281f225bee0230,
type: 3}
m_dropdownArrow: {fileID: 21300000, guid: f73f38102c749484bbd884d4d8d87440, type: 3}
m_dropdownCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94,
type: 3}
m_toggleColor: {r: 1, g: 1, b: 1, a: 1}
m_toggleTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_toggleCheckmarkColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_toggleBackground: {fileID: 21300000, guid: f668f62689b67d242ad33ff665594344, type: 3}
m_toggleCheckmark: {fileID: 21300000, guid: 4924b77159e651e4aaa9a22286725d94, type: 3}
m_scrollbarBackgroundColor: {r: 0.9191176, g: 0.9191176, b: 0.9191176, a: 1}
m_scrollbarColor: {r: 0.7647059, g: 0.7647059, b: 0.7647059, a: 1}
m_fileHeight: 30
m_fileIconsPadding: 6
m_fileNormalBackgroundColor: {r: 1, g: 1, b: 1, a: 0}
m_fileAlternatingBackgroundColor: {r: 1, g: 1, b: 1, a: 0}
m_fileHoveredBackgroundColor: {r: 0.8980392, g: 0.9529412, b: 1, a: 1}
m_fileSelectedBackgroundColor: {r: 0.7058824, g: 0.8666667, b: 1, a: 1}
m_fileNormalTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_fileSelectedTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_folderIcon: {fileID: 21300000, guid: 27947666271b231439b4409a81cb5d59, type: 3}
m_driveIcon: {fileID: 21300000, guid: 81da6e5b6342f8f47a5a3a24221306c6, type: 3}
m_defaultFileIcon: {fileID: 21300000, guid: 89f87b95a0cf73b4484ab74fe3f9ea26, type: 3}
m_filetypeIcons:
- extension: .txt
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .doc
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .docx
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .xml
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .json
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .rtf
icon: {fileID: 21300000, guid: d06b8cf70dff2fe418249a6276f9ff70, type: 3}
- extension: .pdf
icon: {fileID: 21300000, guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1, type: 3}
- extension: .jpg
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .jpeg
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .png
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .gif
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .bmp
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .psd
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .tif
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .tiff
icon: {fileID: 21300000, guid: 93482309cf79cef4a9ed8464c560334b, type: 3}
- extension: .mp4
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mkv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mov
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .avi
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .flv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .webm
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .wmv
icon: {fileID: 21300000, guid: 53a62df1d392a10498ec79719f8eef1f, type: 3}
- extension: .mp3
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .wav
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .aac
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .m4a
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .ogg
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .wma
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .flac
icon: {fileID: 21300000, guid: 293ea6a99c4ba134cae49556942ee0ff, type: 3}
- extension: .zip
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .rar
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .7z
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .gz
icon: {fileID: 21300000, guid: 3b2a773e413d3e84f8c7c757734af584, type: 3}
- extension: .exe
icon: {fileID: 21300000, guid: c1e1f7ef76f59f54bbde5162f2709794, type: 3}
m_fileMultiSelectionToggleOffIcon: {fileID: 21300000, guid: d6beaeac8de2af749a48581db778df3e,
type: 3}
m_fileMultiSelectionToggleOnIcon: {fileID: 21300000, guid: 30a2566f94f937b4998542121050e68b,
type: 3}
m_contextMenuBackgroundColor: {r: 0.955, g: 0.955, b: 0.955, a: 1}
m_contextMenuTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_contextMenuSeparatorColor: {r: 0.6397059, g: 0.6397059, b: 0.6397059, a: 1}
m_popupPanelsBackgroundColor: {r: 0.955, g: 0.955, b: 0.955, a: 1}
m_popupPanelsTextColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_popupPanelsBackground: {fileID: 21300000, guid: b9c5fedc997f125448c4d8be2fc43bcd,
type: 3}

View File

@@ -0,0 +1,16 @@
fileFormatVersion: 2
guid: 758becaa4751c514ab3abd821b4078bb
timeCreated: 1634717905
licenseType: Store
NativeFormatImporter:
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Skins/LightSkin.asset
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 651607359bdd10946a8eafc45e7d1445
folderAsset: yes
timeCreated: 1479476379
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 4924b77159e651e4aaa9a22286725d94
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 5
maxTextureSize: 32
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd
uploadId: 758381

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: f73f38102c749484bbd884d4d8d87440
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 5
maxTextureSize: 32
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd
uploadId: 758381

Binary file not shown.

View File

@@ -0,0 +1,142 @@
fileFormatVersion: 2
guid: 01b10cc2da49f7442ba6525072e1f86a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 64
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/ErrorIcon.psd
uploadId: 758381

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a1b4f73b07909c94393f4feccb24fec5
folderAsset: yes
timeCreated: 1634649107
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 3b2a773e413d3e84f8c7c757734af584
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ArchiveIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 293ea6a99c4ba134cae49556942ee0ff
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/AudioFileIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 89f87b95a0cf73b4484ab74fe3f9ea26
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DefaultFileIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 81da6e5b6342f8f47a5a3a24221306c6
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/DriveIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: c1e1f7ef76f59f54bbde5162f2709794
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ExecutableIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 27947666271b231439b4409a81cb5d59
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/FolderIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 93482309cf79cef4a9ed8464c560334b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/ImageFileIcon.png
uploadId: 758381

View File

@@ -0,0 +1,12 @@
The following sprites are taken from external sources and licensed under the CC0 License:
- ArchiveIcon: https://www.pngrepo.com/svg/227623/zip
- AudioFileIcon: https://www.pngrepo.com/svg/293355/music
- DefaultFileIcon: https://www.pngrepo.com/svg/200084/file-sheet
- DriveIcon: https://www.pngrepo.com/svg/152885/hard-drive-device
- ExecutableIcon: Created from scratch
- FolderIcon: https://www.pngrepo.com/svg/229838/folder
- ImageFileIcon: https://www.pngrepo.com/svg/231128/picture-image
- PdfFileIcon: https://www.pngrepo.com/svg/28209/pdf
- TextFileIcon: https://www.pngrepo.com/svg/241790/file-document
- VideoFileIcon: https://www.pngrepo.com/svg/79032/play-video

View File

@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 99791c82b2c040241ae29b4408c8e02f
timeCreated: 1563308858
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/LICENSE.txt
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: ac5741fcd06d2ce45b9ae2ce9df3c4a1
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/PdfFileIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: d06b8cf70dff2fe418249a6276f9ff70
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/TextFileIcon.png
uploadId: 758381

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 53a62df1d392a10498ec79719f8eef1f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 64
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/FileIcons/VideoFileIcon.png
uploadId: 758381

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 130f660889a70c947bff4c8ba8a2c73e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 5
maxTextureSize: 32
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd
uploadId: 758381

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: d6beaeac8de2af749a48581db778df3e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 5
maxTextureSize: 32
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd
uploadId: 758381

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 30a2566f94f937b4998542121050e68b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 5
maxTextureSize: 32
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 16
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: SimpleFileBrowserUI
pSDRemoveMatte: 1
pSDShowRemoveMatteOption: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 113006
packageName: Runtime File Browser
packageVersion: 1.7.4
assetPath: Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd
uploadId: 758381

Some files were not shown because too many files have changed in this diff Show More