diff --git a/.gitignore b/.gitignore index 6bb8e9f..23100d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,75 @@ -/Library -obj/ -/Temp -/.vs +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Asset meta data should only be ignored when the corresponding asset is also ignored +!/[Aa]ssets/**/*.meta + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ *.csproj +*.unityproj *.sln +*.suo +*.tmp +*.user *.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Rider +**/.idea/* +**/.idea.meta \ No newline at end of file diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..5e24e78 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d266527df3de95744b29a32134b25cf9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/CSharp.meta b/Assets/Examples/CSharp.meta new file mode 100644 index 0000000..c35eb9a --- /dev/null +++ b/Assets/Examples/CSharp.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dbdf53a965b5a6441a19db8ac32f57b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/First.cs b/Assets/Examples/CSharp/First.cs similarity index 53% rename from Assets/Examples/First.cs rename to Assets/Examples/CSharp/First.cs index 11be1cc..9f898cd 100644 --- a/Assets/Examples/First.cs +++ b/Assets/Examples/CSharp/First.cs @@ -1,6 +1,7 @@ using UnityEngine; using System.Collections; -public class First : ScriptableObject { - +public class First : ScriptableObject +{ + } diff --git a/Assets/Examples/First.cs.meta b/Assets/Examples/CSharp/First.cs.meta similarity index 100% rename from Assets/Examples/First.cs.meta rename to Assets/Examples/CSharp/First.cs.meta diff --git a/Assets/Examples/Second.cs b/Assets/Examples/CSharp/Second.cs similarity index 60% rename from Assets/Examples/Second.cs rename to Assets/Examples/CSharp/Second.cs index e3a5e27..5e5e42f 100644 --- a/Assets/Examples/Second.cs +++ b/Assets/Examples/CSharp/Second.cs @@ -2,8 +2,7 @@ using System.Collections; using System; -[Serializable] -public class Second : ScriptableObject { - +public class Second : ScriptableObject +{ public int x, y, z; } diff --git a/Assets/Examples/Second.cs.meta b/Assets/Examples/CSharp/Second.cs.meta similarity index 100% rename from Assets/Examples/Second.cs.meta rename to Assets/Examples/CSharp/Second.cs.meta diff --git a/Assets/Examples/Custom.meta b/Assets/Examples/Custom.meta new file mode 100644 index 0000000..b35f416 --- /dev/null +++ b/Assets/Examples/Custom.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 252de5372c0e1094ba297254f8de1ec2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/Custom/CustomAssembly.asmdef b/Assets/Examples/Custom/CustomAssembly.asmdef new file mode 100644 index 0000000..439ea36 --- /dev/null +++ b/Assets/Examples/Custom/CustomAssembly.asmdef @@ -0,0 +1,3 @@ +{ + "name": "CustomAssembly" +} diff --git a/Assets/Examples/Custom/CustomAssembly.asmdef.meta b/Assets/Examples/Custom/CustomAssembly.asmdef.meta new file mode 100644 index 0000000..c7adc1c --- /dev/null +++ b/Assets/Examples/Custom/CustomAssembly.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c236f2d47aeb7bf4093cedfaede11096 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/Custom/Fourth.cs b/Assets/Examples/Custom/Fourth.cs new file mode 100644 index 0000000..f9782be --- /dev/null +++ b/Assets/Examples/Custom/Fourth.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public class Fourth : ScriptableObject +{ + +} diff --git a/Assets/Examples/Custom/Fourth.cs.meta b/Assets/Examples/Custom/Fourth.cs.meta new file mode 100644 index 0000000..82a2979 --- /dev/null +++ b/Assets/Examples/Custom/Fourth.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e1102d949444424a84aef2841cb90b3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/Custom/Third.cs b/Assets/Examples/Custom/Third.cs new file mode 100644 index 0000000..7467c4f --- /dev/null +++ b/Assets/Examples/Custom/Third.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public class Third : ScriptableObject +{ + +} diff --git a/Assets/Examples/Custom/Third.cs.meta b/Assets/Examples/Custom/Third.cs.meta new file mode 100644 index 0000000..5175b14 --- /dev/null +++ b/Assets/Examples/Custom/Third.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9d3f84cfab3f9244a27f4aa3d11ec22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs b/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs new file mode 100644 index 0000000..b119bff --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs @@ -0,0 +1,25 @@ +using System; +using System.Linq; +using System.Reflection; +using UnityEngine; + +namespace ScriptableObjectFactory +{ + public class ReflectionHelper + { + internal const string AssemblyCsharp = "Assembly-CSharp"; + + internal static Assembly[] GetAllAssemblies() + { + return AppDomain.CurrentDomain.GetAssemblies(); + } + + internal static Type[] GetScriptableObjectTypes(Assembly[] assemblies) + { + return assemblies + .SelectMany(assembly => assembly.GetTypes()) + .Where(type => type.IsSubclassOf(typeof(ScriptableObject))) + .ToArray(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs.meta b/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs.meta new file mode 100644 index 0000000..ed2f8a9 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ReflectionHelper.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aa21e1c9c1ad4fe48c5f35e9ad0e493f +timeCreated: 1627933433 \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef new file mode 100644 index 0000000..4243c47 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef @@ -0,0 +1,16 @@ +{ + "name": "ScriptableObjectFactory", + "rootNamespace": "", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef.meta b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef.meta new file mode 100644 index 0000000..bd2db28 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba8b3661cc52c4f41bf7913c7f7be9ef +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.cs b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.cs index 3408eaf..99a20b1 100644 --- a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.cs +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactory.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using UnityEditor; -using UnityEngine; +using UnityEditor; namespace ScriptableObjectFactory { @@ -12,40 +7,8 @@ public static class ScriptableObjectFactory [MenuItem("Assets/Create/ScriptableObject")] public static void CreateScriptableObjectFactoryWindow() { - CreateScriptableObjectFactoryWindow(false); - } - - public static void CreateScriptableObjectFactoryWindow(bool getAllAssemblies) - { - - List allScriptableObjectTypes; - - try - { - var assemblies = getAllAssemblies ? GetAllAssemblies() : GetCSharpAssembly(); - - allScriptableObjectTypes = new List(from assembly in assemblies - from type in assembly.GetTypes() - where type.IsSubclassOf(typeof(ScriptableObject)) - select type); - } - catch (Exception e) - { - Debug.LogError("Error while opening scriptable object window: " + e.Message); - allScriptableObjectTypes = new List(); - } - - ScriptableObjectWindow.Init(allScriptableObjectTypes.ToArray(), getAllAssemblies); - } - - private static IEnumerable GetCSharpAssembly() - { - return new[] {Assembly.Load(new AssemblyName("Assembly-CSharp"))}; - } - - private static IEnumerable GetAllAssemblies() - { - return AppDomain.CurrentDomain.GetAssemblies(); + var assemblies = ReflectionHelper.GetAllAssemblies(); + ScriptableObjectWindow.Init(assemblies); } } } \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs new file mode 100644 index 0000000..8bc5869 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; + +namespace ScriptableObjectFactory +{ + internal class ScriptableObjectFactorySettings : ScriptableObject + { + private const string FolderPath = "Assets/Editor"; + + public TabType SelectedTab; + public List CustomAssemblies; + + private static ScriptableObjectFactorySettings _instance; + public static ScriptableObjectFactorySettings Instance + { + get + { + if (_instance == null) + { + _instance = TryToLoadAsset(); + } + if (_instance == null) + { + _instance = CreateAsset(); + } + + return _instance; + } + } + + private static ScriptableObjectFactorySettings TryToLoadAsset() + { + var assetPath = AssetDatabase.FindAssets($"t:{nameof(ScriptableObjectFactorySettings)}") + .Select(AssetDatabase.GUIDToAssetPath) + .FirstOrDefault(); + if (assetPath != null) + { + return AssetDatabase.LoadAssetAtPath(assetPath); + } + return null; + } + + private static ScriptableObjectFactorySettings CreateAsset() + { + var asset = CreateInstance(); + asset.SelectedTab = TabType.CSharp; + asset.CustomAssemblies = new List(); + if(!AssetDatabase.IsValidFolder(FolderPath)) + { + AssetDatabase.CreateFolder("Assets", "Editor"); + } + AssetDatabase.CreateAsset(asset, $"{FolderPath}/{nameof(ScriptableObjectFactorySettings)}.asset"); + AssetDatabase.SaveAssets(); + return asset; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs.meta b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs.meta new file mode 100644 index 0000000..2163a20 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectFactorySettings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7f30053fca7a41378f2e68ab3f21364a +timeCreated: 1627936335 \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectWindow.cs b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectWindow.cs index 5bbcc5a..6bf1a58 100644 --- a/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectWindow.cs +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/ScriptableObjectWindow.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using System.Reflection; using System.Text.RegularExpressions; using UnityEditor; using UnityEditor.ProjectWindowCallback; @@ -22,15 +23,15 @@ public override void Action(int instanceId, string pathName, string resourceFile public class ScriptableObjectWindow : EditorWindow { + private const string KSelectedTabKey = "ScriptablObjectFactory.SelectedTab"; private const float LabelWidth = 180f; private bool _initialFocusSet; - private string _searchFilter = string.Empty; private string SearchFilter { - get { return _searchFilter; } + get => _searchFilter; set { if (value != _searchFilter) @@ -39,60 +40,103 @@ private string SearchFilter } } + private int _selectedTypeIndex; private string[] _searchResults = { }; - private int _selectedIndex; + private Vector2 _scrollPos; + + private static Assembly[] _allAssemblies; private static string[] _scriptableObjectNames; - private static int _selectedAssembly; private static Type[] _types; private static Type[] Types { - get { return _types; } + get => _types; set { _types = value; _scriptableObjectNames = _types.Select(t => t.FullName).ToArray(); } } + + private static ScriptableObjectFactorySettings Settings => ScriptableObjectFactorySettings.Instance; - public static void Init(Type[] scriptableObjects, bool getAllAssemblies) + internal static void Init(Assembly[] allAssemblies) { - Types = scriptableObjects; - _selectedAssembly = Convert.ToInt32(getAllAssemblies); - + _allAssemblies = allAssemblies; var window = GetWindow(true, "Create a new ScriptableObject", true); window.ShowPopup(); + window.SwitchTab(Settings.SelectedTab); } - private void Awake() + private void SwitchTab(TabType tabType) { - _searchResults = FindMatchingNames(string.Empty); + Settings.SelectedTab = tabType; + + var assemblies = _allAssemblies; + + switch (tabType) + { + case TabType.CSharp: + assemblies = _allAssemblies + .Where(assembly => assembly.GetName().Name == ReflectionHelper.AssemblyCsharp) + .ToArray(); + break; + case TabType.Custom: + assemblies = _allAssemblies + .Where(assembly => Settings.CustomAssemblies.Where(x => x != null) + .Any(x => x.name == assembly?.GetName().Name)) + .ToArray(); + break; + } + + Types = ReflectionHelper.GetScriptableObjectTypes(assemblies); + UpdateSearchResults(); } public void OnGUI() { - DrawAssemblySelection(); + if (Types == null) + { + ScriptableObjectFactory.CreateScriptableObjectFactoryWindow(); + } + DrawTabSelection(); + if(Settings.SelectedTab == TabType.Custom) + DrawAssemblySelection(); DrawSearch(); DrawSelectionPopup(); DrawCreateButton(); } private void DrawAssemblySelection() + { + var selectedAssemblies = Settings.CustomAssemblies.ToArray(); + var serializedObject = new SerializedObject(Settings); + var list = serializedObject.FindProperty(nameof(ScriptableObjectFactorySettings.CustomAssemblies)); + EditorGUILayout.PropertyField(list, new GUIContent("Select Assemblies"), true); + if(!selectedAssemblies.SequenceEqual(Settings.CustomAssemblies)) + SwitchTab(Settings.SelectedTab); + } + + private void DrawTabSelection() { GUILayout.Space(6); GUILayout.BeginHorizontal(); GUILayout.Label("Assembly:", GUILayout.Width(LabelWidth)); - var selectedAssembly = GUILayout.Toolbar(_selectedAssembly, new[] {"C#", "All Assemblies"}); - if (selectedAssembly != _selectedAssembly) + var selectedTab = (TabType)GUILayout.Toolbar((int)Settings.SelectedTab, new[] {"Default Unity C#", "All Assemblies", "Custom"}); + if (selectedTab != Settings.SelectedTab) { - ScriptableObjectFactory.CreateScriptableObjectFactoryWindow(Convert.ToBoolean(selectedAssembly)); - _searchResults = FindMatchingNames(_searchFilter); + SwitchTab(selectedTab); } GUILayout.EndHorizontal(); } + private void UpdateSearchResults() + { + _searchResults = FindMatchingNames(_searchFilter); + } + private void DrawSearch() { GUILayout.Space(6); @@ -109,17 +153,13 @@ private void DrawSearch() EditorGUI.FocusTextInControl("SearchField"); } } - - private Vector2 _scrollPos; - private void DrawSelectionPopup() { GUILayout.Space(6); - using (var scope = new EditorGUILayout.ScrollViewScope(_scrollPos,EditorStyles.helpBox)) { - _selectedIndex = GUILayout.SelectionGrid(_selectedIndex, _searchResults, 1); - _scrollPos = scope.scrollPosition; - } + using var scope = new EditorGUILayout.ScrollViewScope(_scrollPos, EditorStyles.helpBox); + _selectedTypeIndex = GUILayout.SelectionGrid(_selectedTypeIndex, _searchResults, 1); + _scrollPos = scope.scrollPosition; } private void DrawCreateButton() @@ -127,14 +167,15 @@ private void DrawCreateButton() GUILayout.Space(6); if (GUILayout.Button("Create")) { - var realIndex = Array.FindIndex(_scriptableObjectNames, n => n == _searchResults[_selectedIndex]); - var asset = CreateInstance(_types[realIndex]); + var realIndex = Array.FindIndex(_scriptableObjectNames, n => n == _searchResults[_selectedTypeIndex]); + var assetType = _types[realIndex]; + var asset = CreateInstance(assetType); var fileName = _scriptableObjectNames[realIndex].Split('.').Last(); ProjectWindowUtil.StartNameEditingIfProjectWindowExists( asset.GetInstanceID(), CreateInstance(), - string.Format("{0}.asset", fileName), + $"{fileName}.asset", AssetPreview.GetMiniThumbnail(asset), null); @@ -146,14 +187,16 @@ private string[] FindMatchingNames(string filter) { var selectedName = _searchResults.Length == 0 ? string.Empty - : _searchResults[_selectedIndex]; + : _searchResults[_selectedTypeIndex]; var matchingNames = string.IsNullOrEmpty(filter) ? _scriptableObjectNames - : _scriptableObjectNames.Where(scriptableObjectname => IsMatch(scriptableObjectname, filter)).ToArray(); + : _scriptableObjectNames + .Where(scriptableObjectName => IsMatch(scriptableObjectName, filter)) + .ToArray(); var newIndex = Array.FindIndex(matchingNames, matchingName => matchingName == selectedName); - _selectedIndex = newIndex < 0 + _selectedTypeIndex = newIndex < 0 ? 0 : newIndex; diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs b/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs new file mode 100644 index 0000000..c549ff6 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs @@ -0,0 +1,9 @@ +namespace ScriptableObjectFactory +{ + internal enum TabType + { + CSharp, + All, + Custom + } +} \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs.meta b/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs.meta new file mode 100644 index 0000000..2e7bba3 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/Editor/TabType.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 03c7eeb1396c42fb814c34a90783321d +timeCreated: 1627906555 \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/README.html b/Assets/Plugins/ScriptableObjectFactory/README.html new file mode 100644 index 0000000..094e19e --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/README.html @@ -0,0 +1,10 @@ +# ScriptableObjectFactory +A Unity editor extension for creating ScriptableObjects + +Right click > Create > ScriptableObject in the project view + +[Download](https://www.dropbox.com/s/f8fwosvjt8obi6h/ScriptableObjectFactory.unitypackage?dl=0) as a .UnityPackage + +![ScriptableObjectFactory](https://i.imgur.com/qENZqro.gif) + +Based on original implementation by [liortal53](https://github.com/liortal53/ScriptableObjectFactory) \ No newline at end of file diff --git a/Assets/Plugins/ScriptableObjectFactory/package.json b/Assets/Plugins/ScriptableObjectFactory/package.json new file mode 100644 index 0000000..840dff8 --- /dev/null +++ b/Assets/Plugins/ScriptableObjectFactory/package.json @@ -0,0 +1,9 @@ +{ + "name": "com.revolter.scriptableobjectfactory", + "displayName": "Scriptable Object Factory", + "version": "1.0.0", + "unity": "2018.4", + "description": "A Unity editor extension for creating ScriptableObjects.", + "category": "editor extensions", + "dependencies": {} +} diff --git a/Packages/manifest.json b/Packages/manifest.json index 1342d0a..b365b23 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,11 +1,11 @@ { "dependencies": { - "com.unity.ads": "2.0.8", - "com.unity.analytics": "2.0.16", - "com.unity.package-manager-ui": "1.9.11", - "com.unity.purchasing": "2.0.3", - "com.unity.textmeshpro": "1.2.4", + "com.unity.ide.rider": "2.0.7", + "com.unity.ide.visualstudio": "2.0.11", + "com.unity.ide.vscode": "1.2.3", + "com.unity.test-framework": "1.1.27", "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..67f0e34 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,301 @@ +{ + "dependencies": { + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "2.0.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.11", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.3", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.27", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 426df5c..fd195fd 100644 Binary files a/ProjectSettings/ProjectSettings.asset and b/ProjectSettings/ProjectSettings.asset differ diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 20147cb..5ac0724 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1,2 @@ -m_EditorVersion: 2018.2.3f1 +m_EditorVersion: 2020.3.15f2 +m_EditorVersionWithRevision: 2020.3.15f2 (6cf78cb77498) diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..46f38e1 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ScriptableObjectFactory.csproj.DotSettings b/ScriptableObjectFactory.csproj.DotSettings new file mode 100644 index 0000000..067d21d --- /dev/null +++ b/ScriptableObjectFactory.csproj.DotSettings @@ -0,0 +1,3 @@ + + True + True \ No newline at end of file