├── .gitignore ├── LICENSE ├── Lib └── TidyUp │ ├── Data.json │ ├── FolderTemplate.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── TidyUp.cs │ ├── TidyUp.csproj │ ├── TidyUpCore.cs │ └── TidyUpSettingUI.cs ├── README.md ├── Resource ├── Logo │ ├── TidyUp.jpg │ ├── W4mj5F.jpg │ ├── background.jpg │ ├── fb bg.png │ ├── key.png │ ├── large.png │ ├── logo fonts.txt │ ├── small.png │ └── zjHl2lgef9cYrQL0JFa7kzbw2vuCrBJMmRnJ3jd9OXdE9g5shnN1i.jpg ├── Screenshot │ ├── 1.jpg │ ├── 2.jpg │ ├── large.png │ └── shoot │ │ ├── Clean.PNG │ │ ├── after.PNG │ │ ├── before.png │ │ ├── dirty.PNG │ │ ├── empty.PNG │ │ ├── setting.PNG │ │ └── topbar.png └── description.txt └── Tidy Up ├── Assets ├── AssetStoreTools.meta ├── AssetStoreTools │ ├── Editor.meta │ ├── Editor │ │ ├── AssetStoreTools.dll │ │ ├── AssetStoreTools.dll.meta │ │ ├── AssetStoreToolsExtra.dll │ │ ├── AssetStoreToolsExtra.dll.meta │ │ ├── DroidSansMono.ttf │ │ ├── DroidSansMono.ttf.meta │ │ ├── icon.png │ │ └── icon.png.meta │ ├── Labels.asset │ └── Labels.asset.meta ├── TestScene.unity ├── TestScene.unity.meta ├── TidyUp.meta ├── TidyUp │ ├── LICENSE │ ├── LICENSE.meta │ ├── Plugins.meta │ └── Plugins │ │ ├── Editor.meta │ │ └── Editor │ │ ├── Data.json │ │ ├── Data.json.meta │ │ ├── TidyUp.dll │ │ └── TidyUp.dll.meta ├── VSCode.meta └── VSCode │ ├── Plugins.meta │ └── Plugins │ ├── Editor.meta │ └── Editor │ ├── VSCode.cs │ └── VSCode.cs.meta ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityAdsSettings.asset └── UnityConnectSettings.asset ├── Tidy Up.CSharp.Editor.csproj ├── Tidy Up.CSharp.csproj └── Tidy Up.Editor.csproj /.gitignore: -------------------------------------------------------------------------------- 1 | # =============== # 2 | # Unity folders # 3 | # =============== # 4 | [Ll]ibrary/ 5 | [Tt]emp/ 6 | [Oo]bj/ 7 | [Bb]uild/ 8 | [Bb]uilds/ 9 | 3rdParty/ 10 | Assets/AssetStoreTools* 11 | .vs/ 12 | .vscode/ 13 | 14 | # ===================================== # 15 | # Visual Studio / MonoDevelop generated # 16 | # ===================================== # 17 | # Autogenerated VS/MD solution and project files 18 | ExportedObj/ 19 | # *.csproj Don't ignore them in meanwhile because of post-build action 20 | *.unityproj 21 | *.sln 22 | *.sln.docstates 23 | *.suo 24 | *.tmp 25 | *.user 26 | *.userosscache 27 | *.vcxproj.filters 28 | *.userprefs 29 | *.pidb 30 | *.booproj 31 | *.svd 32 | 33 | # Build results 34 | [Dd]ebug/ 35 | [Dd]ebugPublic/ 36 | [Rr]elease/ 37 | [Rr]eleases/ 38 | x64/ 39 | x86/ 40 | bld/ 41 | [Bb]in/ 42 | [Ll]og/ 43 | 44 | # ===================================== # 45 | # Unity generated meta files # 46 | # ===================================== # 47 | *.pidb.meta 48 | 49 | 50 | # ===================================== # 51 | # Unity3D Generated File On Crash Reports 52 | # ===================================== # 53 | sysinfo.txt 54 | 55 | # Builds 56 | *.apk 57 | *.unitypackage 58 | 59 | 60 | # ============ # 61 | # OS generated # 62 | # ============ # 63 | .DS_Store 64 | .DS_Store? 65 | ._* 66 | .Spotlight-V100 67 | .Trashes 68 | ehthumbs.db 69 | Thumbs.db 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Omar Al-Sabek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Lib/TidyUp/Data.json: -------------------------------------------------------------------------------- 1 | { 2 | "folderTemplateList": [ 3 | { 4 | "folderName": "_Scenes", 5 | "folderPath": "\\", 6 | "assetType": 7 7 | }, 8 | { 9 | "folderName": "_ImportedAssets", 10 | "folderPath": "\\", 11 | "assetType": 9 12 | }, 13 | { 14 | "folderName": "Animations", 15 | "folderPath": "\\", 16 | "assetType": 0 17 | }, 18 | { 19 | "folderName": "Audio", 20 | "folderPath": "\\", 21 | "assetType": 1 22 | }, 23 | { 24 | "folderName": "Fonts", 25 | "folderPath": "\\", 26 | "assetType": 2 27 | }, 28 | { 29 | "folderName": "Materials", 30 | "folderPath": "\\Graphics\\", 31 | "assetType": 3 32 | }, 33 | { 34 | "folderName": "Models", 35 | "folderPath": "\\Graphics\\", 36 | "assetType": 4 37 | }, 38 | { 39 | "folderName": "Prefabs", 40 | "folderPath": "\\", 41 | "assetType": 5 42 | }, 43 | { 44 | "folderName": "Scripts", 45 | "folderPath": "\\", 46 | "assetType": 8 47 | }, 48 | { 49 | "folderName": "Textures", 50 | "folderPath": "\\Graphics\\", 51 | "assetType": 6 52 | } 53 | ] 54 | } -------------------------------------------------------------------------------- /Lib/TidyUp/FolderTemplate.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------- 2 | // This script Used for storing the default Project Folder Structure. 3 | //----------------------------------------------------------------- 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | 8 | namespace TidyUp 9 | { 10 | 11 | [Serializable] 12 | public class Folder 13 | { 14 | public string folderName; 15 | public string folderPath; 16 | public AssetType assetType; 17 | } 18 | 19 | [System.Serializable] 20 | public class FolderTemplate 21 | { 22 | public List folderTemplateList = new List(); 23 | 24 | //Constructors 25 | public FolderTemplate() { } 26 | public FolderTemplate(List folderTemplateList) 27 | { 28 | this.folderTemplateList = folderTemplateList; 29 | } 30 | } 31 | 32 | public enum FolderStructure 33 | { //Backup Structure 34 | _Scenes, 35 | _ImportedAssets, 36 | Animations, 37 | Audio, 38 | Fonts, 39 | Materials, 40 | Models, 41 | Prefabs, 42 | Scripts, 43 | Textures, 44 | } 45 | 46 | public enum AssetType 47 | { //For Grouping porpuse 48 | Animations, 49 | Audio, 50 | Fonts, 51 | Materials, 52 | Models, 53 | Prefabs, 54 | Textures, 55 | Scenes, 56 | Scripts, 57 | Other, 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Lib/TidyUp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TidyUp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TidyUp")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("b5c1f6fe-232c-4a88-adc5-e7c870c98def")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Lib/TidyUp/TidyUp.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------- 2 | // This script handles the TidyUp MenuItem. 3 | // It hosts the main Extension functions for calling project Core functionality in the editor. 4 | // TODO: 5 | // [X] Initialize Project Folders Main Function 6 | // [X] Clean Up My Mess Main Function 7 | // [X] Create My Own Style Main Function 8 | // 9 | //----------------------------------------------------------------- 10 | using UnityEditor; 11 | 12 | namespace TidyUp 13 | { 14 | public class TidyUp : EditorWindow 15 | { 16 | [MenuItem("Tidy Up/Initialize Project Folders")] 17 | [MenuItem("Assets/Initialize Project Folders", false, 1)] 18 | private static void InitializeProjectFolders() 19 | { 20 | TidyUpCore.CreateFolders(); 21 | } 22 | 23 | [MenuItem("Tidy Up/Clean Up my Mess")] 24 | [MenuItem("Assets/Clean Up my Mess", false, 2)] 25 | private static void CleanUpMyMess() 26 | { 27 | //Create Missing Directory if there is any 28 | TidyUpCore.CreateFolders(); 29 | 30 | //Move Files In Root level to Appropriate Directory 31 | TidyUpCore.CleanRootDirectory(); 32 | } 33 | 34 | [MenuItem("Tidy Up/Options")] 35 | internal static void Options() 36 | { 37 | var editorAsm = typeof(Editor).Assembly; 38 | var inspWndType = editorAsm.GetType("UnityEditor.InspectorWindow"); //get type of InspectorWindow 39 | TidyUpSettingUI opWindow = EditorWindow.GetWindow("TidyUp Setting", true, inspWndType); 40 | 41 | opWindow.Show(); 42 | } 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Lib/TidyUp/TidyUp.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {B5C1F6FE-232C-4A88-ADC5-E7C870C98DEF} 8 | Library 9 | Properties 10 | TidyUp 11 | TidyUp 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | C:\Program Files\Unity\Editor\Data\Managed\UnityEditor.dll 44 | 45 | 46 | C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | copy "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)\..\Tidy Up\Assets\TidyUp\Plugins\Editor" 62 | 63 | 70 | -------------------------------------------------------------------------------- /Lib/TidyUp/TidyUpCore.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------- 2 | // This script handles the TidyUp Core System. 3 | // It hosts the main Extension functions for manipulating project in the editor. 4 | // TODO: 5 | // [X] Initialize Project Folders Main Function 6 | // [X] Clean Up My Mess Main Function 7 | // [X] Create My Own Style Main Function 8 | // [X] Import/Export Setting New Function 9 | // [X] Reset Setting New Function 10 | // [X] Link `CleanRootDirectory` with the new UI 11 | // [X] Transfer the project into Class Library Project 12 | //----------------------------------------------------------------- 13 | 14 | using System; 15 | using System.IO; 16 | using UnityEditor; 17 | using UnityEngine; 18 | namespace TidyUp 19 | { 20 | public class TidyUpCore 21 | { 22 | public static FolderTemplate folderTemplate = new FolderTemplate(); 23 | private static string pathToResource = "TidyUp/Plugins/Editor/Data.json"; 24 | 25 | internal static void CreateFolders() 26 | { 27 | folderTemplate = LoadSetting(); //populate folderTemplate with data 28 | 29 | foreach (var _folder in folderTemplate.folderTemplateList) 30 | { 31 | bool isExists = AssetDatabase.IsValidFolder("Assets" + _folder.folderName); 32 | if (isExists) //Skip Creating folder if it's already Exist 33 | continue; 34 | 35 | //Otherwise Create Folder 36 | Directory.CreateDirectory(Path.Combine(Application.dataPath + _folder.folderPath, _folder.folderName)); 37 | } 38 | //#if unity_editor 39 | UnityEditor.AssetDatabase.Refresh(); 40 | //#endif 41 | } 42 | 43 | internal static void CleanRootDirectory() 44 | { 45 | folderTemplate = LoadSetting(); //populate folderTemplate with data 46 | 47 | DirectoryInfo dir = new DirectoryInfo(Application.dataPath); 48 | FileInfo[] info = dir.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly); //get only files in root Directory 49 | 50 | var _scenesFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Scenes); 51 | var _animationsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Animations); 52 | var _audioFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Audio); 53 | var _fontsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Fonts); 54 | var _materialsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Materials); 55 | var _modelsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Models); 56 | var _texturesFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Textures); 57 | var _prefabsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Prefabs); 58 | var _scriptsFolder = folderTemplate.folderTemplateList.Find(item => item.assetType == AssetType.Scripts); 59 | 60 | foreach (FileInfo file in info) //Loop over root files 61 | { 62 | int extensionPos = file.ToString().IndexOf("."); 63 | string extension = file.ToString().Substring(extensionPos).ToLower(); 64 | 65 | if (extension == ".unity" || extension == ".unity.meta") //if file is Scene 66 | { 67 | AssetDatabase.MoveAsset( 68 | "Assets/" + file.Name, 69 | Path.Combine("Assets" + _scenesFolder.folderPath + _scenesFolder.folderName, file.Name)); 70 | } 71 | else if (extension == ".anim" || extension == ".anim.meta") //if file is Animation 72 | { 73 | AssetDatabase.MoveAsset( 74 | "Assets/" + file.Name, 75 | Path.Combine("Assets" + _animationsFolder.folderPath + _animationsFolder.folderName, file.Name)); 76 | } 77 | else if (extension == ".mp3" || extension == ".mp3.meta" || extension == ".ogg" || extension == ".ogg.meta" || 78 | extension == ".wav" || extension == ".wav.meta" || extension == ".mod" || extension == ".mod.meta" || 79 | extension == ".it" || extension == ".it.meta" || extension == ".s3m" || extension == ".s3m.meta" || 80 | extension == ".xm" || extension == ".xm.meta" || extension == ".aiff" || extension == ".aiff.meta" || 81 | extension == ".aif" || extension == ".aif.meta") //if file is Audio 82 | { 83 | AssetDatabase.MoveAsset( 84 | "Assets/" + file.Name, 85 | Path.Combine("Assets" + _audioFolder.folderPath + _audioFolder.folderName, file.Name)); 86 | } 87 | else if (extension == ".ttf" || extension == ".ttf.meta" || extension == ".otf" || extension == ".otf.meta") //if file is Font 88 | { 89 | AssetDatabase.MoveAsset( 90 | "Assets/" + file.Name, 91 | Path.Combine("Assets" + _fontsFolder.folderPath + _fontsFolder.folderName, file.Name)); 92 | } 93 | else if (extension == ".mat" || extension == ".mat.meta") //if file is Material 94 | { 95 | AssetDatabase.MoveAsset( 96 | "Assets/" + file.Name, 97 | Path.Combine("Assets" + _materialsFolder.folderPath + _materialsFolder.folderName, file.Name)); 98 | } 99 | else if (extension == ".fbx" || extension == ".fbx.meta" || extension == ".dae" || extension == ".dae.meta" || 100 | extension == ".dxf" || extension == ".dxf.meta" || extension == ".obj" || extension == ".obj.meta" || 101 | extension == ".max" || extension == ".max.meta" || extension == ".blend" || extension == ".blend.meta") //if file is Model 102 | { 103 | AssetDatabase.MoveAsset( 104 | "Assets/" + file.Name, 105 | Path.Combine("Assets" + _modelsFolder.folderPath + _modelsFolder.folderName, file.Name)); 106 | } 107 | else if (extension == ".bmp" || extension == ".bmp.meta" || extension == ".exr" || extension == ".exr.meta" || 108 | extension == ".gif" || extension == ".gif.meta" || extension == ".hdr" || extension == ".hdr.meta" || 109 | extension == ".iff" || extension == ".iff.meta" || extension == ".jpg" || extension == ".jpg.meta" || 110 | extension == ".pict" || extension == ".pict.meta" || extension == ".png" || extension == ".png.meta" || 111 | extension == ".psd" || extension == ".psd.meta" || extension == ".tga" || extension == ".tga.meta" || 112 | extension == ".tiff" || extension == ".tiff.meta") //if file is Texture 113 | { 114 | AssetDatabase.MoveAsset( 115 | "Assets/" + file.Name, 116 | Path.Combine("Assets" + _texturesFolder.folderPath + _texturesFolder.folderName, file.Name)); 117 | } 118 | else if (extension == ".prefab" || extension == ".prefab.meta") //if file is Prefab 119 | { 120 | AssetDatabase.MoveAsset( 121 | "Assets/" + file.Name, 122 | Path.Combine("Assets" + _prefabsFolder.folderPath + _prefabsFolder.folderName, file.Name)); 123 | } 124 | else if (extension == ".cs" || extension == ".cs.meta") //if file is Script 125 | { 126 | AssetDatabase.MoveAsset( 127 | "Assets/" + file.Name, 128 | Path.Combine("Assets" + _scriptsFolder.folderPath + _scriptsFolder.folderName, file.Name)); 129 | } 130 | } 131 | } 132 | 133 | /// 134 | /// LoadSetting() is called from `TidyUpSettingUI` to read Data.json file 135 | /// and populate the FolderTemplateList with data 136 | /// 137 | internal static FolderTemplate LoadSetting() 138 | { 139 | string json = ""; 140 | try 141 | { json = File.ReadAllText(Path.Combine(Application.dataPath, pathToResource)); } 142 | catch (System.Exception) //In case Data.json deleted somehow 143 | { RestSetting(); return new FolderTemplate(); } //Reset Data file 144 | 145 | folderTemplate = JsonUtility.FromJson(json); //retrieve JSON to object 146 | 147 | return folderTemplate; 148 | } 149 | internal static void StoreSetting(FolderTemplate template) 150 | { 151 | string json = JsonUtility.ToJson(template); //save as JSON 152 | 153 | File.WriteAllText(Path.Combine(Application.dataPath, pathToResource), json); //store json to file 154 | //#if UNITY_EDITOR 155 | UnityEditor.AssetDatabase.Refresh(); 156 | //#endif 157 | } 158 | 159 | internal static void ImportSetting() 160 | { 161 | string path = EditorUtility.OpenFilePanel("Import New Setting", Application.dataPath, "json"); 162 | 163 | if (path.Length != 0) 164 | { 165 | string json = ""; 166 | try 167 | { 168 | json = File.ReadAllText(path); 169 | 170 | //wrapper the json into `FolderTemplate` to make sure it's valid data file 171 | folderTemplate = JsonUtility.FromJson(json); 172 | if (folderTemplate == null) //Invalid Data file 173 | throw new InvalidDataException(); 174 | } 175 | catch (System.Exception) //In case Data.json corrupted 176 | { 177 | EditorUtility.DisplayDialog("Import New Setting", "You must select a valid JSON data file!", "OK"); 178 | return; 179 | } 180 | 181 | File.WriteAllText(Path.Combine(Application.dataPath, pathToResource), json); //store json to file 182 | } 183 | 184 | } 185 | 186 | internal static void ExportSetting(FolderTemplate template) 187 | { 188 | string path = EditorUtility.SaveFilePanel("Export Setting", Application.dataPath, "Data", "json"); 189 | if (path.Length != 0) 190 | { 191 | string json = JsonUtility.ToJson(template); //save as JSON 192 | File.WriteAllText(path, json); //store json to file 193 | } 194 | } 195 | 196 | /// 197 | /// ClearConsole() is called on the frame when we release `folderTemplate` just before 198 | /// any of the Update methods to data populate. 199 | /// 200 | internal static void ClearConsole() 201 | { 202 | // This simply does "LogEntries.Clear()" the long way: 203 | var logEntries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll"); 204 | var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); 205 | clearMethod.Invoke(null, null); 206 | } 207 | 208 | // for testing purpose 209 | internal static void RestSetting() 210 | { 211 | folderTemplate.folderTemplateList.Clear(); //make sure the list is empty 212 | 213 | foreach (var item in Enum.GetValues(typeof(FolderStructure))) //populate list with enum data 214 | { 215 | Folder FT = new Folder(); 216 | FT.folderName = item.ToString(); 217 | 218 | //Exception for Graphic Content 219 | if (item.ToString() == "Materials" || item.ToString() == "Models" || item.ToString() == "Textures") 220 | FT.folderPath = @"\Graphics\"; 221 | else 222 | FT.folderPath = @"\"; 223 | 224 | try //Match `AssetType` with the default `FolderStructure` 225 | { FT.assetType = (AssetType)Enum.Parse(typeof(AssetType), item.ToString()); } 226 | catch (System.Exception) 227 | { 228 | if (item.ToString() == "_Scenes") 229 | FT.assetType = AssetType.Scenes; 230 | else 231 | FT.assetType = AssetType.Other; 232 | } 233 | 234 | folderTemplate.folderTemplateList.Add(FT); 235 | } 236 | 237 | string json = JsonUtility.ToJson(folderTemplate); //convert list to json string 238 | 239 | File.WriteAllText(Path.Combine(Application.dataPath, pathToResource), json); //store json to file 240 | 241 | //#if UNITY_EDITOR 242 | UnityEditor.AssetDatabase.Refresh(); 243 | //#endif 244 | } 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /Lib/TidyUp/TidyUpSettingUI.cs: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------- 2 | // This script Used for handles the Settings GUI. 3 | //----------------------------------------------------------------- 4 | 5 | using System.Collections.Generic; 6 | using UnityEditor; 7 | using UnityEngine; 8 | 9 | namespace TidyUp 10 | { 11 | public class TidyUpSettingUI : EditorWindow 12 | { 13 | public FolderTemplate folderTemplate; 14 | public List list; 15 | 16 | ScriptableObject target; 17 | SerializedObject serializedObject; 18 | SerializedProperty folderTemplateProperty; 19 | 20 | Vector2 scrollPosition = Vector2.zero; 21 | 22 | void OnFocus() 23 | { 24 | folderTemplate = TidyUpCore.LoadSetting(); //LoadSetting only when focus to reduce some redundancy 25 | list = folderTemplate.folderTemplateList; 26 | 27 | // "target" can be any class derived from ScriptableObject 28 | // (could be EditorWindow, MonoBehaviour, etc) 29 | target = this; 30 | serializedObject = new SerializedObject(target); 31 | folderTemplateProperty = serializedObject.FindProperty("list"); 32 | } 33 | 34 | void OnGUI() 35 | { 36 | scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false); //Dynamic Scrollbar 37 | 38 | GUILayout.Label("Base Settings", EditorStyles.boldLabel); 39 | GUILayout.Space(10); 40 | 41 | #region Top Setting Group 42 | EditorGUILayout.BeginHorizontal(); GUILayout.Space(2); //Top Setting Group 43 | if (GUILayout.Button("Import Setting")) 44 | { 45 | TidyUpCore.ImportSetting(); 46 | 47 | //To refresh the UI Immediately 48 | this.Close(); //Destroy window resource 49 | TidyUp.Options(); //Instantiate new instance 50 | } 51 | if (GUILayout.Button("Export Setting")) 52 | { 53 | TidyUpCore.ExportSetting(folderTemplate); 54 | } 55 | GUILayout.Space(20); 56 | if (GUILayout.Button("Reset")) 57 | { 58 | this.Close(); //Destroy window resource 59 | TidyUpCore.RestSetting(); 60 | TidyUp.Options(); //Instantiate new instance 61 | } 62 | GUILayout.Space(2); EditorGUILayout.EndHorizontal(); 63 | #endregion 64 | 65 | 66 | #region Folder Template Setting 67 | GUILayout.Space(10); //Folder Template Setting 68 | EditorGUILayout.PropertyField(folderTemplateProperty, new GUIContent("Folders Template List"), true); // True means show children 69 | serializedObject.ApplyModifiedProperties(); // Remember to apply modified properties 70 | TidyUpCore.ClearConsole(); //Clear Console Just to skip serializedObject Destroyed msg! 71 | #endregion 72 | 73 | 74 | #region Button Setting Group 75 | GUILayout.Space(10); //Button Setting Group 76 | EditorGUILayout.BeginHorizontal(); GUILayout.Space(Screen.width / 4); 77 | GUI.backgroundColor = Color.grey; 78 | if (GUILayout.Button("Save Settings", GUILayout.Width(Screen.width / 2), GUILayout.Height(30))) 79 | { 80 | TidyUpCore.StoreSetting(folderTemplate); 81 | } 82 | GUILayout.Space(10); EditorGUILayout.EndHorizontal(); 83 | #endregion 84 | 85 | GUILayout.EndScrollView(); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Tidy Up 🎮 3 |

4 | 5 | **TidyUp** is a free Extensions for the [Unity][3] Engine Editor, written in **C#** . 6 |

7 |

8 | 9 | **TidyUp** is powerful yet easy to use visual organising toolkit designed 10 | to organise your creative house with the growing of your project! 11 | and help you bring your game Asset to life in the shortest possible time. 12 | 13 | 14 | ## Table Of Contents :book: :construction: 15 | - [Who is this tool for?](https://github.com/Nutshell-Hack/Tidy-Up#who-is-this-tool-for) 16 | - [Key features](https://github.com/Nutshell-Hack/Tidy-Up#key-features) 17 | - [Download](https://github.com/Nutshell-Hack/Tidy-Up#download) 18 | - [Software](https://github.com/Nutshell-Hack/Tidy-Up#software-space_invader) 19 | - [How to contribute](https://github.com/Nutshell-Hack/Tidy-Up#how-to-contribute-octocat) 20 | - [To Do List](https://github.com/Nutshell-Hack/Tidy-Up#to-do-list-clipboard) 21 | - [License](https://github.com/Nutshell-Hack/Tidy-Up#copyright---pencil) 22 | 23 | ## Who is this tool for? 24 | Basically for anyone with a game idea but not the time, 25 | Whether you're a programmer, game designer, texture artist or 3D modeller,
26 | Whether you urgently need to create a new Unity3D project or even you work on your existing project and things get messy but you don't want to spend a lot of time organising folder structure,
27 | **TidyUp** is probably the tool you have been waiting for. 28 | 29 | ## Key features: 30 | - Initialize Project Folders 31 | - Clean Up My Mess 32 | - Create My Own Style 33 | - Import/Export Setting 34 | - Reset Setting 35 | 36 | ## Download 37 | Download from the Unity Asset Store [here][1]. The newest release can be found in the /Builds/ folder or under [releases][2]. 38 | 39 | ##Software :space_invader: 40 | This project runs on the [Unity][3] engine. 41 | Make sure to have the newest version installed before running the project. 42 | 43 | The Unity project folder is called "Tidy Up".
44 | The Source Code project folder is called "Lib/TidyUp". 45 | 46 | ## How to contribute :octocat: 47 | Contributions welcome! Read the [contribution guidelines][4] first. 48 | 49 | ## TO-DO List :clipboard: 50 | Contribute some ;) 51 | 52 | ## Copyright :pencil: 53 | [![MIT Licence][5]][6] 54 | 55 | This project is released into the public domain. For more information see [LICENSE][7]. 56 | 57 | [1]: http://u3d.as/EVL 58 | [2]: https://github.com/Nutshell-Hack/Tidy-Up/releases 59 | [3]: http://unity3d.com "Unity Website" 60 | [4]: https://guides.github.com/activities/contributing-to-open-source 61 | [5]: https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000 62 | [6]: https://opensource.org/licenses/mit-license.php 63 | [7]: /LICENSE 64 | -------------------------------------------------------------------------------- /Resource/Logo/TidyUp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/TidyUp.jpg -------------------------------------------------------------------------------- /Resource/Logo/W4mj5F.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/W4mj5F.jpg -------------------------------------------------------------------------------- /Resource/Logo/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/background.jpg -------------------------------------------------------------------------------- /Resource/Logo/fb bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/fb bg.png -------------------------------------------------------------------------------- /Resource/Logo/key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/key.png -------------------------------------------------------------------------------- /Resource/Logo/large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/large.png -------------------------------------------------------------------------------- /Resource/Logo/logo fonts.txt: -------------------------------------------------------------------------------- 1 | strokeybacon 2 | 3 | audiowide 4 | 5 | helvetica -------------------------------------------------------------------------------- /Resource/Logo/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/small.png -------------------------------------------------------------------------------- /Resource/Logo/zjHl2lgef9cYrQL0JFa7kzbw2vuCrBJMmRnJ3jd9OXdE9g5shnN1i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Logo/zjHl2lgef9cYrQL0JFa7kzbw2vuCrBJMmRnJ3jd9OXdE9g5shnN1i.jpg -------------------------------------------------------------------------------- /Resource/Screenshot/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/1.jpg -------------------------------------------------------------------------------- /Resource/Screenshot/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/2.jpg -------------------------------------------------------------------------------- /Resource/Screenshot/large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/large.png -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/Clean.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/Clean.PNG -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/after.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/after.PNG -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/before.png -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/dirty.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/dirty.PNG -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/empty.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/empty.PNG -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/setting.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/setting.PNG -------------------------------------------------------------------------------- /Resource/Screenshot/shoot/topbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Resource/Screenshot/shoot/topbar.png -------------------------------------------------------------------------------- /Resource/description.txt: -------------------------------------------------------------------------------- 1 | TidyUp is powerful yet easy to use visual organising toolkit designed 2 | to help you bring your game Asset to life in the shortest possible time. 3 |

4 | 5 | Whether you're a programmer, game designer, texture artist or 3D modeller,
6 | TidyUp is a great toolkit help you to organise your creative house 7 | with the growing of your project! 8 |

9 | 10 | Key features:
11 | - Initialize Project Folders
12 | - Clean Up My Mess
13 | - Create My Own Style
14 | - Import/Export Setting
15 | - Reset Setting
16 | 17 | 18 |

19 | Who is this tool for? 20 |
21 | Basically for anyone with a game idea but not the time, 22 | Whether you urgently need to create a new Unity3D project or even you work on your existing project and things get messy but you don't want to spend a lot of time organising folder structure,
23 | TidyUp is probably the tool you have been waiting for. 24 |

25 | This project is hosted on GitHub,
26 | where we would love to have your feedback through its Issue system.
27 | Also, If you want to contribute to a project your help is very welcome. 28 | Enjoy :) -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6ac40afac9dbce478dd912aa662dbde 3 | folderAsset: yes 4 | timeCreated: 1480877300 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cad7294338398b84289b3cf313152940 3 | folderAsset: yes 4 | timeCreated: 1480877300 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreTools.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreTools.dll -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreTools.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f02b3fe0a866fca419671914a860554a 3 | PluginImporter: 4 | serializedVersion: 1 5 | iconMap: {} 6 | executionOrder: {} 7 | isPreloaded: 0 8 | platformData: 9 | Any: 10 | enabled: 1 11 | settings: {} 12 | userData: 13 | assetBundleName: 14 | assetBundleVariant: 15 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/AssetStoreToolsExtra.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07e97bd03b7bdeb40bbc176326cd8d7a 3 | PluginImporter: 4 | serializedVersion: 1 5 | iconMap: {} 6 | executionOrder: {} 7 | isPreloaded: 0 8 | platformData: 9 | Any: 10 | enabled: 0 11 | settings: {} 12 | Editor: 13 | enabled: 1 14 | settings: 15 | DefaultValueInitialized: true 16 | WindowsStoreApps: 17 | enabled: 0 18 | settings: 19 | CPU: AnyCPU 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Tidy Up/Assets/AssetStoreTools/Editor/DroidSansMono.ttf -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/DroidSansMono.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 928f503de488e44408a8625d75d54c61 3 | TrueTypeFontImporter: 4 | serializedVersion: 2 5 | fontSize: 16 6 | forceTextureCase: -2 7 | characterSpacing: 1 8 | characterPadding: 0 9 | includeFontData: 1 10 | use2xBehaviour: 0 11 | fontNames: [] 12 | customCharacters: 13 | fontRenderingMode: 0 14 | userData: 15 | assetBundleName: 16 | assetBundleVariant: 17 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Tidy Up/Assets/AssetStoreTools/Editor/icon.png -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Editor/icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ef5b3d0acd79c3499f502f1b991678a 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | cubemapConvolution: 0 24 | cubemapConvolutionSteps: 8 25 | cubemapConvolutionExponent: 1.5 26 | seamlessCubemap: 0 27 | textureFormat: -1 28 | maxTextureSize: 1024 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | rGBM: 0 37 | compressionQuality: 50 38 | spriteMode: 0 39 | spriteExtrude: 1 40 | spriteMeshType: 1 41 | alignment: 0 42 | spritePivot: {x: .5, y: .5} 43 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 44 | spritePixelsToUnits: 100 45 | alphaIsTransparency: 0 46 | textureType: -1 47 | buildTargetSettings: [] 48 | spriteSheet: 49 | sprites: [] 50 | spritePackingTag: 51 | userData: 52 | assetBundleName: 53 | assetBundleVariant: 54 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Labels.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: -547254688, guid: f02b3fe0a866fca419671914a860554a, type: 3} 12 | m_Name: Labels 13 | m_EditorClassIdentifier: 14 | m_Labels: [] 15 | -------------------------------------------------------------------------------- /Tidy Up/Assets/AssetStoreTools/Labels.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08ae0258371a12f449bb7d06f46e4f03 3 | timeCreated: 1480877363 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TestScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_PVSObjectsArray: [] 8 | m_PVSPortalsArray: [] 9 | m_OcclusionBakeSettings: 10 | smallestOccluder: 5 11 | smallestHole: 0.25 12 | backfaceThreshold: 100 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 7 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | m_IndirectSpecularColor: {r: 0.44692534, g: 0.49678725, b: 0.57508564, a: 1} 41 | --- !u!157 &3 42 | LightmapSettings: 43 | m_ObjectHideFlags: 0 44 | serializedVersion: 7 45 | m_GIWorkflowMode: 0 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 1 55 | m_LightmapEditorSettings: 56 | serializedVersion: 4 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_DirectLightInLightProbes: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_LightingDataAsset: {fileID: 0} 75 | m_RuntimeCPUUsage: 25 76 | --- !u!196 &4 77 | NavMeshSettings: 78 | serializedVersion: 2 79 | m_ObjectHideFlags: 0 80 | m_BuildSettings: 81 | serializedVersion: 2 82 | agentRadius: 0.5 83 | agentHeight: 2 84 | agentSlope: 45 85 | agentClimb: 0.4 86 | ledgeDropHeight: 0 87 | maxJumpAcrossDistance: 0 88 | accuratePlacement: 0 89 | minRegionArea: 2 90 | cellSize: 0.16666667 91 | manualCellSize: 0 92 | m_NavMeshData: {fileID: 0} 93 | --- !u!1 &571628806 94 | GameObject: 95 | m_ObjectHideFlags: 0 96 | m_PrefabParentObject: {fileID: 0} 97 | m_PrefabInternal: {fileID: 0} 98 | serializedVersion: 4 99 | m_Component: 100 | - 4: {fileID: 571628811} 101 | - 20: {fileID: 571628810} 102 | - 92: {fileID: 571628809} 103 | - 124: {fileID: 571628808} 104 | - 81: {fileID: 571628807} 105 | m_Layer: 0 106 | m_Name: Main Camera 107 | m_TagString: MainCamera 108 | m_Icon: {fileID: 0} 109 | m_NavMeshLayer: 0 110 | m_StaticEditorFlags: 0 111 | m_IsActive: 1 112 | --- !u!81 &571628807 113 | AudioListener: 114 | m_ObjectHideFlags: 0 115 | m_PrefabParentObject: {fileID: 0} 116 | m_PrefabInternal: {fileID: 0} 117 | m_GameObject: {fileID: 571628806} 118 | m_Enabled: 1 119 | --- !u!124 &571628808 120 | Behaviour: 121 | m_ObjectHideFlags: 0 122 | m_PrefabParentObject: {fileID: 0} 123 | m_PrefabInternal: {fileID: 0} 124 | m_GameObject: {fileID: 571628806} 125 | m_Enabled: 1 126 | --- !u!92 &571628809 127 | Behaviour: 128 | m_ObjectHideFlags: 0 129 | m_PrefabParentObject: {fileID: 0} 130 | m_PrefabInternal: {fileID: 0} 131 | m_GameObject: {fileID: 571628806} 132 | m_Enabled: 1 133 | --- !u!20 &571628810 134 | Camera: 135 | m_ObjectHideFlags: 0 136 | m_PrefabParentObject: {fileID: 0} 137 | m_PrefabInternal: {fileID: 0} 138 | m_GameObject: {fileID: 571628806} 139 | m_Enabled: 1 140 | serializedVersion: 2 141 | m_ClearFlags: 1 142 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 143 | m_NormalizedViewPortRect: 144 | serializedVersion: 2 145 | x: 0 146 | y: 0 147 | width: 1 148 | height: 1 149 | near clip plane: 0.3 150 | far clip plane: 1000 151 | field of view: 60 152 | orthographic: 0 153 | orthographic size: 5 154 | m_Depth: -1 155 | m_CullingMask: 156 | serializedVersion: 2 157 | m_Bits: 4294967295 158 | m_RenderingPath: -1 159 | m_TargetTexture: {fileID: 0} 160 | m_TargetDisplay: 0 161 | m_TargetEye: 3 162 | m_HDR: 0 163 | m_OcclusionCulling: 1 164 | m_StereoConvergence: 10 165 | m_StereoSeparation: 0.022 166 | m_StereoMirrorMode: 0 167 | --- !u!4 &571628811 168 | Transform: 169 | m_ObjectHideFlags: 0 170 | m_PrefabParentObject: {fileID: 0} 171 | m_PrefabInternal: {fileID: 0} 172 | m_GameObject: {fileID: 571628806} 173 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 174 | m_LocalPosition: {x: 0, y: 1, z: -10} 175 | m_LocalScale: {x: 1, y: 1, z: 1} 176 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 177 | m_Children: [] 178 | m_Father: {fileID: 0} 179 | m_RootOrder: 0 180 | --- !u!1 &678198763 181 | GameObject: 182 | m_ObjectHideFlags: 0 183 | m_PrefabParentObject: {fileID: 0} 184 | m_PrefabInternal: {fileID: 0} 185 | serializedVersion: 4 186 | m_Component: 187 | - 4: {fileID: 678198765} 188 | - 108: {fileID: 678198764} 189 | - 114: {fileID: 678198769} 190 | - 114: {fileID: 678198768} 191 | - 114: {fileID: 678198767} 192 | - 114: {fileID: 678198766} 193 | m_Layer: 0 194 | m_Name: Directional Light 195 | m_TagString: Untagged 196 | m_Icon: {fileID: 0} 197 | m_NavMeshLayer: 0 198 | m_StaticEditorFlags: 0 199 | m_IsActive: 1 200 | --- !u!108 &678198764 201 | Light: 202 | m_ObjectHideFlags: 0 203 | m_PrefabParentObject: {fileID: 0} 204 | m_PrefabInternal: {fileID: 0} 205 | m_GameObject: {fileID: 678198763} 206 | m_Enabled: 1 207 | serializedVersion: 7 208 | m_Type: 1 209 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 210 | m_Intensity: 1 211 | m_Range: 10 212 | m_SpotAngle: 30 213 | m_CookieSize: 10 214 | m_Shadows: 215 | m_Type: 2 216 | m_Resolution: -1 217 | m_CustomResolution: -1 218 | m_Strength: 1 219 | m_Bias: 0.05 220 | m_NormalBias: 0.4 221 | m_NearPlane: 0.2 222 | m_Cookie: {fileID: 0} 223 | m_DrawHalo: 0 224 | m_Flare: {fileID: 0} 225 | m_RenderMode: 0 226 | m_CullingMask: 227 | serializedVersion: 2 228 | m_Bits: 4294967295 229 | m_Lightmapping: 4 230 | m_AreaSize: {x: 1, y: 1} 231 | m_BounceIntensity: 1 232 | m_ShadowRadius: 0 233 | m_ShadowAngle: 0 234 | --- !u!4 &678198765 235 | Transform: 236 | m_ObjectHideFlags: 0 237 | m_PrefabParentObject: {fileID: 0} 238 | m_PrefabInternal: {fileID: 0} 239 | m_GameObject: {fileID: 678198763} 240 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 241 | m_LocalPosition: {x: 0, y: 3, z: 0} 242 | m_LocalScale: {x: 1, y: 1, z: 1} 243 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 244 | m_Children: [] 245 | m_Father: {fileID: 0} 246 | m_RootOrder: 1 247 | --- !u!114 &678198766 248 | MonoBehaviour: 249 | m_ObjectHideFlags: 0 250 | m_PrefabParentObject: {fileID: 0} 251 | m_PrefabInternal: {fileID: 0} 252 | m_GameObject: {fileID: 678198763} 253 | m_Enabled: 1 254 | m_EditorHideFlags: 0 255 | m_Script: {fileID: 11500000, guid: cf456d2130d78d142a608da47054e332, type: 3} 256 | m_Name: 257 | m_EditorClassIdentifier: 258 | --- !u!114 &678198767 259 | MonoBehaviour: 260 | m_ObjectHideFlags: 0 261 | m_PrefabParentObject: {fileID: 0} 262 | m_PrefabInternal: {fileID: 0} 263 | m_GameObject: {fileID: 678198763} 264 | m_Enabled: 1 265 | m_EditorHideFlags: 0 266 | m_Script: {fileID: 11500000, guid: edc3b360f6b58814b92dc98fe9fe78a0, type: 3} 267 | m_Name: 268 | m_EditorClassIdentifier: 269 | --- !u!114 &678198768 270 | MonoBehaviour: 271 | m_ObjectHideFlags: 0 272 | m_PrefabParentObject: {fileID: 0} 273 | m_PrefabInternal: {fileID: 0} 274 | m_GameObject: {fileID: 678198763} 275 | m_Enabled: 1 276 | m_EditorHideFlags: 0 277 | m_Script: {fileID: 11500000, guid: b12da12d61255f6419554c76193062b3, type: 3} 278 | m_Name: 279 | m_EditorClassIdentifier: 280 | --- !u!114 &678198769 281 | MonoBehaviour: 282 | m_ObjectHideFlags: 0 283 | m_PrefabParentObject: {fileID: 0} 284 | m_PrefabInternal: {fileID: 0} 285 | m_GameObject: {fileID: 678198763} 286 | m_Enabled: 1 287 | m_EditorHideFlags: 0 288 | m_Script: {fileID: 11500000, guid: e1b32c91590432c4e91f1fce9b035c09, type: 3} 289 | m_Name: 290 | m_EditorClassIdentifier: 291 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TestScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df882674c731f3c49a8fe7bf1c8a2102 3 | timeCreated: 1479825696 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 085b45a4b8cc4b54a86fd732dd70365f 3 | folderAsset: yes 4 | timeCreated: 1479819793 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Omar Al-Sabek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99bd794a1a9a7c14a93eb0d1a0474a2b 3 | timeCreated: 1479825794 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a4de7b79a35a334aa966ca6c5d1676b 3 | folderAsset: yes 4 | timeCreated: 1479822172 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24b4e6c30d150ea448b96e2850327daf 3 | folderAsset: yes 4 | timeCreated: 1479822183 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins/Editor/Data.json: -------------------------------------------------------------------------------- 1 | { 2 | "folderTemplateList": [ 3 | { 4 | "folderName": "_Scenes", 5 | "folderPath": "\\", 6 | "assetType": 7 7 | }, 8 | { 9 | "folderName": "_ImportedAssets", 10 | "folderPath": "\\", 11 | "assetType": 9 12 | }, 13 | { 14 | "folderName": "Animations", 15 | "folderPath": "\\", 16 | "assetType": 0 17 | }, 18 | { 19 | "folderName": "Audio", 20 | "folderPath": "\\", 21 | "assetType": 1 22 | }, 23 | { 24 | "folderName": "Fonts", 25 | "folderPath": "\\", 26 | "assetType": 2 27 | }, 28 | { 29 | "folderName": "Materials", 30 | "folderPath": "\\Graphics\\", 31 | "assetType": 3 32 | }, 33 | { 34 | "folderName": "Models", 35 | "folderPath": "\\Graphics\\", 36 | "assetType": 4 37 | }, 38 | { 39 | "folderName": "Prefabs", 40 | "folderPath": "\\", 41 | "assetType": 5 42 | }, 43 | { 44 | "folderName": "Scripts", 45 | "folderPath": "\\", 46 | "assetType": 8 47 | }, 48 | { 49 | "folderName": "Textures", 50 | "folderPath": "\\Graphics\\", 51 | "assetType": 6 52 | } 53 | ] 54 | } -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins/Editor/Data.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 991ca17bf95e8a849ac9d90324ed386d 3 | timeCreated: 1480015428 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins/Editor/TidyUp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nutshell-Hack/Tidy-Up/c834278ea45c203d921660d65d019fea8c94f9b0/Tidy Up/Assets/TidyUp/Plugins/Editor/TidyUp.dll -------------------------------------------------------------------------------- /Tidy Up/Assets/TidyUp/Plugins/Editor/TidyUp.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4eaaac5f7e3980a4b83ed7712688f1fd 3 | timeCreated: 1480751427 4 | licenseType: Pro 5 | PluginImporter: 6 | serializedVersion: 1 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | platformData: 11 | Any: 12 | enabled: 1 13 | settings: {} 14 | Editor: 15 | enabled: 0 16 | settings: 17 | DefaultValueInitialized: true 18 | WindowsStoreApps: 19 | enabled: 0 20 | settings: 21 | CPU: AnyCPU 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Tidy Up/Assets/VSCode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f975823e250173e46b5cd26a8da9ae3c 3 | folderAsset: yes 4 | timeCreated: 1479819768 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/VSCode/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d0aa2ea87e4246f3b7fd58b757ff82c 3 | folderAsset: yes 4 | timeCreated: 1444652904 5 | licenseType: Store 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/VSCode/Plugins/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47b6573edc17b4b19b6f06515ff01748 3 | folderAsset: yes 4 | timeCreated: 1444652910 5 | licenseType: Store 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Tidy Up/Assets/VSCode/Plugins/Editor/VSCode.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Unity VSCode Support 3 | * 4 | * Seamless support for Microsoft Visual Studio Code in Unity 5 | * 6 | * Version: 7 | * 2.7 8 | * 9 | * Authors: 10 | * Matthew Davey 11 | */ 12 | namespace dotBunny.Unity 13 | { 14 | using System; 15 | using System.IO; 16 | using System.Text.RegularExpressions; 17 | using UnityEditor; 18 | using UnityEngine; 19 | 20 | [InitializeOnLoad] 21 | public static class VSCode 22 | { 23 | /// 24 | /// Current Version Number 25 | /// 26 | public const float Version = 2.7f; 27 | 28 | /// 29 | /// Current Version Code 30 | /// 31 | public const string VersionCode = "-RELEASE"; 32 | 33 | /// 34 | /// Download URL for Unity Debbuger 35 | /// 36 | public const string UnityDebuggerURL = "https://raw.githubusercontent.com/dotBunny/VSCode-Test/master/Downloads/unity-debug-101.vsix"; 37 | 38 | #region Properties 39 | 40 | /// 41 | /// Path to VSCode executable 42 | public static string CodePath 43 | { 44 | get 45 | { 46 | string current = EditorPrefs.GetString("VSCode_CodePath", ""); 47 | if(current == "" || !VSCodeExists(current)) 48 | { 49 | //Value not set, set to "" or current path is invalid, try to autodetect it 50 | //If autodetect fails, a error will be printed and the default value set 51 | EditorPrefs.SetString("VSCode_CodePath", AutodetectCodePath()); 52 | //If its not installed or the install folder isn't a "normal" one, 53 | //AutodetectCodePath will print a error message to the Unity Console 54 | } 55 | return EditorPrefs.GetString("VSCode_CodePath", current); 56 | } 57 | set 58 | { 59 | EditorPrefs.SetString("VSCode_CodePath", value); 60 | } 61 | } 62 | 63 | /// 64 | /// Get Program Files Path 65 | /// 66 | /// The platforms "Program Files" path. 67 | static string ProgramFilesx86() 68 | { 69 | if( 8 == IntPtr.Size 70 | || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) 71 | { 72 | return Environment.GetEnvironmentVariable("ProgramFiles(x86)"); 73 | } 74 | 75 | return Environment.GetEnvironmentVariable("ProgramFiles"); 76 | } 77 | 78 | 79 | /// 80 | /// Should debug information be displayed in the Unity terminal? 81 | /// 82 | public static bool Debug 83 | { 84 | get 85 | { 86 | return EditorPrefs.GetBool("VSCode_Debug", false); 87 | } 88 | set 89 | { 90 | EditorPrefs.SetBool("VSCode_Debug", value); 91 | } 92 | } 93 | 94 | /// 95 | /// Is the Visual Studio Code Integration Enabled? 96 | /// 97 | /// 98 | /// We do not want to automatically turn it on, for in larger projects not everyone is using VSCode 99 | /// 100 | public static bool Enabled 101 | { 102 | get 103 | { 104 | return EditorPrefs.GetBool("VSCode_Enabled", false); 105 | } 106 | set 107 | { 108 | // When turning the plugin on, we should remove all the previous project files 109 | if (!Enabled && value) 110 | { 111 | ClearProjectFiles(); 112 | } 113 | EditorPrefs.SetBool("VSCode_Enabled", value); 114 | } 115 | } 116 | public static bool UseUnityDebugger 117 | { 118 | get 119 | { 120 | return EditorPrefs.GetBool("VSCode_UseUnityDebugger", false); 121 | } 122 | set 123 | { 124 | if ( value != UseUnityDebugger ) { 125 | 126 | // Set value 127 | EditorPrefs.SetBool("VSCode_UseUnityDebugger", value); 128 | 129 | // Do not write the launch JSON file because the debugger uses its own 130 | if ( value ) { 131 | WriteLaunchFile = false; 132 | } 133 | 134 | // Update launch file 135 | UpdateLaunchFile(); 136 | } 137 | } 138 | } 139 | 140 | /// 141 | /// Should the launch.json file be written? 142 | /// 143 | /// 144 | /// Useful to disable if someone has their own custom one rigged up 145 | /// 146 | public static bool WriteLaunchFile 147 | { 148 | get 149 | { 150 | return EditorPrefs.GetBool("VSCode_WriteLaunchFile", true); 151 | } 152 | set 153 | { 154 | EditorPrefs.SetBool("VSCode_WriteLaunchFile", value); 155 | } 156 | } 157 | 158 | /// 159 | /// Should the plugin automatically update itself. 160 | /// 161 | static bool AutomaticUpdates 162 | { 163 | get 164 | { 165 | return EditorPrefs.GetBool("VSCode_AutomaticUpdates", false); 166 | } 167 | set 168 | { 169 | EditorPrefs.SetBool("VSCode_AutomaticUpdates", value); 170 | } 171 | } 172 | 173 | static float GitHubVersion 174 | { 175 | get 176 | { 177 | return EditorPrefs.GetFloat("VSCode_GitHubVersion", Version); 178 | } 179 | set 180 | { 181 | EditorPrefs.SetFloat("VSCode_GitHubVersion", value); 182 | } 183 | } 184 | 185 | /// 186 | /// When was the last time that the plugin was updated? 187 | /// 188 | static DateTime LastUpdate 189 | { 190 | get 191 | { 192 | // Feature creation date. 193 | DateTime lastTime = new DateTime(2015, 10, 8); 194 | 195 | if (EditorPrefs.HasKey("VSCode_LastUpdate")) 196 | { 197 | DateTime.TryParse(EditorPrefs.GetString("VSCode_LastUpdate"), out lastTime); 198 | } 199 | return lastTime; 200 | } 201 | set 202 | { 203 | EditorPrefs.SetString("VSCode_LastUpdate", value.ToString()); 204 | } 205 | } 206 | 207 | /// 208 | /// Quick reference to the VSCode launch settings file 209 | /// 210 | static string LaunchPath 211 | { 212 | get 213 | { 214 | return SettingsFolder + System.IO.Path.DirectorySeparatorChar + "launch.json"; 215 | } 216 | } 217 | 218 | /// 219 | /// The full path to the project 220 | /// 221 | static string ProjectPath 222 | { 223 | get 224 | { 225 | return System.IO.Path.GetDirectoryName(UnityEngine.Application.dataPath); 226 | } 227 | } 228 | 229 | /// 230 | /// Should the script editor be reverted when quiting Unity. 231 | /// 232 | /// 233 | /// Useful for environments where you do not use VSCode for everything. 234 | /// 235 | static bool RevertExternalScriptEditorOnExit 236 | { 237 | get 238 | { 239 | return EditorPrefs.GetBool("VSCode_RevertScriptEditorOnExit", true); 240 | } 241 | set 242 | { 243 | EditorPrefs.SetBool("VSCode_RevertScriptEditorOnExit", value); 244 | } 245 | } 246 | 247 | /// 248 | /// Quick reference to the VSCode settings folder 249 | /// 250 | static string SettingsFolder 251 | { 252 | get 253 | { 254 | return ProjectPath + System.IO.Path.DirectorySeparatorChar + ".vscode"; 255 | } 256 | } 257 | 258 | static string SettingsPath 259 | { 260 | 261 | get 262 | { 263 | return SettingsFolder + System.IO.Path.DirectorySeparatorChar + "settings.json"; 264 | } 265 | } 266 | 267 | static int UpdateTime 268 | { 269 | get 270 | { 271 | return EditorPrefs.GetInt("VSCode_UpdateTime", 7); 272 | } 273 | set 274 | { 275 | EditorPrefs.SetInt("VSCode_UpdateTime", value); 276 | } 277 | } 278 | 279 | #endregion 280 | 281 | /// 282 | /// Integration Constructor 283 | /// 284 | static VSCode() 285 | { 286 | if (Enabled) 287 | { 288 | UpdateUnityPreferences(true); 289 | UpdateLaunchFile(); 290 | 291 | // Add Update Check 292 | DateTime targetDate = LastUpdate.AddDays(UpdateTime); 293 | if (DateTime.Now >= targetDate && AutomaticUpdates) 294 | { 295 | CheckForUpdate(); 296 | } 297 | } 298 | 299 | // Event for when script is reloaded 300 | System.AppDomain.CurrentDomain.DomainUnload += System_AppDomain_CurrentDomain_DomainUnload; 301 | } 302 | static void System_AppDomain_CurrentDomain_DomainUnload(object sender, System.EventArgs e) 303 | { 304 | if (Enabled && RevertExternalScriptEditorOnExit) 305 | { 306 | UpdateUnityPreferences(false); 307 | } 308 | } 309 | 310 | 311 | #region Public Members 312 | 313 | /// 314 | /// Force Unity To Write Project File 315 | /// 316 | /// 317 | /// Reflection! 318 | /// 319 | public static void SyncSolution() 320 | { 321 | System.Type T = System.Type.GetType("UnityEditor.SyncVS,UnityEditor"); 322 | System.Reflection.MethodInfo SyncSolution = T.GetMethod("SyncSolution", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); 323 | SyncSolution.Invoke(null, null); 324 | 325 | } 326 | 327 | /// 328 | /// Update the solution files so that they work with VS Code 329 | /// 330 | public static void UpdateSolution() 331 | { 332 | // No need to process if we are not enabled 333 | if (!VSCode.Enabled) 334 | { 335 | return; 336 | } 337 | 338 | if (VSCode.Debug) 339 | { 340 | UnityEngine.Debug.Log("[VSCode] Updating Solution & Project Files"); 341 | } 342 | 343 | var currentDirectory = Directory.GetCurrentDirectory(); 344 | var solutionFiles = Directory.GetFiles(currentDirectory, "*.sln"); 345 | var projectFiles = Directory.GetFiles(currentDirectory, "*.csproj"); 346 | 347 | foreach (var filePath in solutionFiles) 348 | { 349 | string content = File.ReadAllText(filePath); 350 | content = ScrubSolutionContent(content); 351 | 352 | File.WriteAllText(filePath, content); 353 | 354 | ScrubFile(filePath); 355 | } 356 | 357 | foreach (var filePath in projectFiles) 358 | { 359 | string content = File.ReadAllText(filePath); 360 | content = ScrubProjectContent(content); 361 | 362 | File.WriteAllText(filePath, content); 363 | 364 | ScrubFile(filePath); 365 | } 366 | 367 | } 368 | 369 | #endregion 370 | 371 | #region Private Members 372 | 373 | /// 374 | /// Try to find automatically the installation of VSCode 375 | /// 376 | static string AutodetectCodePath() 377 | { 378 | string[] possiblePaths = 379 | #if UNITY_EDITOR_OSX 380 | { 381 | "/Applications/Visual Studio Code.app", 382 | "/Applications/Visual Studio Code - Insiders.app" 383 | }; 384 | #elif UNITY_EDITOR_WIN 385 | { 386 | ProgramFilesx86() + Path.DirectorySeparatorChar + "Microsoft VS Code" 387 | + Path.DirectorySeparatorChar + "bin" + Path.DirectorySeparatorChar + "code.cmd", 388 | ProgramFilesx86() + Path.DirectorySeparatorChar + "Microsoft VS Code Insiders" 389 | + Path.DirectorySeparatorChar + "bin" + Path.DirectorySeparatorChar + "code-insiders.cmd" 390 | }; 391 | #else 392 | { 393 | "/usr/bin/code", 394 | "/bin/code", 395 | "/usr/local/bin/code" 396 | }; 397 | #endif 398 | for(int i = 0; i < possiblePaths.Length; i++) 399 | { 400 | if(VSCodeExists(possiblePaths[i])) 401 | { 402 | return possiblePaths[i]; 403 | } 404 | } 405 | PrintNotFound(possiblePaths[0]); 406 | return possiblePaths[0]; //returns the default one, printing a warning message 'executable not found' 407 | } 408 | 409 | /// 410 | /// Call VSCode with arguments 411 | /// 412 | static void CallVSCode(string args) 413 | { 414 | System.Diagnostics.Process proc = new System.Diagnostics.Process(); 415 | if(!VSCodeExists(CodePath)) 416 | { 417 | PrintNotFound(CodePath); 418 | return; 419 | } 420 | 421 | #if UNITY_EDITOR_OSX 422 | proc.StartInfo.FileName = "open"; 423 | 424 | // Check the path to see if there is "Insiders" 425 | if (CodePath.Contains("Insiders")) 426 | { 427 | proc.StartInfo.Arguments = " -n -b \"com.microsoft.VSCodeInsiders\" --args " + args.Replace(@"\", @"\\"); 428 | } 429 | else 430 | { 431 | proc.StartInfo.Arguments = " -n -b \"com.microsoft.VSCode\" --args " + args.Replace(@"\", @"\\"); 432 | } 433 | 434 | proc.StartInfo.UseShellExecute = false; 435 | #elif UNITY_EDITOR_WIN 436 | proc.StartInfo.FileName = CodePath; 437 | proc.StartInfo.Arguments = args; 438 | proc.StartInfo.UseShellExecute = false; 439 | #else 440 | proc.StartInfo.FileName = CodePath; 441 | proc.StartInfo.Arguments = args.Replace(@"\", @"\\"); 442 | proc.StartInfo.UseShellExecute = false; 443 | #endif 444 | proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 445 | proc.StartInfo.CreateNoWindow = true; 446 | proc.StartInfo.RedirectStandardOutput = true; 447 | proc.Start(); 448 | } 449 | 450 | /// 451 | /// Check for Updates with GitHub 452 | /// 453 | static void CheckForUpdate() 454 | { 455 | var fileContent = string.Empty; 456 | 457 | EditorUtility.DisplayProgressBar("VSCode", "Checking for updates ...", 0.5f); 458 | 459 | // Because were not a runtime framework, lets just use the simplest way of doing this 460 | try 461 | { 462 | using (var webClient = new System.Net.WebClient()) 463 | { 464 | fileContent = webClient.DownloadString("https://raw.githubusercontent.com/dotBunny/VSCode/master/Plugins/Editor/VSCode.cs"); 465 | } 466 | } 467 | catch (Exception e) 468 | { 469 | if (Debug) 470 | { 471 | UnityEngine.Debug.Log("[VSCode] " + e.Message); 472 | 473 | } 474 | 475 | // Don't go any further if there is an error 476 | return; 477 | } 478 | finally 479 | { 480 | EditorUtility.ClearProgressBar(); 481 | } 482 | 483 | // Set the last update time 484 | LastUpdate = DateTime.Now; 485 | 486 | // Fix for oddity in downlo 487 | if (fileContent.Substring(0, 2) != "/*") 488 | { 489 | int startPosition = fileContent.IndexOf("/*", StringComparison.CurrentCultureIgnoreCase); 490 | 491 | // Jump over junk characters 492 | fileContent = fileContent.Substring(startPosition); 493 | } 494 | 495 | string[] fileExploded = fileContent.Split('\n'); 496 | if (fileExploded.Length > 7) 497 | { 498 | float github = Version; 499 | if (float.TryParse(fileExploded[6].Replace("*", "").Trim(), out github)) 500 | { 501 | GitHubVersion = github; 502 | } 503 | 504 | 505 | if (github > Version) 506 | { 507 | var GUIDs = AssetDatabase.FindAssets("t:Script VSCode"); 508 | var path = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length) + System.IO.Path.DirectorySeparatorChar + 509 | AssetDatabase.GUIDToAssetPath(GUIDs[0]).Replace('/', System.IO.Path.DirectorySeparatorChar); 510 | 511 | if (EditorUtility.DisplayDialog("VSCode Update", "A newer version of the VSCode plugin is available, would you like to update your version?", "Yes", "No")) 512 | { 513 | // Always make sure the file is writable 514 | System.IO.FileInfo fileInfo = new System.IO.FileInfo(path); 515 | fileInfo.IsReadOnly = false; 516 | 517 | // Write update file 518 | File.WriteAllText(path, fileContent); 519 | 520 | // Force update on text file 521 | AssetDatabase.ImportAsset(AssetDatabase.GUIDToAssetPath(GUIDs[0]), ImportAssetOptions.ForceUpdate); 522 | } 523 | 524 | } 525 | } 526 | } 527 | 528 | /// 529 | /// Clear out any existing project files and lingering stuff that might cause problems 530 | /// 531 | static void ClearProjectFiles() 532 | { 533 | var currentDirectory = Directory.GetCurrentDirectory(); 534 | var solutionFiles = Directory.GetFiles(currentDirectory, "*.sln"); 535 | var projectFiles = Directory.GetFiles(currentDirectory, "*.csproj"); 536 | var unityProjectFiles = Directory.GetFiles(currentDirectory, "*.unityproj"); 537 | 538 | foreach (string solutionFile in solutionFiles) 539 | { 540 | File.Delete(solutionFile); 541 | } 542 | foreach (string projectFile in projectFiles) 543 | { 544 | File.Delete(projectFile); 545 | } 546 | foreach (string unityProjectFile in unityProjectFiles) 547 | { 548 | File.Delete(unityProjectFile); 549 | } 550 | 551 | // Replace with our clean files (only in Unity 5) 552 | #if !UNITY_4_0 && !UNITY_4_1 && !UNITY_4_2 && !UNITY_4_3 && !UNITY_4_5 && !UNITY_4_6 && !UNITY_4_7 553 | SyncSolution(); 554 | #endif 555 | } 556 | 557 | /// 558 | /// Force Unity Preferences Window To Read From Settings 559 | /// 560 | static void FixUnityPreferences() 561 | { 562 | // I want that window, please and thank you 563 | System.Type T = System.Type.GetType("UnityEditor.PreferencesWindow,UnityEditor"); 564 | 565 | if (EditorWindow.focusedWindow == null) 566 | return; 567 | 568 | // Only run this when the editor window is visible (cause its what screwed us up) 569 | if (EditorWindow.focusedWindow.GetType() == T) 570 | { 571 | var window = EditorWindow.GetWindow(T, true, "Unity Preferences"); 572 | 573 | 574 | if (window == null) 575 | { 576 | if (Debug) 577 | { 578 | UnityEngine.Debug.Log("[VSCode] No Preferences Window Found (really?)"); 579 | } 580 | return; 581 | } 582 | 583 | var invokerType = window.GetType(); 584 | var invokerMethod = invokerType.GetMethod("ReadPreferences", 585 | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); 586 | 587 | if (invokerMethod != null) 588 | { 589 | invokerMethod.Invoke(window, null); 590 | } 591 | else if (Debug) 592 | { 593 | UnityEngine.Debug.Log("[VSCode] No Reflection Method Found For Preferences"); 594 | } 595 | } 596 | } 597 | 598 | /// 599 | /// Determine what port Unity is listening for on Windows 600 | /// 601 | static int GetDebugPort() 602 | { 603 | #if UNITY_EDITOR_WIN 604 | System.Diagnostics.Process process = new System.Diagnostics.Process(); 605 | process.StartInfo.FileName = "netstat"; 606 | process.StartInfo.Arguments = "-a -n -o -p TCP"; 607 | process.StartInfo.UseShellExecute = false; 608 | process.StartInfo.RedirectStandardOutput = true; 609 | process.Start(); 610 | 611 | string output = process.StandardOutput.ReadToEnd(); 612 | string[] lines = output.Split('\n'); 613 | 614 | process.WaitForExit(); 615 | 616 | foreach (string line in lines) 617 | { 618 | string[] tokens = Regex.Split(line, "\\s+"); 619 | if (tokens.Length > 4) 620 | { 621 | int test = -1; 622 | int.TryParse(tokens[5], out test); 623 | 624 | if (test > 1023) 625 | { 626 | try 627 | { 628 | var p = System.Diagnostics.Process.GetProcessById(test); 629 | if (p.ProcessName == "Unity") 630 | { 631 | return test; 632 | } 633 | } 634 | catch 635 | { 636 | 637 | } 638 | } 639 | } 640 | } 641 | #else 642 | System.Diagnostics.Process process = new System.Diagnostics.Process(); 643 | process.StartInfo.FileName = "lsof"; 644 | process.StartInfo.Arguments = "-c /^Unity$/ -i 4tcp -a"; 645 | process.StartInfo.UseShellExecute = false; 646 | process.StartInfo.RedirectStandardOutput = true; 647 | process.Start(); 648 | 649 | // Not thread safe (yet!) 650 | string output = process.StandardOutput.ReadToEnd(); 651 | string[] lines = output.Split('\n'); 652 | 653 | process.WaitForExit(); 654 | 655 | foreach (string line in lines) 656 | { 657 | int port = -1; 658 | if (line.StartsWith("Unity")) 659 | { 660 | string[] portions = line.Split(new string[] { "TCP *:" }, System.StringSplitOptions.None); 661 | if (portions.Length >= 2) 662 | { 663 | Regex digitsOnly = new Regex(@"[^\d]"); 664 | string cleanPort = digitsOnly.Replace(portions[1], ""); 665 | if (int.TryParse(cleanPort, out port)) 666 | { 667 | if (port > -1) 668 | { 669 | return port; 670 | } 671 | } 672 | } 673 | } 674 | } 675 | #endif 676 | return -1; 677 | } 678 | 679 | /// 680 | /// Manually install the original Unity Debuger 681 | /// 682 | /// 683 | /// This should auto update to the latest. 684 | /// 685 | static void InstallUnityDebugger() 686 | { 687 | EditorUtility.DisplayProgressBar("VSCode", "Downloading Unity Debugger ...", 0.1f); 688 | byte[] fileContent; 689 | 690 | try 691 | { 692 | using (var webClient = new System.Net.WebClient()) 693 | { 694 | fileContent = webClient.DownloadData(UnityDebuggerURL); 695 | } 696 | } 697 | catch (Exception e) 698 | { 699 | if (Debug) 700 | { 701 | UnityEngine.Debug.Log("[VSCode] " + e.Message); 702 | } 703 | // Don't go any further if there is an error 704 | return; 705 | } 706 | finally 707 | { 708 | EditorUtility.ClearProgressBar(); 709 | } 710 | 711 | // Do we have a file to install? 712 | if ( fileContent != null ) { 713 | string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".vsix"; 714 | File.WriteAllBytes(fileName, fileContent); 715 | 716 | CallVSCode(fileName); 717 | } 718 | 719 | } 720 | 721 | // HACK: This is in until Unity can figure out why MD keeps opening even though a different program is selected. 722 | [MenuItem("Assets/Open C# Project In Code", false, 1000)] 723 | static void MenuOpenProject() 724 | { 725 | // Force the project files to be sync 726 | SyncSolution(); 727 | 728 | // Load Project 729 | CallVSCode("\"" + ProjectPath + "\" -r"); 730 | } 731 | 732 | /// 733 | /// Print a error message to the Unity Console about not finding the code executable 734 | /// 735 | static void PrintNotFound(string path) 736 | { 737 | UnityEngine.Debug.LogError("[VSCode] Code executable in '" + path + "' not found. Check your" + 738 | "Visual Studio Code installation and insert the correct path in the Preferences menu."); 739 | } 740 | 741 | [MenuItem("Assets/Open C# Project In Code", true, 1000)] 742 | static bool ValidateMenuOpenProject() 743 | { 744 | return Enabled; 745 | } 746 | 747 | /// 748 | /// VS Code Integration Preferences Item 749 | /// 750 | /// 751 | /// Contains all 3 toggles: Enable/Disable; Debug On/Off; Writing Launch File On/Off 752 | /// 753 | [PreferenceItem("VSCode")] 754 | static void VSCodePreferencesItem() 755 | { 756 | if (EditorApplication.isCompiling) 757 | { 758 | EditorGUILayout.HelpBox("Please wait for Unity to finish compiling. \nIf the window doesn't refresh, simply click on the window or move it around to cause a repaint to happen.", MessageType.Warning); 759 | return; 760 | } 761 | EditorGUILayout.BeginVertical(); 762 | 763 | EditorGUILayout.HelpBox("Support development of this plugin, follow @reapazor and @dotbunny on Twitter.", MessageType.Info); 764 | 765 | EditorGUI.BeginChangeCheck(); 766 | 767 | // Need the VS Code executable 768 | EditorGUILayout.BeginHorizontal(); 769 | EditorGUILayout.LabelField("VS Code Path", GUILayout.Width(75)); 770 | #if UNITY_5_3_OR_NEWER 771 | CodePath = EditorGUILayout.DelayedTextField(CodePath, GUILayout.ExpandWidth(true)); 772 | #else 773 | CodePath = EditorGUILayout.TextField(CodePath, GUILayout.ExpandWidth(true)); 774 | #endif 775 | GUI.SetNextControlName("PathSetButton"); 776 | if(GUILayout.Button("...", GUILayout.Height(14), GUILayout.Width(20))) 777 | { 778 | GUI.FocusControl("PathSetButton"); 779 | string path = EditorUtility.OpenFilePanel( "Visual Studio Code Executable", "", "" ); 780 | if( path.Length != 0 && File.Exists(path) || Directory.Exists(path)) 781 | { 782 | CodePath = path; 783 | } 784 | } 785 | EditorGUILayout.EndHorizontal(); 786 | EditorGUILayout.Space(); 787 | 788 | Enabled = EditorGUILayout.Toggle(new GUIContent("Enable Integration", "Should the integration work its magic for you?"), Enabled); 789 | 790 | UseUnityDebugger = EditorGUILayout.Toggle(new GUIContent("Use Unity Debugger", "Should the integration integrate with Unity's VSCode Extension (must be installed)."), UseUnityDebugger); 791 | 792 | EditorGUILayout.Space(); 793 | RevertExternalScriptEditorOnExit = EditorGUILayout.Toggle(new GUIContent("Revert Script Editor On Unload", "Should the external script editor setting be reverted to its previous setting on project unload? This is useful if you do not use Code with all your projects."),RevertExternalScriptEditorOnExit); 794 | 795 | Debug = EditorGUILayout.Toggle(new GUIContent("Output Messages To Console", "Should informational messages be sent to Unity's Console?"), Debug); 796 | 797 | WriteLaunchFile = EditorGUILayout.Toggle(new GUIContent("Always Write Launch File", "Always write the launch.json settings when entering play mode?"), WriteLaunchFile); 798 | 799 | EditorGUILayout.Space(); 800 | 801 | AutomaticUpdates = EditorGUILayout.Toggle(new GUIContent("Automatic Updates", "Should the plugin automatically update itself?"), AutomaticUpdates); 802 | 803 | UpdateTime = EditorGUILayout.IntSlider(new GUIContent("Update Timer (Days)", "After how many days should updates be checked for?"), UpdateTime, 1, 31); 804 | 805 | EditorGUILayout.Space(); 806 | EditorGUILayout.Space(); 807 | 808 | if (EditorGUI.EndChangeCheck()) 809 | { 810 | UpdateUnityPreferences(Enabled); 811 | 812 | // TODO: Force Unity To Reload Preferences 813 | // This seems to be a hick up / issue 814 | if (VSCode.Debug) 815 | { 816 | if (Enabled) 817 | { 818 | UnityEngine.Debug.Log("[VSCode] Integration Enabled"); 819 | } 820 | else 821 | { 822 | UnityEngine.Debug.Log("[VSCode] Integration Disabled"); 823 | } 824 | } 825 | } 826 | 827 | if (GUILayout.Button(new GUIContent("Force Update", "Check for updates to the plugin, right NOW!"))) 828 | { 829 | CheckForUpdate(); 830 | EditorGUILayout.EndVertical(); 831 | return; 832 | } 833 | if (GUILayout.Button(new GUIContent("Write Workspace Settings", "Output a default set of workspace settings for VSCode to use, ignoring many different types of files."))) 834 | { 835 | WriteWorkspaceSettings(); 836 | EditorGUILayout.EndVertical(); 837 | return; 838 | } 839 | EditorGUILayout.Space(); 840 | 841 | if (UseUnityDebugger) 842 | { 843 | EditorGUILayout.HelpBox("In order for the \"Use Unity Debuggger\" option to function above, you need to have installed the Unity Debugger Extension for Visual Studio Code.", MessageType.Warning); 844 | if (GUILayout.Button(new GUIContent("Install Unity Debugger", "Install the Unity Debugger Extension into Code"))) 845 | { 846 | InstallUnityDebugger(); 847 | EditorGUILayout.EndVertical(); 848 | return; 849 | } 850 | } 851 | 852 | GUILayout.FlexibleSpace(); 853 | EditorGUILayout.BeginHorizontal(); 854 | GUILayout.FlexibleSpace(); 855 | 856 | GUILayout.Label( 857 | new GUIContent( 858 | string.Format("{0:0.00}", Version) + VersionCode, 859 | "GitHub's Version @ " + string.Format("{0:0.00}", GitHubVersion))); 860 | 861 | EditorGUILayout.EndHorizontal(); 862 | EditorGUILayout.EndVertical(); 863 | } 864 | 865 | /// 866 | /// Asset Open Callback (from Unity) 867 | /// 868 | /// 869 | /// Called when Unity is about to open an asset. 870 | /// 871 | [UnityEditor.Callbacks.OnOpenAssetAttribute()] 872 | static bool OnOpenedAsset(int instanceID, int line) 873 | { 874 | // bail out if we are not using VSCode 875 | if (!Enabled) 876 | { 877 | return false; 878 | } 879 | 880 | // current path without the asset folder 881 | string appPath = ProjectPath; 882 | 883 | // determine asset that has been double clicked in the project view 884 | UnityEngine.Object selected = EditorUtility.InstanceIDToObject(instanceID); 885 | 886 | if (selected.GetType().ToString() == "UnityEditor.MonoScript" || 887 | selected.GetType().ToString() == "UnityEngine.Shader") 888 | { 889 | string completeFilepath = appPath + Path.DirectorySeparatorChar + AssetDatabase.GetAssetPath(selected); 890 | 891 | string args = null; 892 | if (line == -1) 893 | { 894 | args = "\"" + ProjectPath + "\" \"" + completeFilepath + "\" -r"; 895 | } 896 | else 897 | { 898 | args = "\"" + ProjectPath + "\" -g \"" + completeFilepath + ":" + line.ToString() + "\" -r"; 899 | } 900 | // call 'open' 901 | CallVSCode(args); 902 | 903 | return true; 904 | } 905 | 906 | // Didnt find a code file? let Unity figure it out 907 | return false; 908 | 909 | } 910 | 911 | /// 912 | /// Executed when the Editor's playmode changes allowing for capture of required data 913 | /// 914 | static void OnPlaymodeStateChanged() 915 | { 916 | if (UnityEngine.Application.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode) 917 | { 918 | UpdateLaunchFile(); 919 | } 920 | } 921 | 922 | /// 923 | /// Detect when scripts are reloaded and relink playmode detection 924 | /// 925 | [UnityEditor.Callbacks.DidReloadScripts()] 926 | static void OnScriptReload() 927 | { 928 | EditorApplication.playmodeStateChanged -= OnPlaymodeStateChanged; 929 | EditorApplication.playmodeStateChanged += OnPlaymodeStateChanged; 930 | } 931 | 932 | /// 933 | /// Remove extra/erroneous lines from a file. 934 | static void ScrubFile(string path) 935 | { 936 | string[] lines = File.ReadAllLines(path); 937 | System.Collections.Generic.List newLines = new System.Collections.Generic.List(); 938 | for (int i = 0; i < lines.Length; i++) 939 | { 940 | // Check Empty 941 | if (string.IsNullOrEmpty(lines[i].Trim()) || lines[i].Trim() == "\t" || lines[i].Trim() == "\t\t") 942 | { 943 | 944 | } 945 | else 946 | { 947 | newLines.Add(lines[i]); 948 | } 949 | } 950 | File.WriteAllLines(path, newLines.ToArray()); 951 | } 952 | 953 | /// 954 | /// Remove extra/erroneous data from project file (content). 955 | /// 956 | static string ScrubProjectContent(string content) 957 | { 958 | if (content.Length == 0) 959 | return ""; 960 | 961 | #if !UNITY_EDITOR_WIN 962 | // Moved to 3.5, 2.0 is legacy. 963 | if (content.IndexOf("v3.5") != -1) 964 | { 965 | content = Regex.Replace(content, "v3.5", "v2.0"); 966 | } 967 | #endif 968 | 969 | string targetPath = "";// "Temp" + Path.DirectorySeparatorChar + "bin" + Path.DirectorySeparatorChar + "Debug" + Path.DirectorySeparatorChar + ""; //OutputPath 970 | string langVersion = "default"; 971 | 972 | 973 | bool found = true; 974 | int location = 0; 975 | string addedOptions = ""; 976 | int startLocation = -1; 977 | int endLocation = -1; 978 | int endLength = 0; 979 | 980 | while (found) 981 | { 982 | startLocation = -1; 983 | endLocation = -1; 984 | endLength = 0; 985 | addedOptions = ""; 986 | startLocation = content.IndexOf("", startLocation); 992 | endLength = (endLocation - startLocation); 993 | 994 | 995 | if (endLocation == -1) 996 | { 997 | found = false; 998 | continue; 999 | } 1000 | else 1001 | { 1002 | found = true; 1003 | location = endLocation; 1004 | } 1005 | 1006 | if (content.Substring(startLocation, endLength).IndexOf("") == -1) 1007 | { 1008 | addedOptions += "\n\r\t" + targetPath + "\n\r"; 1009 | } 1010 | 1011 | if (content.Substring(startLocation, endLength).IndexOf("") == -1) 1012 | { 1013 | addedOptions += "\n\r\t" + langVersion + "\n\r"; 1014 | } 1015 | 1016 | if (!string.IsNullOrEmpty(addedOptions)) 1017 | { 1018 | content = content.Substring(0, endLocation) + addedOptions + content.Substring(endLocation); 1019 | } 1020 | } 1021 | else 1022 | { 1023 | found = false; 1024 | } 1025 | } 1026 | 1027 | return content; 1028 | } 1029 | 1030 | /// 1031 | /// Remove extra/erroneous data from solution file (content). 1032 | /// 1033 | static string ScrubSolutionContent(string content) 1034 | { 1035 | // Replace Solution Version 1036 | content = content.Replace( 1037 | "Microsoft Visual Studio Solution File, Format Version 11.00\r\n# Visual Studio 2008\r\n", 1038 | "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 2012"); 1039 | 1040 | // Remove Solution Properties (Unity Junk) 1041 | int startIndex = content.IndexOf("GlobalSection(SolutionProperties) = preSolution"); 1042 | if (startIndex != -1) 1043 | { 1044 | int endIndex = content.IndexOf("EndGlobalSection", startIndex); 1045 | content = content.Substring(0, startIndex) + content.Substring(endIndex + 16); 1046 | } 1047 | 1048 | return content; 1049 | } 1050 | 1051 | /// 1052 | /// Update Visual Studio Code Launch file 1053 | /// 1054 | static void UpdateLaunchFile() 1055 | { 1056 | if (!VSCode.Enabled) 1057 | { 1058 | return; 1059 | } 1060 | else if (VSCode.UseUnityDebugger) 1061 | { 1062 | if (!Directory.Exists(VSCode.SettingsFolder)) 1063 | System.IO.Directory.CreateDirectory(VSCode.SettingsFolder); 1064 | 1065 | // Write out proper formatted JSON (hence no more SimpleJSON here) 1066 | string fileContent = "{\n\t\"version\": \"0.2.0\",\n\t\"configurations\": [\n\t\t{\n\t\t\t\"name\": \"Unity Editor\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Windows Player\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"OSX Player\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Linux Player\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"iOS Player\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Android Player\",\n\t\t\t\"type\": \"unity\",\n\t\t\t\"request\": \"launch\"\n\n\t\t}\n\t]\n}"; 1067 | File.WriteAllText(VSCode.LaunchPath, fileContent); 1068 | } 1069 | else if (VSCode.WriteLaunchFile) 1070 | { 1071 | int port = GetDebugPort(); 1072 | if (port > -1) 1073 | { 1074 | if (!Directory.Exists(VSCode.SettingsFolder)) 1075 | System.IO.Directory.CreateDirectory(VSCode.SettingsFolder); 1076 | 1077 | // Write out proper formatted JSON (hence no more SimpleJSON here) 1078 | string fileContent = "{\n\t\"version\":\"0.2.0\",\n\t\"configurations\":[ \n\t\t{\n\t\t\t\"name\":\"Unity\",\n\t\t\t\"type\":\"mono\",\n\t\t\t\"request\":\"attach\",\n\t\t\t\"address\":\"localhost\",\n\t\t\t\"port\":" + port + "\n\t\t}\n\t]\n}"; 1079 | File.WriteAllText(VSCode.LaunchPath, fileContent); 1080 | 1081 | if (VSCode.Debug) 1082 | { 1083 | UnityEngine.Debug.Log("[VSCode] Debug Port Found (" + port + ")"); 1084 | } 1085 | } 1086 | else 1087 | { 1088 | if (VSCode.Debug) 1089 | { 1090 | UnityEngine.Debug.LogWarning("[VSCode] Unable to determine debug port."); 1091 | } 1092 | } 1093 | } 1094 | } 1095 | 1096 | /// 1097 | /// Update Unity Editor Preferences 1098 | /// 1099 | /// Should we turn on this party! 1100 | static void UpdateUnityPreferences(bool enabled) 1101 | { 1102 | if (enabled) 1103 | { 1104 | // App 1105 | if (EditorPrefs.GetString("kScriptsDefaultApp") != CodePath) 1106 | { 1107 | EditorPrefs.SetString("VSCode_PreviousApp", EditorPrefs.GetString("kScriptsDefaultApp")); 1108 | } 1109 | EditorPrefs.SetString("kScriptsDefaultApp", CodePath); 1110 | 1111 | // Arguments 1112 | if (EditorPrefs.GetString("kScriptEditorArgs") != "-r -g \"$(File):$(Line)\"") 1113 | { 1114 | EditorPrefs.SetString("VSCode_PreviousArgs", EditorPrefs.GetString("kScriptEditorArgs")); 1115 | } 1116 | 1117 | EditorPrefs.SetString("kScriptEditorArgs", "-r -g \"$(File):$(Line)\""); 1118 | EditorPrefs.SetString("kScriptEditorArgs" + CodePath, "-r -g \"$(File):$(Line)\""); 1119 | 1120 | 1121 | // MonoDevelop Solution 1122 | if (EditorPrefs.GetBool("kMonoDevelopSolutionProperties", false)) 1123 | { 1124 | EditorPrefs.SetBool("VSCode_PreviousMD", true); 1125 | } 1126 | EditorPrefs.SetBool("kMonoDevelopSolutionProperties", false); 1127 | 1128 | // Support Unity Proj (JS) 1129 | if (EditorPrefs.GetBool("kExternalEditorSupportsUnityProj", false)) 1130 | { 1131 | EditorPrefs.SetBool("VSCode_PreviousUnityProj", true); 1132 | } 1133 | EditorPrefs.SetBool("kExternalEditorSupportsUnityProj", false); 1134 | 1135 | if (!EditorPrefs.GetBool("AllowAttachedDebuggingOfEditor", false)) 1136 | { 1137 | EditorPrefs.SetBool("VSCode_PreviousAttach", false); 1138 | } 1139 | EditorPrefs.SetBool("AllowAttachedDebuggingOfEditor", true); 1140 | 1141 | } 1142 | else 1143 | { 1144 | // Restore previous app 1145 | if (!string.IsNullOrEmpty(EditorPrefs.GetString("VSCode_PreviousApp"))) 1146 | { 1147 | EditorPrefs.SetString("kScriptsDefaultApp", EditorPrefs.GetString("VSCode_PreviousApp")); 1148 | } 1149 | 1150 | // Restore previous args 1151 | if (!string.IsNullOrEmpty(EditorPrefs.GetString("VSCode_PreviousArgs"))) 1152 | { 1153 | EditorPrefs.SetString("kScriptEditorArgs", EditorPrefs.GetString("VSCode_PreviousArgs")); 1154 | } 1155 | 1156 | // Restore MD setting 1157 | if (EditorPrefs.GetBool("VSCode_PreviousMD", false)) 1158 | { 1159 | EditorPrefs.SetBool("kMonoDevelopSolutionProperties", true); 1160 | } 1161 | 1162 | // Restore MD setting 1163 | if (EditorPrefs.GetBool("VSCode_PreviousUnityProj", false)) 1164 | { 1165 | EditorPrefs.SetBool("kExternalEditorSupportsUnityProj", true); 1166 | } 1167 | 1168 | // Always leave editor attaching on, I know, it solves the problem of needing to restart for this 1169 | // to actually work 1170 | EditorPrefs.SetBool("AllowAttachedDebuggingOfEditor", true); 1171 | 1172 | } 1173 | 1174 | FixUnityPreferences(); 1175 | } 1176 | 1177 | /// 1178 | /// Determines if the current path to the code executable is valid or not (exists) 1179 | /// 1180 | static bool VSCodeExists(string curPath) 1181 | { 1182 | #if UNITY_EDITOR_OSX 1183 | return System.IO.Directory.Exists(curPath); 1184 | #else 1185 | System.IO.FileInfo code = new System.IO.FileInfo(curPath); 1186 | return code.Exists; 1187 | #endif 1188 | } 1189 | 1190 | /// 1191 | /// Write Default Workspace Settings 1192 | /// 1193 | static void WriteWorkspaceSettings() 1194 | { 1195 | if (Debug) 1196 | { 1197 | UnityEngine.Debug.Log("[VSCode] Workspace Settings Written"); 1198 | } 1199 | 1200 | if (!Directory.Exists(VSCode.SettingsFolder)) 1201 | { 1202 | System.IO.Directory.CreateDirectory(VSCode.SettingsFolder); 1203 | } 1204 | 1205 | string exclusions = 1206 | "{\n" + 1207 | "\t\"files.exclude\":\n" + 1208 | "\t{\n" + 1209 | // Hidden Files 1210 | "\t\t\"**/.DS_Store\":true,\n" + 1211 | "\t\t\"**/.git\":true,\n" + 1212 | "\t\t\"**/.gitignore\":true,\n" + 1213 | "\t\t\"**/.gitattributes\":true,\n" + 1214 | "\t\t\"**/.gitmodules\":true,\n" + 1215 | "\t\t\"**/.svn\":true,\n" + 1216 | 1217 | 1218 | // Project Files 1219 | "\t\t\"**/*.booproj\":true,\n" + 1220 | "\t\t\"**/*.pidb\":true,\n" + 1221 | "\t\t\"**/*.suo\":true,\n" + 1222 | "\t\t\"**/*.user\":true,\n" + 1223 | "\t\t\"**/*.userprefs\":true,\n" + 1224 | "\t\t\"**/*.unityproj\":true,\n" + 1225 | "\t\t\"**/*.dll\":true,\n" + 1226 | "\t\t\"**/*.exe\":true,\n" + 1227 | 1228 | // Media Files 1229 | "\t\t\"**/*.pdf\":true,\n" + 1230 | 1231 | // Audio 1232 | "\t\t\"**/*.mid\":true,\n" + 1233 | "\t\t\"**/*.midi\":true,\n" + 1234 | "\t\t\"**/*.wav\":true,\n" + 1235 | 1236 | // Textures 1237 | "\t\t\"**/*.gif\":true,\n" + 1238 | "\t\t\"**/*.ico\":true,\n" + 1239 | "\t\t\"**/*.jpg\":true,\n" + 1240 | "\t\t\"**/*.jpeg\":true,\n" + 1241 | "\t\t\"**/*.png\":true,\n" + 1242 | "\t\t\"**/*.psd\":true,\n" + 1243 | "\t\t\"**/*.tga\":true,\n" + 1244 | "\t\t\"**/*.tif\":true,\n" + 1245 | "\t\t\"**/*.tiff\":true,\n" + 1246 | 1247 | // Models 1248 | "\t\t\"**/*.3ds\":true,\n" + 1249 | "\t\t\"**/*.3DS\":true,\n" + 1250 | "\t\t\"**/*.fbx\":true,\n" + 1251 | "\t\t\"**/*.FBX\":true,\n" + 1252 | "\t\t\"**/*.lxo\":true,\n" + 1253 | "\t\t\"**/*.LXO\":true,\n" + 1254 | "\t\t\"**/*.ma\":true,\n" + 1255 | "\t\t\"**/*.MA\":true,\n" + 1256 | "\t\t\"**/*.obj\":true,\n" + 1257 | "\t\t\"**/*.OBJ\":true,\n" + 1258 | 1259 | // Unity File Types 1260 | "\t\t\"**/*.asset\":true,\n" + 1261 | "\t\t\"**/*.cubemap\":true,\n" + 1262 | "\t\t\"**/*.flare\":true,\n" + 1263 | "\t\t\"**/*.mat\":true,\n" + 1264 | "\t\t\"**/*.meta\":true,\n" + 1265 | "\t\t\"**/*.prefab\":true,\n" + 1266 | "\t\t\"**/*.unity\":true,\n" + 1267 | 1268 | // Folders 1269 | "\t\t\"build/\":true,\n" + 1270 | "\t\t\"Build/\":true,\n" + 1271 | "\t\t\"Library/\":true,\n" + 1272 | "\t\t\"library/\":true,\n" + 1273 | "\t\t\"obj/\":true,\n" + 1274 | "\t\t\"Obj/\":true,\n" + 1275 | "\t\t\"ProjectSettings/\":true,\r" + 1276 | "\t\t\"temp/\":true,\n" + 1277 | "\t\t\"Temp/\":true\n" + 1278 | "\t}\n" + 1279 | "}"; 1280 | 1281 | // Dont like the replace but it fixes the issue with the JSON 1282 | File.WriteAllText(VSCode.SettingsPath, exclusions); 1283 | } 1284 | 1285 | #endregion 1286 | } 1287 | 1288 | /// 1289 | /// VSCode Asset AssetPostprocessor 1290 | /// This will ensure any time that the project files are generated the VSCode versions will be made 1291 | /// 1292 | /// Undocumented Event 1293 | public class VSCodeAssetPostprocessor : AssetPostprocessor 1294 | { 1295 | /// 1296 | /// On documented, project generation event callback 1297 | /// 1298 | private static void OnGeneratedCSProjectFiles() 1299 | { 1300 | // Force execution of VSCode update 1301 | VSCode.UpdateSolution(); 1302 | } 1303 | } 1304 | } -------------------------------------------------------------------------------- /Tidy Up/Assets/VSCode/Plugins/Editor/VSCode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c34beeaf0d4cf44c49f1039006a08591 3 | timeCreated: 1444653497 4 | licenseType: Store 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_DisableAudio: 0 16 | m_VirtualizeEffects: 1 17 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_SolverIterationCount: 6 13 | m_SolverVelocityIterations: 1 14 | m_QueriesHitTriggers: 1 15 | m_EnableAdaptiveForce: 0 16 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 17 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 0 12 | m_SpritePackerMode: 2 13 | m_SpritePackerPaddingPower: 1 14 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 15 | m_ProjectGenerationRootNamespace: 16 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_ShaderSettings_Tier1: 43 | useCascadedShadowMaps: 1 44 | standardShaderQuality: 2 45 | useReflectionProbeBoxProjection: 1 46 | useReflectionProbeBlending: 1 47 | m_ShaderSettings_Tier2: 48 | useCascadedShadowMaps: 1 49 | standardShaderQuality: 2 50 | useReflectionProbeBoxProjection: 1 51 | useReflectionProbeBlending: 1 52 | m_ShaderSettings_Tier3: 53 | useCascadedShadowMaps: 1 54 | standardShaderQuality: 2 55 | useReflectionProbeBoxProjection: 1 56 | useReflectionProbeBlending: 1 57 | m_BuildTargetShaderSettings: [] 58 | m_LightmapStripping: 0 59 | m_FogStripping: 0 60 | m_LightmapKeepPlain: 1 61 | m_LightmapKeepDirCombined: 1 62 | m_LightmapKeepDirSeparate: 1 63 | m_LightmapKeepDynamicPlain: 1 64 | m_LightmapKeepDynamicDirCombined: 1 65 | m_LightmapKeepDynamicDirSeparate: 1 66 | m_FogKeepLinear: 1 67 | m_FogKeepExp: 1 68 | m_FogKeepExp2: 1 69 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshAreas: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_MinPenetrationForPenalty: 0.01 17 | m_BaumgarteScale: 0.2 18 | m_BaumgarteTimeOfImpactScale: 0.75 19 | m_TimeToSleep: 0.5 20 | m_LinearSleepTolerance: 0.01 21 | m_AngularSleepTolerance: 2 22 | m_QueriesHitTriggers: 1 23 | m_QueriesStartInColliders: 1 24 | m_ChangeStopsCallbacks: 0 25 | m_AlwaysShowColliders: 0 26 | m_ShowColliderSleep: 1 27 | m_ShowColliderContacts: 0 28 | m_ContactArrowScale: 0.2 29 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 30 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 31 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 32 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 33 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | productGUID: fabbfbcf4b024e841a80f214bf2b1bfe 8 | AndroidProfiler: 0 9 | defaultScreenOrientation: 4 10 | targetDevice: 2 11 | useOnDemandResources: 0 12 | accelerometerFrequency: 60 13 | companyName: DefaultCompany 14 | productName: Tidy Up 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | m_SplashScreenStyle: 0 18 | m_ShowUnitySplashScreen: 1 19 | m_VirtualRealitySplashScreen: {fileID: 0} 20 | defaultScreenWidth: 1024 21 | defaultScreenHeight: 768 22 | defaultScreenWidthWeb: 960 23 | defaultScreenHeightWeb: 600 24 | m_RenderingPath: 1 25 | m_MobileRenderingPath: 1 26 | m_ActiveColorSpace: 0 27 | m_MTRendering: 1 28 | m_MobileMTRendering: 0 29 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 30 | iosShowActivityIndicatorOnLoading: -1 31 | androidShowActivityIndicatorOnLoading: -1 32 | iosAppInBackgroundBehavior: 0 33 | displayResolutionDialog: 1 34 | iosAllowHTTPDownload: 1 35 | allowedAutorotateToPortrait: 1 36 | allowedAutorotateToPortraitUpsideDown: 1 37 | allowedAutorotateToLandscapeRight: 1 38 | allowedAutorotateToLandscapeLeft: 1 39 | useOSAutorotation: 1 40 | use32BitDisplayBuffer: 1 41 | disableDepthAndStencilBuffers: 0 42 | defaultIsFullScreen: 1 43 | defaultIsNativeResolution: 1 44 | runInBackground: 1 45 | captureSingleScreen: 0 46 | Override IPod Music: 0 47 | Prepare IOS For Recording: 0 48 | submitAnalytics: 1 49 | usePlayerLog: 1 50 | bakeCollisionMeshes: 0 51 | forceSingleInstance: 0 52 | resizableWindow: 0 53 | useMacAppStoreValidation: 0 54 | gpuSkinning: 0 55 | graphicsJobs: 0 56 | xboxPIXTextureCapture: 0 57 | xboxEnableAvatar: 0 58 | xboxEnableKinect: 0 59 | xboxEnableKinectAutoTracking: 0 60 | xboxEnableFitness: 0 61 | visibleInBackground: 0 62 | allowFullscreenSwitch: 1 63 | macFullscreenMode: 2 64 | d3d9FullscreenMode: 1 65 | d3d11FullscreenMode: 1 66 | xboxSpeechDB: 0 67 | xboxEnableHeadOrientation: 0 68 | xboxEnableGuest: 0 69 | xboxEnablePIXSampling: 0 70 | n3dsDisableStereoscopicView: 0 71 | n3dsEnableSharedListOpt: 1 72 | n3dsEnableVSync: 0 73 | uiUse16BitDepthBuffer: 0 74 | ignoreAlphaClear: 0 75 | xboxOneResolution: 0 76 | xboxOneMonoLoggingLevel: 0 77 | xboxOneLoggingLevel: 1 78 | ps3SplashScreen: {fileID: 0} 79 | videoMemoryForVertexBuffers: 0 80 | psp2PowerMode: 0 81 | psp2AcquireBGM: 1 82 | wiiUTVResolution: 0 83 | wiiUGamePadMSAA: 1 84 | wiiUSupportsNunchuk: 0 85 | wiiUSupportsClassicController: 0 86 | wiiUSupportsBalanceBoard: 0 87 | wiiUSupportsMotionPlus: 0 88 | wiiUSupportsProController: 0 89 | wiiUAllowScreenCapture: 1 90 | wiiUControllerCount: 0 91 | m_SupportedAspectRatios: 92 | 4:3: 1 93 | 5:4: 1 94 | 16:10: 1 95 | 16:9: 1 96 | Others: 1 97 | bundleIdentifier: com.Company.ProductName 98 | bundleVersion: 1.0 99 | preloadedAssets: [] 100 | metroEnableIndependentInputSource: 0 101 | xboxOneDisableKinectGpuReservation: 0 102 | singlePassStereoRendering: 0 103 | protectGraphicsMemory: 0 104 | AndroidBundleVersionCode: 1 105 | AndroidMinSdkVersion: 9 106 | AndroidPreferredInstallLocation: 1 107 | aotOptions: 108 | apiCompatibilityLevel: 2 109 | stripEngineCode: 1 110 | iPhoneStrippingLevel: 0 111 | iPhoneScriptCallOptimization: 0 112 | iPhoneBuildNumber: 0 113 | ForceInternetPermission: 0 114 | ForceSDCardPermission: 0 115 | CreateWallpaper: 0 116 | APKExpansionFiles: 0 117 | preloadShaders: 0 118 | StripUnusedMeshComponents: 0 119 | VertexChannelCompressionMask: 120 | serializedVersion: 2 121 | m_Bits: 238 122 | iPhoneSdkVersion: 988 123 | iPhoneTargetOSVersion: 24 124 | tvOSSdkVersion: 0 125 | tvOSTargetOSVersion: 900 126 | tvOSRequireExtendedGameController: 0 127 | uIPrerenderedIcon: 0 128 | uIRequiresPersistentWiFi: 0 129 | uIRequiresFullScreen: 1 130 | uIStatusBarHidden: 1 131 | uIExitOnSuspend: 0 132 | uIStatusBarStyle: 0 133 | iPhoneSplashScreen: {fileID: 0} 134 | iPhoneHighResSplashScreen: {fileID: 0} 135 | iPhoneTallHighResSplashScreen: {fileID: 0} 136 | iPhone47inSplashScreen: {fileID: 0} 137 | iPhone55inPortraitSplashScreen: {fileID: 0} 138 | iPhone55inLandscapeSplashScreen: {fileID: 0} 139 | iPadPortraitSplashScreen: {fileID: 0} 140 | iPadHighResPortraitSplashScreen: {fileID: 0} 141 | iPadLandscapeSplashScreen: {fileID: 0} 142 | iPadHighResLandscapeSplashScreen: {fileID: 0} 143 | appleTVSplashScreen: {fileID: 0} 144 | tvOSSmallIconLayers: [] 145 | tvOSLargeIconLayers: [] 146 | tvOSTopShelfImageLayers: [] 147 | iOSLaunchScreenType: 0 148 | iOSLaunchScreenPortrait: {fileID: 0} 149 | iOSLaunchScreenLandscape: {fileID: 0} 150 | iOSLaunchScreenBackgroundColor: 151 | serializedVersion: 2 152 | rgba: 0 153 | iOSLaunchScreenFillPct: 100 154 | iOSLaunchScreenSize: 100 155 | iOSLaunchScreenCustomXibPath: 156 | iOSLaunchScreeniPadType: 0 157 | iOSLaunchScreeniPadImage: {fileID: 0} 158 | iOSLaunchScreeniPadBackgroundColor: 159 | serializedVersion: 2 160 | rgba: 0 161 | iOSLaunchScreeniPadFillPct: 100 162 | iOSLaunchScreeniPadSize: 100 163 | iOSLaunchScreeniPadCustomXibPath: 164 | iOSDeviceRequirements: [] 165 | iOSURLSchemes: [] 166 | appleDeveloperTeamID: 167 | AndroidTargetDevice: 0 168 | AndroidSplashScreenScale: 0 169 | androidSplashScreen: {fileID: 0} 170 | AndroidKeystoreName: 171 | AndroidKeyaliasName: 172 | AndroidTVCompatibility: 1 173 | AndroidIsGame: 1 174 | androidEnableBanner: 1 175 | m_AndroidBanners: 176 | - width: 320 177 | height: 180 178 | banner: {fileID: 0} 179 | androidGamepadSupportLevel: 0 180 | resolutionDialogBanner: {fileID: 0} 181 | m_BuildTargetIcons: 182 | - m_BuildTarget: 183 | m_Icons: 184 | - serializedVersion: 2 185 | m_Icon: {fileID: 0} 186 | m_Width: 128 187 | m_Height: 128 188 | m_BuildTargetBatching: [] 189 | m_BuildTargetGraphicsAPIs: [] 190 | webPlayerTemplate: APPLICATION:Default 191 | m_TemplateCustomTags: {} 192 | wiiUTitleID: 0005000011000000 193 | wiiUGroupID: 00010000 194 | wiiUCommonSaveSize: 4096 195 | wiiUAccountSaveSize: 2048 196 | wiiUOlvAccessKey: 0 197 | wiiUTinCode: 0 198 | wiiUJoinGameId: 0 199 | wiiUJoinGameModeMask: 0000000000000000 200 | wiiUCommonBossSize: 0 201 | wiiUAccountBossSize: 0 202 | wiiUAddOnUniqueIDs: [] 203 | wiiUMainThreadStackSize: 3072 204 | wiiULoaderThreadStackSize: 1024 205 | wiiUSystemHeapSize: 128 206 | wiiUTVStartupScreen: {fileID: 0} 207 | wiiUGamePadStartupScreen: {fileID: 0} 208 | wiiUDrcBufferDisabled: 0 209 | wiiUProfilerLibPath: 210 | actionOnDotNetUnhandledException: 1 211 | enableInternalProfiler: 0 212 | logObjCUncaughtExceptions: 1 213 | enableCrashReportAPI: 0 214 | cameraUsageDescription: 215 | locationUsageDescription: 216 | microphoneUsageDescription: 217 | XboxTitleId: 218 | XboxImageXexPath: 219 | XboxSpaPath: 220 | XboxGenerateSpa: 0 221 | XboxDeployKinectResources: 0 222 | XboxSplashScreen: {fileID: 0} 223 | xboxEnableSpeech: 0 224 | xboxAdditionalTitleMemorySize: 0 225 | xboxDeployKinectHeadOrientation: 0 226 | xboxDeployKinectHeadPosition: 0 227 | ps3TitleConfigPath: 228 | ps3DLCConfigPath: 229 | ps3ThumbnailPath: 230 | ps3BackgroundPath: 231 | ps3SoundPath: 232 | ps3NPAgeRating: 12 233 | ps3TrophyCommId: 234 | ps3NpCommunicationPassphrase: 235 | ps3TrophyPackagePath: 236 | ps3BootCheckMaxSaveGameSizeKB: 128 237 | ps3TrophyCommSig: 238 | ps3SaveGameSlots: 1 239 | ps3TrialMode: 0 240 | ps3VideoMemoryForAudio: 0 241 | ps3EnableVerboseMemoryStats: 0 242 | ps3UseSPUForUmbra: 0 243 | ps3EnableMoveSupport: 1 244 | ps3DisableDolbyEncoding: 0 245 | ps4NPAgeRating: 12 246 | ps4NPTitleSecret: 247 | ps4NPTrophyPackPath: 248 | ps4ParentalLevel: 1 249 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 250 | ps4Category: 0 251 | ps4MasterVersion: 01.00 252 | ps4AppVersion: 01.00 253 | ps4AppType: 0 254 | ps4ParamSfxPath: 255 | ps4VideoOutPixelFormat: 0 256 | ps4VideoOutInitialWidth: 1920 257 | ps4VideoOutReprojectionRate: 120 258 | ps4PronunciationXMLPath: 259 | ps4PronunciationSIGPath: 260 | ps4BackgroundImagePath: 261 | ps4StartupImagePath: 262 | ps4SaveDataImagePath: 263 | ps4SdkOverride: 264 | ps4BGMPath: 265 | ps4ShareFilePath: 266 | ps4ShareOverlayImagePath: 267 | ps4PrivacyGuardImagePath: 268 | ps4NPtitleDatPath: 269 | ps4RemotePlayKeyAssignment: -1 270 | ps4RemotePlayKeyMappingDir: 271 | ps4PlayTogetherPlayerCount: 0 272 | ps4EnterButtonAssignment: 1 273 | ps4ApplicationParam1: 0 274 | ps4ApplicationParam2: 0 275 | ps4ApplicationParam3: 0 276 | ps4ApplicationParam4: 0 277 | ps4DownloadDataSize: 0 278 | ps4GarlicHeapSize: 2048 279 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 280 | ps4UseDebugIl2cppLibs: 0 281 | ps4pnSessions: 1 282 | ps4pnPresence: 1 283 | ps4pnFriends: 1 284 | ps4pnGameCustomData: 1 285 | playerPrefsSupport: 0 286 | ps4UseResolutionFallback: 0 287 | restrictedAudioUsageRights: 0 288 | ps4ReprojectionSupport: 0 289 | ps4UseAudio3dBackend: 0 290 | ps4SocialScreenEnabled: 0 291 | ps4ScriptOptimizationLevel: 3 292 | ps4Audio3dVirtualSpeakerCount: 14 293 | ps4attribCpuUsage: 0 294 | ps4PatchPkgPath: 295 | ps4PatchLatestPkgPath: 296 | ps4PatchChangeinfoPath: 297 | ps4PatchDayOne: 0 298 | ps4attribUserManagement: 0 299 | ps4attribMoveSupport: 0 300 | ps4attrib3DSupport: 0 301 | ps4attribShareSupport: 0 302 | ps4attribExclusiveVR: 0 303 | ps4disableAutoHideSplash: 0 304 | ps4IncludedModules: [] 305 | monoEnv: 306 | psp2Splashimage: {fileID: 0} 307 | psp2NPTrophyPackPath: 308 | psp2NPSupportGBMorGJP: 0 309 | psp2NPAgeRating: 12 310 | psp2NPTitleDatPath: 311 | psp2NPCommsID: 312 | psp2NPCommunicationsID: 313 | psp2NPCommsPassphrase: 314 | psp2NPCommsSig: 315 | psp2ParamSfxPath: 316 | psp2ManualPath: 317 | psp2LiveAreaGatePath: 318 | psp2LiveAreaBackroundPath: 319 | psp2LiveAreaPath: 320 | psp2LiveAreaTrialPath: 321 | psp2PatchChangeInfoPath: 322 | psp2PatchOriginalPackage: 323 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 324 | psp2KeystoneFile: 325 | psp2MemoryExpansionMode: 0 326 | psp2DRMType: 0 327 | psp2StorageType: 0 328 | psp2MediaCapacity: 0 329 | psp2DLCConfigPath: 330 | psp2ThumbnailPath: 331 | psp2BackgroundPath: 332 | psp2SoundPath: 333 | psp2TrophyCommId: 334 | psp2TrophyPackagePath: 335 | psp2PackagedResourcesPath: 336 | psp2SaveDataQuota: 10240 337 | psp2ParentalLevel: 1 338 | psp2ShortTitle: Not Set 339 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 340 | psp2Category: 0 341 | psp2MasterVersion: 01.00 342 | psp2AppVersion: 01.00 343 | psp2TVBootMode: 0 344 | psp2EnterButtonAssignment: 2 345 | psp2TVDisableEmu: 0 346 | psp2AllowTwitterDialog: 1 347 | psp2Upgradable: 0 348 | psp2HealthWarning: 0 349 | psp2UseLibLocation: 0 350 | psp2InfoBarOnStartup: 0 351 | psp2InfoBarColor: 0 352 | psp2UseDebugIl2cppLibs: 0 353 | psmSplashimage: {fileID: 0} 354 | spritePackerPolicy: 355 | scriptingDefineSymbols: {} 356 | metroPackageName: Tidy Up 357 | metroPackageVersion: 358 | metroCertificatePath: 359 | metroCertificatePassword: 360 | metroCertificateSubject: 361 | metroCertificateIssuer: 362 | metroCertificateNotAfter: 0000000000000000 363 | metroApplicationDescription: Tidy Up 364 | wsaImages: {} 365 | metroTileShortName: 366 | metroCommandLineArgsFile: 367 | metroTileShowName: 0 368 | metroMediumTileShowName: 0 369 | metroLargeTileShowName: 0 370 | metroWideTileShowName: 0 371 | metroDefaultTileSize: 1 372 | metroTileForegroundText: 1 373 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 374 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 375 | a: 1} 376 | metroSplashScreenUseBackgroundColor: 0 377 | platformCapabilities: {} 378 | metroFTAName: 379 | metroFTAFileTypes: [] 380 | metroProtocolName: 381 | metroCompilationOverrides: 1 382 | tizenProductDescription: 383 | tizenProductURL: 384 | tizenSigningProfileName: 385 | tizenGPSPermissions: 0 386 | tizenMicrophonePermissions: 0 387 | tizenMinOSVersion: 0 388 | n3dsUseExtSaveData: 0 389 | n3dsCompressStaticMem: 1 390 | n3dsExtSaveDataNumber: 0x12345 391 | n3dsStackSize: 131072 392 | n3dsTargetPlatform: 2 393 | n3dsRegion: 7 394 | n3dsMediaSize: 0 395 | n3dsLogoStyle: 3 396 | n3dsTitle: GameName 397 | n3dsProductCode: 398 | n3dsApplicationId: 0xFF3FF 399 | stvDeviceAddress: 400 | stvProductDescription: 401 | stvProductAuthor: 402 | stvProductAuthorEmail: 403 | stvProductLink: 404 | stvProductCategory: 0 405 | XboxOneProductId: 406 | XboxOneUpdateKey: 407 | XboxOneSandboxId: 408 | XboxOneContentId: 409 | XboxOneTitleId: 410 | XboxOneSCId: 411 | XboxOneGameOsOverridePath: 412 | XboxOnePackagingOverridePath: 413 | XboxOneAppManifestOverridePath: 414 | XboxOnePackageEncryption: 0 415 | XboxOnePackageUpdateGranularity: 2 416 | XboxOneDescription: 417 | XboxOneIsContentPackage: 0 418 | XboxOneEnableGPUVariability: 0 419 | XboxOneSockets: {} 420 | XboxOneSplashScreen: {fileID: 0} 421 | XboxOneAllowedProductIds: [] 422 | XboxOnePersistentLocalStorageSize: 0 423 | intPropertyNames: 424 | - Android::ScriptingBackend 425 | - Standalone::ScriptingBackend 426 | - WebPlayer::ScriptingBackend 427 | Android::ScriptingBackend: 0 428 | Standalone::ScriptingBackend: 0 429 | WebPlayer::ScriptingBackend: 0 430 | boolPropertyNames: 431 | - Android::VR::enable 432 | - Metro::VR::enable 433 | - N3DS::VR::enable 434 | - PS3::VR::enable 435 | - PS4::VR::enable 436 | - PSM::VR::enable 437 | - PSP2::VR::enable 438 | - SamsungTV::VR::enable 439 | - Standalone::VR::enable 440 | - Tizen::VR::enable 441 | - WebGL::VR::enable 442 | - WebPlayer::VR::enable 443 | - WiiU::VR::enable 444 | - Xbox360::VR::enable 445 | - XboxOne::VR::enable 446 | - XboxOne::enus 447 | - iOS::VR::enable 448 | - tvOS::VR::enable 449 | Android::VR::enable: 0 450 | Metro::VR::enable: 0 451 | N3DS::VR::enable: 0 452 | PS3::VR::enable: 0 453 | PS4::VR::enable: 0 454 | PSM::VR::enable: 0 455 | PSP2::VR::enable: 0 456 | SamsungTV::VR::enable: 0 457 | Standalone::VR::enable: 0 458 | Tizen::VR::enable: 0 459 | WebGL::VR::enable: 0 460 | WebPlayer::VR::enable: 0 461 | WiiU::VR::enable: 0 462 | Xbox360::VR::enable: 0 463 | XboxOne::VR::enable: 0 464 | XboxOne::enus: 1 465 | iOS::VR::enable: 0 466 | tvOS::VR::enable: 0 467 | stringPropertyNames: 468 | - Analytics_ServiceEnabled::Analytics_ServiceEnabled 469 | - Build_ServiceEnabled::Build_ServiceEnabled 470 | - Collab_ServiceEnabled::Collab_ServiceEnabled 471 | - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled 472 | - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled 473 | - Hub_ServiceEnabled::Hub_ServiceEnabled 474 | - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled 475 | - UNet_ServiceEnabled::UNet_ServiceEnabled 476 | - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled 477 | Analytics_ServiceEnabled::Analytics_ServiceEnabled: False 478 | Build_ServiceEnabled::Build_ServiceEnabled: False 479 | Collab_ServiceEnabled::Collab_ServiceEnabled: False 480 | ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled: False 481 | Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled: False 482 | Hub_ServiceEnabled::Hub_ServiceEnabled: False 483 | Purchasing_ServiceEnabled::Purchasing_ServiceEnabled: False 484 | UNet_ServiceEnabled::UNet_ServiceEnabled: False 485 | Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled: False 486 | vectorPropertyNames: 487 | - Android::VR::enabledDevices 488 | - Metro::VR::enabledDevices 489 | - N3DS::VR::enabledDevices 490 | - PS3::VR::enabledDevices 491 | - PS4::VR::enabledDevices 492 | - PSM::VR::enabledDevices 493 | - PSP2::VR::enabledDevices 494 | - SamsungTV::VR::enabledDevices 495 | - Standalone::VR::enabledDevices 496 | - Tizen::VR::enabledDevices 497 | - WebGL::VR::enabledDevices 498 | - WebPlayer::VR::enabledDevices 499 | - WiiU::VR::enabledDevices 500 | - Xbox360::VR::enabledDevices 501 | - XboxOne::VR::enabledDevices 502 | - iOS::VR::enabledDevices 503 | - tvOS::VR::enabledDevices 504 | Android::VR::enabledDevices: 505 | - Oculus 506 | Metro::VR::enabledDevices: [] 507 | N3DS::VR::enabledDevices: [] 508 | PS3::VR::enabledDevices: [] 509 | PS4::VR::enabledDevices: 510 | - PlayStationVR 511 | PSM::VR::enabledDevices: [] 512 | PSP2::VR::enabledDevices: [] 513 | SamsungTV::VR::enabledDevices: [] 514 | Standalone::VR::enabledDevices: 515 | - Oculus 516 | Tizen::VR::enabledDevices: [] 517 | WebGL::VR::enabledDevices: [] 518 | WebPlayer::VR::enabledDevices: [] 519 | WiiU::VR::enabledDevices: [] 520 | Xbox360::VR::enabledDevices: [] 521 | XboxOne::VR::enabledDevices: [] 522 | iOS::VR::enabledDevices: [] 523 | tvOS::VR::enabledDevices: [] 524 | cloudProjectId: 525 | projectName: 526 | organizationId: 527 | cloudEnabled: 0 528 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.4.2f2 2 | m_StandardAssetsVersion: 0 3 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 2 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 2 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 2 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 1 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 2 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 2 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 2 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: 166 | Android: 2 167 | Nintendo 3DS: 5 168 | PS3: 5 169 | PS4: 5 170 | PSM: 5 171 | PSP2: 2 172 | Samsung TV: 2 173 | Standalone: 5 174 | Tizen: 2 175 | Web: 5 176 | WebGL: 3 177 | WiiU: 5 178 | Windows Store Apps: 5 179 | XBOX360: 5 180 | XboxOne: 5 181 | iPhone: 2 182 | tvOS: 5 183 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/UnityAdsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!292 &1 4 | UnityAdsSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_InitializeOnStartup: 1 8 | m_TestMode: 0 9 | m_EnabledPlatforms: 4294967295 10 | m_IosGameId: 11 | m_AndroidGameId: 12 | -------------------------------------------------------------------------------- /Tidy Up/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | CrashReportingSettings: 11 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 12 | m_Enabled: 0 13 | UnityPurchasingSettings: 14 | m_Enabled: 0 15 | m_TestMode: 0 16 | UnityAnalyticsSettings: 17 | m_Enabled: 0 18 | m_InitializeOnStartup: 1 19 | m_TestMode: 0 20 | m_TestEventUrl: 21 | m_TestConfigUrl: 22 | -------------------------------------------------------------------------------- /Tidy Up/Tidy Up.CSharp.Editor.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {9E7A412F-0541-D407-32A5-4D92DCE047C9} 9 | Library 10 | Assembly-CSharp-Editor 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Full v3.5 16 | 17 | Editor:5 18 | StandaloneWindows:5 19 | 5.4.2f2 20 | 21 | 4 22 | 23 | 24 | pdbonly 25 | false 26 | Temp\UnityVS_bin\Debug\ 27 | Temp\UnityVS_obj\Debug\ 28 | prompt 29 | 4 30 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 31 | false 32 | 33 | 34 | pdbonly 35 | false 36 | Temp\UnityVS_bin\Release\ 37 | Temp\UnityVS_obj\Release\ 38 | prompt 39 | 4 40 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Library\UnityAssemblies\UnityEngine.dll 54 | 55 | 56 | Library\UnityAssemblies\UnityEditor.dll 57 | 58 | 59 | Library\UnityAssemblies\UnityEditor.Advertisements.dll 60 | 61 | 62 | Library\UnityAssemblies\nunit.framework.dll 63 | 64 | 65 | Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll 66 | 67 | 68 | Library\UnityAssemblies\UnityEngine.UI.dll 69 | 70 | 71 | Library\UnityAssemblies\UnityEditor.UI.dll 72 | 73 | 74 | Library\UnityAssemblies\UnityEngine.Networking.dll 75 | 76 | 77 | Library\UnityAssemblies\UnityEditor.Networking.dll 78 | 79 | 80 | Library\UnityAssemblies\UnityEditor.TreeEditor.dll 81 | 82 | 83 | Library\UnityAssemblies\UnityEditor.Graphs.dll 84 | 85 | 86 | Library\UnityAssemblies\UnityEditor.Android.Extensions.dll 87 | 88 | 89 | Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll 90 | 91 | 92 | Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll 93 | 94 | 95 | Assets\TidyUp\Plugins\Editor\TidyUp.dll 96 | 97 | 98 | Assets\AssetStoreTools\Editor\AssetStoreToolsExtra.dll 99 | 100 | 101 | Assets\AssetStoreTools\Editor\AssetStoreTools.dll 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /Tidy Up/Tidy Up.CSharp.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {0EB2A1C5-172E-8F2A-6CF1-23DF2A01CBB1} 9 | Library 10 | Assembly-CSharp 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Subset v3.5 16 | 17 | Game:1 18 | StandaloneWindows:5 19 | 5.4.2f2 20 | 21 | 4 22 | 23 | 24 | pdbonly 25 | false 26 | Temp\UnityVS_bin\Debug\ 27 | Temp\UnityVS_obj\Debug\ 28 | prompt 29 | 4 30 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 31 | false 32 | 33 | 34 | pdbonly 35 | false 36 | Temp\UnityVS_bin\Release\ 37 | Temp\UnityVS_obj\Release\ 38 | prompt 39 | 4 40 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Library\UnityAssemblies\UnityEngine.dll 54 | 55 | 56 | Library\UnityAssemblies\UnityEngine.UI.dll 57 | 58 | 59 | Library\UnityAssemblies\UnityEngine.Networking.dll 60 | 61 | 62 | Library\UnityAssemblies\UnityEditor.dll 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Tidy Up/Tidy Up.Editor.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {66AA3813-DD0E-8DA9-D647-F85C5C7B1AB7} 9 | Library 10 | Assembly-CSharp-Editor 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Full v3.5 16 | 17 | Editor:5 18 | StandaloneWindows:5 19 | 5.4.2f2 20 | 21 | 4 22 | 23 | 24 | pdbonly 25 | false 26 | Temp\UnityVS_bin\Debug\ 27 | Temp\UnityVS_obj\Debug\ 28 | prompt 29 | 4 30 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 31 | false 32 | 33 | 34 | pdbonly 35 | false 36 | Temp\UnityVS_bin\Release\ 37 | Temp\UnityVS_obj\Release\ 38 | prompt 39 | 4 40 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_4_2;UNITY_5_4;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_EDITOR_RETINA;ENABLE_RETINA_GUISTYLES;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Library\UnityAssemblies\UnityEngine.dll 54 | 55 | 56 | Library\UnityAssemblies\UnityEditor.dll 57 | 58 | 59 | Library\UnityAssemblies\UnityEditor.Advertisements.dll 60 | 61 | 62 | Library\UnityAssemblies\nunit.framework.dll 63 | 64 | 65 | Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll 66 | 67 | 68 | Library\UnityAssemblies\UnityEngine.UI.dll 69 | 70 | 71 | Library\UnityAssemblies\UnityEditor.UI.dll 72 | 73 | 74 | Library\UnityAssemblies\UnityEngine.Networking.dll 75 | 76 | 77 | Library\UnityAssemblies\UnityEditor.Networking.dll 78 | 79 | 80 | Library\UnityAssemblies\UnityEditor.TreeEditor.dll 81 | 82 | 83 | Library\UnityAssemblies\UnityEditor.Graphs.dll 84 | 85 | 86 | Library\UnityAssemblies\UnityEditor.Android.Extensions.dll 87 | 88 | 89 | Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll 90 | 91 | 92 | Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll 93 | 94 | 95 | Assets\AssetStoreTools\Editor\AssetStoreTools.dll 96 | 97 | 98 | Assets\AssetStoreTools\Editor\AssetStoreToolsExtra.dll 99 | 100 | 101 | Assets\TidyUp\Plugins\Editor\TidyUp.dll 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | --------------------------------------------------------------------------------