From f846df9d8c8e2c28c2d7fc2fd6b62253d10bb5de Mon Sep 17 00:00:00 2001 From: Aggtaa Date: Sun, 11 Jan 2026 13:48:49 +0300 Subject: [PATCH] initial commit --- .gitignore | 101 + Assembly-CSharp-Editor.csproj | 1369 ++++++++ Assembly-CSharp.csproj | 1355 ++++++++ Assets/DefaultVolumeProfile.asset | 795 +++++ Assets/DefaultVolumeProfile.asset.meta | 8 + Assets/Editor.meta | 8 + Assets/Editor/DictionaryDrawer.cs | 439 +++ Assets/Editor/DictionaryDrawer.cs.meta | 2 + Assets/InputSystem_Actions.inputactions | 1057 +++++++ Assets/InputSystem_Actions.inputactions.meta | 14 + Assets/Prefabs.meta | 8 + Assets/Prefabs/Buyer.prefab | 93 + Assets/Prefabs/Buyer.prefab.meta | 7 + Assets/Prefabs/Player.prefab | 93 + Assets/Prefabs/Player.prefab.meta | 7 + Assets/Prefabs/Shelf.prefab | 194 ++ Assets/Prefabs/Shelf.prefab.meta | 7 + Assets/Scenes.meta | 8 + Assets/Scenes/MainScene.unity | 742 +++++ Assets/Scenes/MainScene.unity.meta | 7 + Assets/Scripts.meta | 8 + Assets/Scripts/Blackboard.cs | 631 ++++ Assets/Scripts/Blackboard.cs.meta | 2 + Assets/Scripts/DataPersistence.meta | 8 + Assets/Scripts/DataPersistence/Data.meta | 8 + .../Scripts/DataPersistence/Data/GameData.cs | 19 + .../DataPersistence/Data/GameData.cs.meta | 11 + .../DataPersistence/Data/InventoryData.cs | 11 + .../Data/InventoryData.cs.meta | 11 + .../DataPersistence/Data/PlayerData.cs | 7 + .../DataPersistence/Data/PlayerData.cs.meta | 2 + .../Scripts/DataPersistence/Data/ShelfData.cs | 11 + .../DataPersistence/Data/ShelfData.cs.meta | 2 + .../DataPersistence/DataPersistenceManager.cs | 156 + .../DataPersistenceManager.cs.meta | 11 + .../DataPersistence/FileDataHandler.cs | 185 ++ .../DataPersistence/FileDataHandler.cs.meta | 11 + .../DataPersistence/IDataPersistence.cs | 16 + .../DataPersistence/IDataPersistence.cs.meta | 11 + .../DataPersistence/SerializableTypes.meta | 8 + .../SerializableDictionary.cs | 57 + .../SerializableDictionary.cs.meta | 11 + Assets/Scripts/IInventoryHolder.cs | 4 + Assets/Scripts/IInventoryHolder.cs.meta | 2 + Assets/Scripts/Inventory.meta | 8 + Assets/Scripts/Inventory/Inventory.cs | 61 + Assets/Scripts/Inventory/Inventory.cs.meta | 2 + .../Scripts/Inventory/UIToolkitInfoPanel.cs | 51 + .../Inventory/UIToolkitInfoPanel.cs.meta | 2 + Assets/Scripts/Player.cs | 36 + Assets/Scripts/Player.cs.meta | 2 + Assets/Scripts/Shelf.cs | 44 + Assets/Scripts/Shelf.cs.meta | 2 + Assets/Scripts/Shelves.cs | 74 + Assets/Scripts/Shelves.cs.meta | 2 + Assets/Scripts/UI.meta | 8 + Assets/Scripts/UI/InfoBox.cs | 62 + Assets/Scripts/UI/InfoBox.cs.meta | 2 + Assets/Settings.meta | 8 + .../Settings/Lit2DSceneTemplate.scenetemplate | 71 + .../Lit2DSceneTemplate.scenetemplate.meta | 8 + Assets/Settings/Renderer2D.asset | 69 + Assets/Settings/Renderer2D.asset.meta | 8 + Assets/Settings/Scenes.meta | 8 + .../Settings/Scenes/URP2DSceneTemplate.unity | 350 +++ .../Scenes/URP2DSceneTemplate.unity.meta | 7 + Assets/Settings/UniversalRP.asset | 143 + Assets/Settings/UniversalRP.asset.meta | 8 + Assets/UI Toolkit.meta | 8 + Assets/UI Toolkit/UnityThemes.meta | 8 + .../UnityThemes/UnityDefaultRuntimeTheme.tss | 1 + .../UnityDefaultRuntimeTheme.tss.meta | 12 + Assets/UI.meta | 8 + Assets/UI/InfoBox.asset | 52 + Assets/UI/InfoBox.asset.meta | 8 + Assets/UI/InfoBox.uss | 3 + Assets/UI/InfoBox.uss.meta | 12 + Assets/UI/InfoBox.uxml | 4 + Assets/UI/InfoBox.uxml.meta | 10 + ...niversalRenderPipelineGlobalSettings.asset | 380 +++ ...salRenderPipelineGlobalSettings.asset.meta | 8 + MonsterShop.slnx | 4 + Packages/manifest.json | 51 + Packages/packages-lock.json | 528 ++++ ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 36 + ProjectSettings/EditorBuildSettings.asset | 13 + ProjectSettings/EditorSettings.asset | 50 + ProjectSettings/GraphicsSettings.asset | 69 + ProjectSettings/InputManager.asset | 487 +++ ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/MultiplayerManager.asset | 7 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/PackageManagerSettings.asset | 40 + .../MultiplayerRolesSettings.asset | 17 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 700 +++++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 336 ++ ProjectSettings/SceneTemplateSettings.json | 121 + ProjectSettings/ShaderGraphSettings.asset | 19 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/URPProjectSettings.asset | 16 + ProjectSettings/UnityConnectSettings.asset | 40 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 7 + ProjectSettings/XRSettings.asset | 10 + UIElementsSchema/UIElements.xsd | 34 + .../Unity.Multiplayer.PlayMode.Editor.xsd | 50 + .../Unity.Profiling.Editor.UI.xsd | 142 + UIElementsSchema/Unity.Profiling.Editor.xsd | 129 + UIElementsSchema/Unity.UI.Builder.xsd | 2762 +++++++++++++++++ UIElementsSchema/Unity.UIToolkit.Editor.xsd | 126 + .../UnityEditor.Accessibility.xsd | 121 + .../UnityEditor.Audio.UIElements.xsd | 101 + .../UnityEditor.Experimental.GraphView.xsd | 75 + ...r.Inspector.GraphicsSettingsInspectors.xsd | 27 + UIElementsSchema/UnityEditor.Inspector.xsd | 31 + UIElementsSchema/UnityEditor.Overlays.xsd | 130 + ...UnityEditor.PackageManager.UI.Internal.xsd | 970 ++++++ UIElementsSchema/UnityEditor.Rendering.xsd | 82 + UIElementsSchema/UnityEditor.Search.xsd | 31 + .../UnityEditor.ShaderGraph.Drawing.xsd | 96 + .../UnityEditor.ShortcutManagement.xsd | 52 + .../UnityEditor.Tilemaps.External.xsd | 38 + UIElementsSchema/UnityEditor.Tilemaps.xsd | 364 +++ UIElementsSchema/UnityEditor.Toolbars.xsd | 37 + ...itor.U2D.Animation.SpriteLibraryEditor.xsd | 177 ++ .../UnityEditor.U2D.Animation.Upgrading.xsd | 30 + .../UnityEditor.U2D.Animation.xsd | 395 +++ UIElementsSchema/UnityEditor.U2D.Layout.xsd | 73 + ...ityEditor.U2D.Sprites.SpriteEditorTool.xsd | 27 + ...2D.Tooling.Analyzer.UIElement.OKCancel.xsd | 27 + ...yEditor.U2D.Tooling.Analyzer.UIElement.xsd | 107 + .../UnityEditor.U2D.Tooling.Analyzer.xsd | 122 + .../UnityEditor.UIElements.Debugger.xsd | 28 + ...UnityEditor.UIElements.ProjectSettings.xsd | 127 + UIElementsSchema/UnityEditor.UIElements.xsd | 793 +++++ UIElementsSchema/UnityEngine.UIElements.xsd | 2484 +++++++++++++++ 143 files changed, 21694 insertions(+) create mode 100644 .gitignore create mode 100644 Assembly-CSharp-Editor.csproj create mode 100644 Assembly-CSharp.csproj create mode 100644 Assets/DefaultVolumeProfile.asset create mode 100644 Assets/DefaultVolumeProfile.asset.meta create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/DictionaryDrawer.cs create mode 100644 Assets/Editor/DictionaryDrawer.cs.meta create mode 100644 Assets/InputSystem_Actions.inputactions create mode 100644 Assets/InputSystem_Actions.inputactions.meta create mode 100644 Assets/Prefabs.meta create mode 100644 Assets/Prefabs/Buyer.prefab create mode 100644 Assets/Prefabs/Buyer.prefab.meta create mode 100644 Assets/Prefabs/Player.prefab create mode 100644 Assets/Prefabs/Player.prefab.meta create mode 100644 Assets/Prefabs/Shelf.prefab create mode 100644 Assets/Prefabs/Shelf.prefab.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/MainScene.unity create mode 100644 Assets/Scenes/MainScene.unity.meta create mode 100644 Assets/Scripts.meta create mode 100644 Assets/Scripts/Blackboard.cs create mode 100644 Assets/Scripts/Blackboard.cs.meta create mode 100644 Assets/Scripts/DataPersistence.meta create mode 100644 Assets/Scripts/DataPersistence/Data.meta create mode 100644 Assets/Scripts/DataPersistence/Data/GameData.cs create mode 100644 Assets/Scripts/DataPersistence/Data/GameData.cs.meta create mode 100644 Assets/Scripts/DataPersistence/Data/InventoryData.cs create mode 100644 Assets/Scripts/DataPersistence/Data/InventoryData.cs.meta create mode 100644 Assets/Scripts/DataPersistence/Data/PlayerData.cs create mode 100644 Assets/Scripts/DataPersistence/Data/PlayerData.cs.meta create mode 100644 Assets/Scripts/DataPersistence/Data/ShelfData.cs create mode 100644 Assets/Scripts/DataPersistence/Data/ShelfData.cs.meta create mode 100644 Assets/Scripts/DataPersistence/DataPersistenceManager.cs create mode 100644 Assets/Scripts/DataPersistence/DataPersistenceManager.cs.meta create mode 100644 Assets/Scripts/DataPersistence/FileDataHandler.cs create mode 100644 Assets/Scripts/DataPersistence/FileDataHandler.cs.meta create mode 100644 Assets/Scripts/DataPersistence/IDataPersistence.cs create mode 100644 Assets/Scripts/DataPersistence/IDataPersistence.cs.meta create mode 100644 Assets/Scripts/DataPersistence/SerializableTypes.meta create mode 100644 Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs create mode 100644 Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs.meta create mode 100644 Assets/Scripts/IInventoryHolder.cs create mode 100644 Assets/Scripts/IInventoryHolder.cs.meta create mode 100644 Assets/Scripts/Inventory.meta create mode 100644 Assets/Scripts/Inventory/Inventory.cs create mode 100644 Assets/Scripts/Inventory/Inventory.cs.meta create mode 100644 Assets/Scripts/Inventory/UIToolkitInfoPanel.cs create mode 100644 Assets/Scripts/Inventory/UIToolkitInfoPanel.cs.meta create mode 100644 Assets/Scripts/Player.cs create mode 100644 Assets/Scripts/Player.cs.meta create mode 100644 Assets/Scripts/Shelf.cs create mode 100644 Assets/Scripts/Shelf.cs.meta create mode 100644 Assets/Scripts/Shelves.cs create mode 100644 Assets/Scripts/Shelves.cs.meta create mode 100644 Assets/Scripts/UI.meta create mode 100644 Assets/Scripts/UI/InfoBox.cs create mode 100644 Assets/Scripts/UI/InfoBox.cs.meta create mode 100644 Assets/Settings.meta create mode 100644 Assets/Settings/Lit2DSceneTemplate.scenetemplate create mode 100644 Assets/Settings/Lit2DSceneTemplate.scenetemplate.meta create mode 100644 Assets/Settings/Renderer2D.asset create mode 100644 Assets/Settings/Renderer2D.asset.meta create mode 100644 Assets/Settings/Scenes.meta create mode 100644 Assets/Settings/Scenes/URP2DSceneTemplate.unity create mode 100644 Assets/Settings/Scenes/URP2DSceneTemplate.unity.meta create mode 100644 Assets/Settings/UniversalRP.asset create mode 100644 Assets/Settings/UniversalRP.asset.meta create mode 100644 Assets/UI Toolkit.meta create mode 100644 Assets/UI Toolkit/UnityThemes.meta create mode 100644 Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss create mode 100644 Assets/UI Toolkit/UnityThemes/UnityDefaultRuntimeTheme.tss.meta create mode 100644 Assets/UI.meta create mode 100644 Assets/UI/InfoBox.asset create mode 100644 Assets/UI/InfoBox.asset.meta create mode 100644 Assets/UI/InfoBox.uss create mode 100644 Assets/UI/InfoBox.uss.meta create mode 100644 Assets/UI/InfoBox.uxml create mode 100644 Assets/UI/InfoBox.uxml.meta create mode 100644 Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 Assets/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 MonsterShop.slnx create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/MultiplayerManager.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/NetworkManager.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Packages/com.unity.dedicated-server/MultiplayerRolesSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/ShaderGraphSettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/URPProjectSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 UIElementsSchema/UIElements.xsd create mode 100644 UIElementsSchema/Unity.Multiplayer.PlayMode.Editor.xsd create mode 100644 UIElementsSchema/Unity.Profiling.Editor.UI.xsd create mode 100644 UIElementsSchema/Unity.Profiling.Editor.xsd create mode 100644 UIElementsSchema/Unity.UI.Builder.xsd create mode 100644 UIElementsSchema/Unity.UIToolkit.Editor.xsd create mode 100644 UIElementsSchema/UnityEditor.Accessibility.xsd create mode 100644 UIElementsSchema/UnityEditor.Audio.UIElements.xsd create mode 100644 UIElementsSchema/UnityEditor.Experimental.GraphView.xsd create mode 100644 UIElementsSchema/UnityEditor.Inspector.GraphicsSettingsInspectors.xsd create mode 100644 UIElementsSchema/UnityEditor.Inspector.xsd create mode 100644 UIElementsSchema/UnityEditor.Overlays.xsd create mode 100644 UIElementsSchema/UnityEditor.PackageManager.UI.Internal.xsd create mode 100644 UIElementsSchema/UnityEditor.Rendering.xsd create mode 100644 UIElementsSchema/UnityEditor.Search.xsd create mode 100644 UIElementsSchema/UnityEditor.ShaderGraph.Drawing.xsd create mode 100644 UIElementsSchema/UnityEditor.ShortcutManagement.xsd create mode 100644 UIElementsSchema/UnityEditor.Tilemaps.External.xsd create mode 100644 UIElementsSchema/UnityEditor.Tilemaps.xsd create mode 100644 UIElementsSchema/UnityEditor.Toolbars.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Animation.SpriteLibraryEditor.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Animation.Upgrading.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Animation.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Layout.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Sprites.SpriteEditorTool.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Tooling.Analyzer.UIElement.OKCancel.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Tooling.Analyzer.UIElement.xsd create mode 100644 UIElementsSchema/UnityEditor.U2D.Tooling.Analyzer.xsd create mode 100644 UIElementsSchema/UnityEditor.UIElements.Debugger.xsd create mode 100644 UIElementsSchema/UnityEditor.UIElements.ProjectSettings.xsd create mode 100644 UIElementsSchema/UnityEditor.UIElements.xsd create mode 100644 UIElementsSchema/UnityEngine.UIElements.xsd diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57f745b --- /dev/null +++ b/.gitignore @@ -0,0 +1,101 @@ +.vscode + +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +.utmp/ +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ +*.log + +# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control. +*.blend1 +*.blend1.meta + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# 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* +# Jetbrains Rider personal-layer settings +*.DotSettings.user + +# 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 + +# Mono auto generated files +mono_crash.* + +# Builds +*.apk +*.aab +*.unitypackage +*.unitypackage.meta +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# TestRunner generated files +InitTestScene*.unity* + +# Addressables default ignores, before user customizations +/ServerData +/[Aa]ssets/StreamingAssets/aa* +/[Aa]ssets/AddressableAssetsData/link.xml* +/[Aa]ssets/Addressables_Temp* +# By default, Addressables content builds will generate addressables_content_state.bin +# files in platform-specific subfolders, for example: +# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin +/[Aa]ssets/AddressableAssetsData/*/*.bin* + +# Visual Scripting auto-generated files +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta + +# Auto-generated scenes by play mode tests +/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity* diff --git a/Assembly-CSharp-Editor.csproj b/Assembly-CSharp-Editor.csproj new file mode 100644 index 0000000..c60ff15 --- /dev/null +++ b/Assembly-CSharp-Editor.csproj @@ -0,0 +1,1369 @@ + + + + Temp\obj\$(MSBuildProjectName) + $(BaseIntermediateOutputPath) + false + true + Temp\bin\Debug\ + + + + + + + false + false + 9.0 + + Library + Assembly-CSharp-Editor + netstandard2.1 + . + + + 0169;USG0001 + UNITY_6000_3_2;UNITY_6000_3;UNITY_6000;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_2022_2_OR_NEWER;UNITY_2022_3_OR_NEWER;UNITY_2023_1_OR_NEWER;UNITY_2023_2_OR_NEWER;UNITY_2023_3_OR_NEWER;UNITY_6000_0_OR_NEWER;UNITY_6000_1_OR_NEWER;UNITY_6000_2_OR_NEWER;UNITY_6000_3_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AR;ENABLE_AUDIO;ENABLE_AUDIO_SCRIPTABLE_PIPELINE;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_UNITY_CONSENT;ENABLE_UNITY_CLOUD_IDENTIFIERS;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_NATIVE_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_UNITY_GAME_SERVICES_ANALYTICS_SUPPORT;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_GENERATE_NATIVE_PLUGINS_FOR_ASSEMBLIES_API;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_MARSHALLING_TESTS;ENABLE_VIDEO;ENABLE_NAVIGATION_OFFMESHLINK_TO_NAVMESHLINK;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;ENABLE_ACCESSIBILITY_SCREEN_READER;TEXTCORE_1_0_OR_NEWER;EDITOR_ONLY_NAVMESH_BUILDER_DEPRECATED;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_NVIDIA;ENABLE_AMD;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_CLOUD_SERVICES_ENGINE_DIAGNOSTICS;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;PLATFORM_USES_EXPLICIT_MEMORY_MANAGER_INITIALIZER;PLATFORM_SUPPORTS_WAIT_FOR_PRESENTATION;PLATFORM_SUPPORTS_SPLIT_GRAPHICS_JOBS;ENABLE_MONO;NET_4_6;NET_UNITY_4_8;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;TEXTCORE_FONT_ENGINE_1_5_OR_NEWER;TEXTCORE_TEXT_ENGINE_1_5_OR_NEWER;TEXTCORE_FONT_ENGINE_1_6_OR_NEWER;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER;UNITY_EDITOR_ONLY_COMPILATION + False + + + true + true + true + true + MSB3277 + + + Package + 2.0.25 + SDK + Editor:5 + StandaloneWindows64:19 + 6000.3.2f1 + + + + + + + + + + + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AMDModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AdaptivePerformanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ContentLoadModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GraphicsStateCollectionSerializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.HierarchyModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.HierarchyCoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.IdentifiersModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputForUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InsightsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.MarshallingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.MultiplayerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.NVIDIAModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsBackendPhysXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PropertiesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.RenderAs2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ShaderRuntimeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ShaderVariantAnalyticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreFontEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreTextEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsCommonModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConsentModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityCurlModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VectorGraphicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VirtualTexturingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AccessibilityModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AdaptivePerformanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AssetComplianceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.BuildProfileModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ClothModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreBusinessMetricsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.DeviceSimulatorModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.DiagnosticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.EditorToolbarModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.EmbreeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphViewModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphicsStateCollectionSerializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GridAndSnapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GridModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.HierarchyModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.InAppPurchasingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.LevelPlayModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.MediaModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.MultiplayerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.Physics2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PlayModeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PresetsUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PropertiesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.QuickSearchModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SafeModeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneTemplateModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneViewModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderBuildSettingsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderCompilationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderFoundryModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SketchUpModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SpriteMaskModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SpriteShapeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SubstanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TerrainModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextCoreFontEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextCoreTextEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextRenderingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TilemapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TreeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIAutomationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIBuilderModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsSamplesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIToolkitAuthoringModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UmbraModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VFXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VectorGraphicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VideoModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.XRModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEditor.Graphs.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\PlaybackEngines\WindowsStandaloneSupport\UnityEditor.WindowsStandalone.Extensions.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.LowLevel.ILSupport\Unity.Collections.LowLevel.ILSupport.dll + False + + + Library\PackageCache\com.unity.ext.nunit@d8c07649098d\net40\unity-custom\nunit.framework.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.Tests\System.IO.Hashing\System.IO.Hashing.dll + False + + + Library\PackageCache\com.unity.nuget.mono-cecil@ecb9724e46ff\Mono.Cecil.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.Tests\System.Runtime.CompilerServices.Unsafe\System.Runtime.CompilerServices.Unsafe.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\mscorlib.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Core.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Runtime.Serialization.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Xml.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Xml.Linq.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Numerics.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Numerics.Vectors.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Net.Http.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.IO.Compression.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Microsoft.CSharp.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Data.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Data.DataSetExtensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Drawing.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.IO.Compression.FileSystem.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.ComponentModel.Composition.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\System.Transactions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\Microsoft.Win32.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\netstandard.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.AppContext.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Buffers.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Collections.Concurrent.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Collections.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Collections.NonGeneric.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Collections.Specialized.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ComponentModel.Annotations.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ComponentModel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ComponentModel.EventBasedAsync.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ComponentModel.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ComponentModel.TypeConverter.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Console.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Data.Common.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.Contracts.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.Debug.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.FileVersionInfo.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.Process.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.StackTrace.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.TextWriterTraceListener.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.Tools.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Diagnostics.TraceSource.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Drawing.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Dynamic.Runtime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Globalization.Calendars.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Globalization.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Globalization.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.Compression.ZipFile.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.FileSystem.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.FileSystem.DriveInfo.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.FileSystem.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.FileSystem.Watcher.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.IsolatedStorage.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.MemoryMappedFiles.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.Pipes.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.IO.UnmanagedMemoryStream.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Linq.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Linq.Expressions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Linq.Parallel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Linq.Queryable.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Memory.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Http.Rtc.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.NameResolution.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.NetworkInformation.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Ping.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Requests.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Security.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.Sockets.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.WebHeaderCollection.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.WebSockets.Client.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Net.WebSockets.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ObjectModel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.DispatchProxy.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.Emit.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.Emit.ILGeneration.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.Emit.Lightweight.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Reflection.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Resources.Reader.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Resources.ResourceManager.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Resources.Writer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.CompilerServices.VisualC.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Handles.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.InteropServices.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.InteropServices.RuntimeInformation.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.InteropServices.WindowsRuntime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Numerics.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Serialization.Formatters.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Serialization.Json.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Serialization.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Runtime.Serialization.Xml.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Claims.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Cryptography.Algorithms.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Cryptography.Csp.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Cryptography.Encoding.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Cryptography.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Cryptography.X509Certificates.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.Principal.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Security.SecureString.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ServiceModel.Duplex.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ServiceModel.Http.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ServiceModel.NetTcp.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ServiceModel.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ServiceModel.Security.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Text.Encoding.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Text.Encoding.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Text.RegularExpressions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Overlapped.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Tasks.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Tasks.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Tasks.Parallel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Thread.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.ThreadPool.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Threading.Timer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.ValueTuple.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.ReaderWriter.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XDocument.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XmlDocument.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XmlSerializer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.XDocument.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Path.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Sprite.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEngineBridge.001.dll + False + + + Library\ScriptAssemblies\Unity.TextMeshPro.dll + False + + + Library\ScriptAssemblies\PsdPlugin.dll + False + + + Library\ScriptAssemblies\Unity.Rendering.LightTransport.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.ShaderLibrary.dll + False + + + Library\ScriptAssemblies\Unity.2D.IK.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.2D.Animation.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEditorBridge.001.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.2D.Editor.Overrides.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Timeline.dll + False + + + Library\ScriptAssemblies\PPv2URPConverters.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tooling.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Animation.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Runtime.Shared.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.2D.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Searcher.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Burst.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Mathematics.Editor.dll + False + + + Library\ScriptAssemblies\Unity.UnifiedRayTracing.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.2D.Aseprite.Common.dll + False + + + Library\ScriptAssemblies\Unity.2D.Aseprite.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Psdimporter.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll + False + + + Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Extras.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Extras.dll + False + + + Library\ScriptAssemblies\Unity.2D.IK.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.SpriteShape.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Collections.dll + False + + + Library\ScriptAssemblies\Unity.InputSystem.ForUI.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.GPUDriven.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Timeline.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Mathematics.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Shaders.dll + False + + + Library\ScriptAssemblies\UnityEngine.UI.dll + False + + + Library\ScriptAssemblies\Unity.Burst.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEngineBridge.004.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Config.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipeline.Universal.ShaderLibrary.dll + False + + + Library\ScriptAssemblies\Unity.Collections.Editor.dll + False + + + Library\ScriptAssemblies\Unity.ShaderGraph.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Sprite.AIIntegration.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Editor.Shared.dll + False + + + Library\ScriptAssemblies\Unity.2D.SpriteShape.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InputSystem.dll + False + + + Library\ScriptAssemblies\UnityEditor.UI.dll + False + + + + + + + + + + + + + + + + + diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj new file mode 100644 index 0000000..c3cd066 --- /dev/null +++ b/Assembly-CSharp.csproj @@ -0,0 +1,1355 @@ + + + + Temp\obj\$(MSBuildProjectName) + $(BaseIntermediateOutputPath) + false + true + Temp\bin\Debug\ + + + + + + + false + false + 9.0 + + Library + Assembly-CSharp + netstandard2.1 + . + + + 0169;USG0001 + UNITY_6000_3_2;UNITY_6000_3;UNITY_6000;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;UNITY_2021_1_OR_NEWER;UNITY_2021_2_OR_NEWER;UNITY_2021_3_OR_NEWER;UNITY_2022_1_OR_NEWER;UNITY_2022_2_OR_NEWER;UNITY_2022_3_OR_NEWER;UNITY_2023_1_OR_NEWER;UNITY_2023_2_OR_NEWER;UNITY_2023_3_OR_NEWER;UNITY_6000_0_OR_NEWER;UNITY_6000_1_OR_NEWER;UNITY_6000_2_OR_NEWER;UNITY_6000_3_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AR;ENABLE_AUDIO;ENABLE_AUDIO_SCRIPTABLE_PIPELINE;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_UNITY_CONSENT;ENABLE_UNITY_CLOUD_IDENTIFIERS;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_NATIVE_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_EDITOR_GAME_SERVICES;ENABLE_UNITY_GAME_SERVICES_ANALYTICS_SUPPORT;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_GENERATE_NATIVE_PLUGINS_FOR_ASSEMBLIES_API;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_MARSHALLING_TESTS;ENABLE_VIDEO;ENABLE_NAVIGATION_OFFMESHLINK_TO_NAVMESHLINK;ENABLE_ACCELERATOR_CLIENT_DEBUGGING;ENABLE_ACCESSIBILITY_SCREEN_READER;TEXTCORE_1_0_OR_NEWER;EDITOR_ONLY_NAVMESH_BUILDER_DEPRECATED;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_NVIDIA;ENABLE_AMD;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_CLOUD_SERVICES_ENGINE_DIAGNOSTICS;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;PLATFORM_USES_EXPLICIT_MEMORY_MANAGER_INITIALIZER;PLATFORM_SUPPORTS_WAIT_FOR_PRESENTATION;PLATFORM_SUPPORTS_SPLIT_GRAPHICS_JOBS;ENABLE_MONO;NET_STANDARD_2_0;NET_STANDARD;NET_STANDARD_2_1;NETSTANDARD;NETSTANDARD2_1;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;TEXTCORE_FONT_ENGINE_1_5_OR_NEWER;TEXTCORE_TEXT_ENGINE_1_5_OR_NEWER;TEXTCORE_FONT_ENGINE_1_6_OR_NEWER;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + False + + + true + true + true + true + MSB3277 + + + Package + 2.0.25 + SDK + Game:1 + StandaloneWindows64:19 + 6000.3.2f1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AdaptivePerformanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ContentLoadModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GraphicsStateCollectionSerializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.HierarchyCoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.IdentifiersModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputForUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.InsightsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.MarshallingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.MultiplayerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsBackendPhysXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.PropertiesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.RenderAs2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ShaderRuntimeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.ShaderVariantAnalyticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreFontEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreTextEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsCommonModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConsentModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityCurlModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VectorGraphicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.VirtualTexturingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AccessibilityModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AdaptivePerformanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.AssetComplianceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.BuildProfileModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ClothModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreBusinessMetricsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.DeviceSimulatorModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.DiagnosticsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.EditorToolbarModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.EmbreeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphViewModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphicsStateCollectionSerializerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GridAndSnapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.GridModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.HierarchyModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.InAppPurchasingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.LevelPlayModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.MediaModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.MultiplayerModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.Physics2DModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PhysicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PlayModeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PresetsUIModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.PropertiesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.QuickSearchModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SafeModeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneTemplateModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneViewModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderBuildSettingsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderCompilationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.ShaderFoundryModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SketchUpModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SpriteMaskModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SpriteShapeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.SubstanceModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TerrainModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextCoreFontEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextCoreTextEngineModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TextRenderingModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TilemapModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.TreeModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIAutomationModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIBuilderModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsSamplesModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIToolkitAuthoringModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UmbraModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VFXModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VectorGraphicsModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.VideoModule.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\Managed\UnityEngine\UnityEditor.XRModule.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.LowLevel.ILSupport\Unity.Collections.LowLevel.ILSupport.dll + False + + + Library\PackageCache\com.unity.ext.nunit@d8c07649098d\net40\unity-custom\nunit.framework.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.Tests\System.IO.Hashing\System.IO.Hashing.dll + False + + + Library\PackageCache\com.unity.nuget.mono-cecil@ecb9724e46ff\Mono.Cecil.dll + False + + + Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.Tests\System.Runtime.CompilerServices.Unsafe\System.Runtime.CompilerServices.Unsafe.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\ref\2.1.0\netstandard.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\Microsoft.Win32.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.AppContext.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Buffers.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Collections.Concurrent.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Collections.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Collections.NonGeneric.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Collections.Specialized.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ComponentModel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ComponentModel.EventBasedAsync.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ComponentModel.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ComponentModel.TypeConverter.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Console.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Data.Common.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.Contracts.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.Debug.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.FileVersionInfo.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.Process.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.StackTrace.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.TextWriterTraceListener.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.Tools.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.TraceSource.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Diagnostics.Tracing.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Drawing.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Dynamic.Runtime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Globalization.Calendars.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Globalization.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Globalization.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.Compression.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.Compression.ZipFile.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.FileSystem.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.FileSystem.DriveInfo.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.FileSystem.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.FileSystem.Watcher.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.IsolatedStorage.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.MemoryMappedFiles.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.Pipes.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.IO.UnmanagedMemoryStream.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Linq.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Linq.Expressions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Linq.Parallel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Linq.Queryable.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Memory.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Http.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.NameResolution.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.NetworkInformation.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Ping.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Requests.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Security.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.Sockets.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.WebHeaderCollection.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.WebSockets.Client.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Net.WebSockets.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Numerics.Vectors.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ObjectModel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.DispatchProxy.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Emit.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Emit.ILGeneration.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Emit.Lightweight.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Resources.Reader.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Resources.ResourceManager.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Resources.Writer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.CompilerServices.VisualC.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Handles.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.InteropServices.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.InteropServices.RuntimeInformation.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Numerics.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Serialization.Formatters.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Serialization.Json.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Serialization.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Runtime.Serialization.Xml.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Claims.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Cryptography.Algorithms.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Cryptography.Csp.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Cryptography.Encoding.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Cryptography.Primitives.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Cryptography.X509Certificates.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.Principal.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Security.SecureString.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Text.Encoding.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Text.Encoding.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Text.RegularExpressions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Overlapped.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Tasks.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Tasks.Extensions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Tasks.Parallel.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Thread.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.ThreadPool.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Threading.Timer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.ValueTuple.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.ReaderWriter.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.XDocument.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.XmlDocument.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.XmlSerializer.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.XPath.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Xml.XPath.XDocument.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\Extensions\2.0.0\System.Runtime.InteropServices.WindowsRuntime.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\mscorlib.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.ComponentModel.Composition.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Core.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Data.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Drawing.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.IO.Compression.FileSystem.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Net.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Numerics.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Runtime.Serialization.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.ServiceModel.Web.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Transactions.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Web.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Windows.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Linq.dll + False + + + C:\Program Files\Unity\Hub\Editor\6000.3.2f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Path.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Sprite.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEngineBridge.001.dll + False + + + Library\ScriptAssemblies\Unity.TextMeshPro.dll + False + + + Library\ScriptAssemblies\PsdPlugin.dll + False + + + Library\ScriptAssemblies\Unity.Rendering.LightTransport.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.ShaderLibrary.dll + False + + + Library\ScriptAssemblies\Unity.2D.IK.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.2D.Animation.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEditorBridge.001.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.2D.Editor.Overrides.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Timeline.dll + False + + + Library\ScriptAssemblies\PPv2URPConverters.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tooling.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Animation.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Runtime.Shared.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.2D.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Searcher.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Burst.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Mathematics.Editor.dll + False + + + Library\ScriptAssemblies\Unity.UnifiedRayTracing.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.2D.Aseprite.Common.dll + False + + + Library\ScriptAssemblies\Unity.2D.Aseprite.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Psdimporter.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll + False + + + Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Extras.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Extras.dll + False + + + Library\ScriptAssemblies\Unity.2D.IK.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.SpriteShape.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Tilemap.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Common.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Collections.dll + False + + + Library\ScriptAssemblies\Unity.InputSystem.ForUI.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.GPUDriven.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.Timeline.Editor.dll + False + + + Library\ScriptAssemblies\Unity.Mathematics.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Shaders.dll + False + + + Library\ScriptAssemblies\UnityEngine.UI.dll + False + + + Library\ScriptAssemblies\Unity.Burst.dll + False + + + Library\ScriptAssemblies\Unity.InternalAPIEngineBridge.004.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Config.Runtime.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipeline.Universal.ShaderLibrary.dll + False + + + Library\ScriptAssemblies\Unity.Collections.Editor.dll + False + + + Library\ScriptAssemblies\Unity.ShaderGraph.Editor.dll + False + + + Library\ScriptAssemblies\Unity.2D.Sprite.AIIntegration.Editor.dll + False + + + Library\ScriptAssemblies\Unity.RenderPipelines.Core.Editor.Shared.dll + False + + + Library\ScriptAssemblies\Unity.2D.SpriteShape.Editor.dll + False + + + Library\ScriptAssemblies\Unity.InputSystem.dll + False + + + Library\ScriptAssemblies\UnityEditor.UI.dll + False + + + + + + + + + + + + + + + + diff --git a/Assets/DefaultVolumeProfile.asset b/Assets/DefaultVolumeProfile.asset new file mode 100644 index 0000000..0cd0e1a --- /dev/null +++ b/Assets/DefaultVolumeProfile.asset @@ -0,0 +1,795 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8186968272690591729 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} + m_Name: ColorCurves + m_EditorClassIdentifier: + active: 1 + master: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + red: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + green: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + blue: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsHue: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + satVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + lumVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &-7645455725216806467 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} + m_Name: FilmGrain + m_EditorClassIdentifier: + active: 1 + type: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + response: + m_OverrideState: 1 + m_Value: 0.8 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} +--- !u!114 &-6951754464447674219 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + midtones: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 1 + m_Value: 0 + shadowsEnd: + m_OverrideState: 1 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 1 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-4210620904635426390 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} + m_Name: ChannelMixer + m_EditorClassIdentifier: + active: 1 + redOutRedIn: + m_OverrideState: 1 + m_Value: 100 + redOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + redOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + greenOutRedIn: + m_OverrideState: 1 + m_Value: 0 + greenOutGreenIn: + m_OverrideState: 1 + m_Value: 100 + greenOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + blueOutRedIn: + m_OverrideState: 1 + m_Value: 0 + blueOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + blueOutBlueIn: + m_OverrideState: 1 + m_Value: 100 +--- !u!114 &-3978695733392391637 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 65472 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + downscale: + m_OverrideState: 1 + m_Value: 0 + maxIterations: + m_OverrideState: 1 + m_Value: 6 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-3757877592200609216 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} + m_Name: SplitToning + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + highlights: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + balance: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-3386560400091697801 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1083910812058648046 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} + m_Name: ProbeVolumesOptions + m_EditorClassIdentifier: + active: 1 + normalBias: + m_OverrideState: 1 + m_Value: 0.05 + viewBias: + m_OverrideState: 1 + m_Value: 0.1 + scaleBiasWithMinProbeDistance: + m_OverrideState: 1 + m_Value: 0 + samplingNoise: + m_OverrideState: 1 + m_Value: 0.1 + animateSamplingNoise: + m_OverrideState: 1 + m_Value: 1 + leakReductionMode: + m_OverrideState: 1 + m_Value: 2 + minValidDotProductValue: + m_OverrideState: 1 + m_Value: 0.1 + occlusionOnlyReflectionNormalization: + m_OverrideState: 1 + m_Value: 1 + intensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + skyOcclusionIntensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + worldOffset: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} +--- !u!114 &-277880470225475626 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: 1247868777620691934} + - {fileID: -277880470225475626} + - {fileID: 2338690907228448291} + - {fileID: 2335868966179733374} + - {fileID: 3460444317416099510} + - {fileID: 7933203426823181213} + - {fileID: 5762530381802164056} + - {fileID: -3386560400091697801} + - {fileID: 156332030701414761} + - {fileID: 9099548931283147545} + - {fileID: -3757877592200609216} + - {fileID: 2332282131777942337} + - {fileID: -4210620904635426390} + - {fileID: -6951754464447674219} + - {fileID: 8549655192814258499} + - {fileID: -7645455725216806467} + - {fileID: -8186968272690591729} + - {fileID: -3978695733392391637} + - {fileID: -1083910812058648046} +--- !u!114 &156332030701414761 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 1 + lift: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &1247868777620691934 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + neutralHDRRangeReductionMode: + m_OverrideState: 1 + m_Value: 2 + acesPreset: + m_OverrideState: 1 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 1 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 1000 +--- !u!114 &2332282131777942337 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} + m_Name: ColorLookup + m_EditorClassIdentifier: + active: 1 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + contribution: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &2335868966179733374 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + xMultiplier: + m_OverrideState: 1 + m_Value: 1 + yMultiplier: + m_OverrideState: 1 + m_Value: 1 + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + scale: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &2338690907228448291 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} + m_Name: WhiteBalance + m_EditorClassIdentifier: + active: 1 + temperature: + m_OverrideState: 1 + m_Value: 0 + tint: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3460444317416099510 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &5762530381802164056 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} + m_Name: ScreenSpaceLensFlare + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + tintColor: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + bloomMip: + m_OverrideState: 1 + m_Value: 1 + firstFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + secondaryFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareScale: + m_OverrideState: 1 + m_Value: {x: 1, y: 1} + samples: + m_OverrideState: 1 + m_Value: 1 + sampleDimmer: + m_OverrideState: 1 + m_Value: 0.5 + vignetteEffect: + m_OverrideState: 1 + m_Value: 1 + startingPosition: + m_OverrideState: 1 + m_Value: 1.25 + scale: + m_OverrideState: 1 + m_Value: 1.5 + streaksIntensity: + m_OverrideState: 1 + m_Value: 0 + streaksLength: + m_OverrideState: 1 + m_Value: 0.5 + streaksOrientation: + m_OverrideState: 1 + m_Value: 0 + streaksThreshold: + m_OverrideState: 1 + m_Value: 0.25 + resolution: + m_OverrideState: 1 + m_Value: 4 + chromaticAbberationIntensity: + m_OverrideState: 1 + m_Value: 0.5 +--- !u!114 &7933203426823181213 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 0 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &8549655192814258499 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &9099548931283147545 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} + m_Name: PaniniProjection + m_EditorClassIdentifier: + active: 1 + distance: + m_OverrideState: 1 + m_Value: 0 + cropToFit: + m_OverrideState: 1 + m_Value: 1 diff --git a/Assets/DefaultVolumeProfile.asset.meta b/Assets/DefaultVolumeProfile.asset.meta new file mode 100644 index 0000000..5383e5d --- /dev/null +++ b/Assets/DefaultVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f9215ea0144899419cfbc0957140d3f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..483589b --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5e0b622358047f4e811b0b445ded1ce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/DictionaryDrawer.cs b/Assets/Editor/DictionaryDrawer.cs new file mode 100644 index 0000000..8dc029f --- /dev/null +++ b/Assets/Editor/DictionaryDrawer.cs @@ -0,0 +1,439 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityObject = UnityEngine.Object; +using System.Reflection; + +public abstract class DictionaryDrawer : PropertyDrawer +{ + private Dictionary _Dictionary; + private bool _Foldout; + private const float kButtonWidth = 18f; + private static float lineHeight = EditorGUIUtility.singleLineHeight + 4; + private float spacing = 12f; + private float fieldPadding = 1f; + + private GUIStyle addEntryStyle; + private GUIContent addEntryContent; + private GUIStyle clearDictionaryStyle; + private GUIContent clearDictionaryContent; + //reuses clearDictionaryStyle. I am adding it for readability + private GUIStyle removeEntryStyle; + private GUIContent removeEntryContent; + + private GUIStyle HeaderStyle; + + private Rect buttonRect; + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + CheckInitialize(property, label); + if (_Foldout) + { + //Height of the main Header and the two column headers + height of all the drawn dictionary entries + a little padding on the bottom. + return (GetDictionaryElementsHeight() + (lineHeight * 2)) + 14f; + } + return lineHeight+ 4f; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + CheckInitialize(property, label); + + position.height = 20f; + DrawHeader(position, property, label); + + + if (!_Foldout) + return; + position.y += 5f + lineHeight * 2; + foreach (var item in _Dictionary) + { + var key = item.Key; + var value = item.Value; + + var keyRect = position; + keyRect.width /= 3; + keyRect.x += 10; + //Apply vertical padding + keyRect.y += fieldPadding; + keyRect.height -= fieldPadding * 2; + + EditorGUI.BeginChangeCheck(); + var newKey = DoField(keyRect, typeof(TK), (TK)key); + if (EditorGUI.EndChangeCheck()) + { + try + { + _Dictionary.Remove(key); + _Dictionary.Add(newKey, value); + } + catch (Exception e) + { + _Dictionary.Remove(key); + Debug.Log(e.Message); + } + break; + } + + var valueRect = position; + valueRect.x = keyRect.xMax + spacing; + valueRect.y += fieldPadding; + //Apply vertical padding + valueRect.height -= fieldPadding * 2; + valueRect.width = (position.width - keyRect.width) - ((kButtonWidth + 2) * 2f) - valueRect.size.y - (spacing* 2.5f); + EditorGUI.BeginChangeCheck(); + value = DoField(valueRect, typeof(TV), (TV)value); + + + Rect changeValueRect = new Rect(new Vector2(buttonRect.x - 2f, valueRect.position.y), new Vector2(kButtonWidth, valueRect.size.y)); + value = ChangeValueType(changeValueRect, key, value); + + if (EditorGUI.EndChangeCheck()) + { + _Dictionary[key] = value; + break; + } + EditorGUIUtility.AddCursorRect(changeValueRect, MouseCursor.Link); + + var removeRect = valueRect; + removeRect.x = buttonRect.x + kButtonWidth; + removeRect.width = kButtonWidth; + if (GUI.Button(removeRect, removeEntryContent, removeEntryStyle)) + { + RemoveItem(key); + break; + } + EditorGUIUtility.AddCursorRect(removeRect, MouseCursor.Link); + position.y += Mathf.Max(GetEntryHeight(key) ,GetEntryHeight(value)); + } + } + + /// + /// Gets the combined height of all dictionary elements + /// + /// + private float GetDictionaryElementsHeight() + { + float height = 0; + foreach(var item in _Dictionary) + { + var key = item.Key; + var value = item.Value; + height += Mathf.Max(GetEntryHeight(key), GetEntryHeight(value)); + } + + return height; + } + + private void DrawColumn(Rect position, GUIStyle style) + { + Rect columnRect = new Rect(position.x, position.yMax - 1, position.width, GetDictionaryElementsHeight() + 12f); + GUI.Box(columnRect, GUIContent.none, style); + } + + private void DrawHeader(Rect position, SerializedProperty property, GUIContent label) + { + Rect headerRect = new Rect(position.position, new Vector2(position.size.x - kButtonWidth * 1.5f, lineHeight)); + GUI.Box(headerRect, GUIContent.none, HeaderStyle); + var foldoutRect = position; + foldoutRect.x += 4f; + foldoutRect.width -= 2 * kButtonWidth; + EditorGUI.BeginChangeCheck(); + if(_Dictionary.Count > 0) + { + _Foldout = EditorGUI.Foldout(foldoutRect, _Foldout, label, true); + } + else + { + foldoutRect.x += 4f; + EditorGUI.LabelField(foldoutRect, label); + _Foldout = false; + } + if (EditorGUI.EndChangeCheck()) + { + EditorPrefs.SetBool(label.text, _Foldout); + } + + //Draw the Add Item Button + buttonRect = position; + buttonRect.x = position.width - 20 - kButtonWidth + position.x + 1; + buttonRect.width = kButtonWidth; + + GUIStyle headerButtonStyle = new GUIStyle(HeaderStyle); + headerButtonStyle.padding = new RectOffset(0, 0, 0, 0); + Rect headerButtonRect = new Rect(buttonRect.position, new Vector2(kButtonWidth * 1.5f, lineHeight)); + if (GUI.Button(headerButtonRect, addEntryContent, headerButtonStyle)) + { + AddNewItem(); + } + EditorGUIUtility.AddCursorRect(headerButtonRect, MouseCursor.Link); + buttonRect.x -= kButtonWidth; + + //Draw the Item count label + GUIStyle headerItemCountLabelStyle = new GUIStyle("MiniLabel"); + GUIContent headerItemCountLabelContent = new GUIContent(); + if(_Dictionary.Count == 0) + { + headerItemCountLabelContent = new GUIContent("Empty"); + } + else + { + headerItemCountLabelContent = new GUIContent($"{_Dictionary.Count} Item{(_Dictionary.Count == 1 ? "" : "s")}"); + } + + GUI.Label(new Rect(buttonRect.x - 30f, buttonRect.y, 50f, headerRect.height), headerItemCountLabelContent, headerItemCountLabelStyle); + + + //Draw the header labels (Keys - Values) + if(_Foldout) + { + //Draw "Keys" header + position.y += headerRect.height; + Rect keyHeaderRect = new Rect(position.x, position.y - 1, position.width /3f + kButtonWidth - 1, headerRect.height); + GUIStyle columnHeaderStyle = new GUIStyle("GroupBox"); + columnHeaderStyle.padding = new RectOffset(0, 0, 0, 0); + columnHeaderStyle.contentOffset = new Vector2(0, 3f); + GUI.Box(keyHeaderRect, new GUIContent("Keys"), columnHeaderStyle); + + //Draw "Values" header + Rect valuesHeaderRect = new Rect(keyHeaderRect.xMax - 1, keyHeaderRect.y, (position.width - keyHeaderRect.width - kButtonWidth * 0.5f), keyHeaderRect.height); + GUI.Box(valuesHeaderRect, new GUIContent("Values"), columnHeaderStyle); + //Draw the Columns for the keys and values. + DrawColumn(keyHeaderRect, columnHeaderStyle); + DrawColumn(valuesHeaderRect, columnHeaderStyle); + + position.y += headerRect.height; + } + + /* + if (GUI.Button(buttonRect, clearDictionaryContent, clearDictionaryStyle)) + { + ClearDictionary(); + } + */ + } + + #region TypeControls + private static float GetEntryHeight(T value) + { + switch (value) + { + case Bounds: return lineHeight * 2; + case BoundsInt: return lineHeight * 2; + case Rect: return lineHeight * 2; + case RectInt: return lineHeight * 2; + default: return lineHeight; + } + } + + private static T DoField(Rect rect, Type type, T value) + { + if (typeof(UnityObject).IsAssignableFrom(type)) + return (T)(object)EditorGUI.ObjectField(rect, (UnityObject)(object)value, type, true); + switch (value) + { + case null: EditorGUI.LabelField(rect, "null"); return value; + case long: return (T)(object)EditorGUI.LongField(rect, (long)(object)value); + case int: return (T)(object)EditorGUI.IntField(rect, (int)(object)value); + case float: return (T)(object)EditorGUI.FloatField(rect, (float)(object)value); + case double: return (T)(object)EditorGUI.DoubleField(rect, (double)(object)value); + case string: return (T)(object)EditorGUI.TextField(rect, (string)(object)value); + case bool: return (T)(object)EditorGUI.Toggle(rect, (bool)(object)value); + case Vector2Int: return (T)(object)EditorGUI.Vector2IntField(rect, GUIContent.none, (Vector2Int)(object)value); + case Vector3Int: return (T)(object)EditorGUI.Vector3IntField(rect, GUIContent.none, (Vector3Int)(object)value); + case Vector2: return (T)(object)EditorGUI.Vector2Field(rect, GUIContent.none, (Vector2)(object)value); + case Vector3: return (T)(object)EditorGUI.Vector3Field(rect, GUIContent.none, (Vector3)(object)value); + case Vector4: return (T)(object)EditorGUI.Vector4Field(rect, GUIContent.none, (Vector4)(object)value); + case BoundsInt: return (T)(object)EditorGUI.BoundsIntField(rect, (BoundsInt)(object)value); + case Bounds: return (T)(object)EditorGUI.BoundsField(rect, (Bounds)(object)value); + case RectInt: return (T)(object)EditorGUI.RectIntField(rect, (RectInt)(object)value); + case Rect: return (T)(object)EditorGUI.RectField(rect, (Rect)(object)value); + case Color: return (T)(object)EditorGUI.ColorField(rect, (Color)(object)value); + case AnimationCurve: return (T)(object)EditorGUI.CurveField(rect, (AnimationCurve)(object)value); + case Gradient: return (T)(object)EditorGUI.GradientField(rect, (Gradient)(object)value); + case UnityObject: return (T)(object)EditorGUI.ObjectField(rect, (UnityObject)(object)value, type, true); + } + + if (value.GetType().IsEnum) + { + if (Enum.TryParse(value.GetType(), value.ToString(), out object enumValue)) + { + return (T)(object)EditorGUI.EnumPopup(rect, (Enum)enumValue); + } + } + + //Setup GUIStyle and GUIContent for the "Clear Dictionary" button + GUIStyle style = new GUIStyle(EditorStyles.miniButton); + style.padding = new RectOffset(2, 2, 2, 2); + GUIContent content = new GUIContent(EditorGUIUtility.IconContent("d_UnityEditor.ConsoleWindow@2x")); + content.tooltip = "Debug Values"; + + Type fieldType = value.GetType(); + bool isStruct = fieldType.IsValueType && !fieldType.IsEnum; + EditorGUI.LabelField(rect, $"{fieldType.ToString().Replace("+", ".")} {(isStruct ? "struct" : "class")} instance"); + if( GUI.Button(new Rect(rect.xMax - kButtonWidth, rect.y, kButtonWidth, kButtonWidth), content, style)) + { + Debug.Log(JsonUtility.ToJson(value)); + } + + //DrawSerializableObject(rect, value); + return value; + } + + //Unfinished + /* + public static void DrawSerializableObject(Rect rect, object obj) + { + if (obj == null) + { + Console.WriteLine("Object is null."); + return; + } + + Type type = obj.GetType(); + FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); + + foreach (FieldInfo field in fields) + { + object value = field.GetValue(obj); + rect.y += GetEntryHeight(value); + Debug.Log($"{field.Name}: {value}"); + if(value != null) + { + DoField(rect, value.GetType(), value); + } + } + + } + */ + +private TV ChangeValueType(Rect rect, TK key, TV value) + { + GUIContent content = EditorGUIUtility.IconContent("_Popup"); + content.tooltip = "Change Value Type"; + GUIStyle changeItemStyle = new GUIStyle(EditorStyles.miniButton); + changeItemStyle.padding = new RectOffset(2, 2, 2, 2); + + if (GUI.Button(rect, content, changeItemStyle)) + { + GenericMenu genericMenu = new GenericMenu(); + genericMenu.AddItem(new GUIContent("Numbers/int"), value is int, () => { _Dictionary[key] = (TV)(object)default(int); }); + genericMenu.AddItem(new GUIContent("Numbers/float"), value is float, () => { _Dictionary[key] = (TV)(object)default(float); }); + genericMenu.AddItem(new GUIContent("Numbers/double"), value is double, () => { _Dictionary[key] = (TV)(object)default(double); }); + genericMenu.AddItem(new GUIContent("Numbers/long"), value is long, () => { _Dictionary[key] = (TV)(object)default(long); }); + genericMenu.AddItem(new GUIContent("Vectors/Vector2"), (value is Vector2 && !(value is Vector2Int)), () => { _Dictionary[key] = (TV)(object)default(Vector2); }); + genericMenu.AddItem(new GUIContent("Vectors/Vector3"), (value is Vector3 && !(value is Vector3Int)), () => { _Dictionary[key] = (TV)(object)default(Vector3); }); + genericMenu.AddItem(new GUIContent("Vectors/Vector4"), value is Vector4, () => { _Dictionary[key] = (TV)(object)default(Vector4); }); + genericMenu.AddItem(new GUIContent("Vectors/Vector2Int"), value is Vector2Int, () => { _Dictionary[key] = (TV)(object)default(Vector2Int); }); + genericMenu.AddItem(new GUIContent("Vectors/Vector3Int"), value is Vector3Int, () => { _Dictionary[key] = (TV)(object)default(Vector3Int); }); + genericMenu.AddItem(new GUIContent("Bounds/Bounds"), value is Bounds && value is not BoundsInt, () => { _Dictionary[key] = (TV)(object)default(Bounds); }); + genericMenu.AddItem(new GUIContent("Bounds/BoundsInt"), value is BoundsInt, () => { _Dictionary[key] = (TV)(object)default(BoundsInt); }); + genericMenu.AddItem(new GUIContent("Rects/Rect"), value is Rect && value is not RectInt, () => { _Dictionary[key] = (TV)(object)default(Rect); }); + genericMenu.AddItem(new GUIContent("Rects/RectInt"), value is RectInt, () => { _Dictionary[key] = (TV)(object)default(RectInt); }); + genericMenu.AddItem(new GUIContent("string"), value is string, () => { _Dictionary[key] = (TV)(object)""; }); + genericMenu.AddItem(new GUIContent("bool"), value is bool, () => { _Dictionary[key] = (TV)(object)default(bool); }); + genericMenu.AddItem(new GUIContent("Color"), value is Color, () => { _Dictionary[key] = (TV)(object)default(Color); }); + genericMenu.AddItem(new GUIContent("AnimationCurve"), value is AnimationCurve, () => { _Dictionary[key] = (TV)(object)(new AnimationCurve()); }); + genericMenu.AddItem(new GUIContent("Gradient"), value is Gradient, () => { _Dictionary[key] = (TV)(object)(new Gradient()); }); + genericMenu.AddItem(new GUIContent("Unity Object"), value is UnityObject, () => { _Dictionary[key] = (TV)(object)(new UnityObject()); }); + genericMenu.ShowAsContext(); + } + + return (TV)value; + } +#endregion + + private void RemoveItem(TK key) + { + _Dictionary.Remove(key); + } + + private void CheckInitialize(SerializedProperty property, GUIContent label) + { + if (_Dictionary == null) + { + SetupStyles(); + var target = property.serializedObject.targetObject; + _Dictionary = fieldInfo.GetValue(target) as Dictionary; + if (_Dictionary == null) + { + _Dictionary = new Dictionary(); + fieldInfo.SetValue(target, _Dictionary); + } + + _Foldout = EditorPrefs.GetBool(label.text); + } + } + + private void SetupStyles() + { + //Setup GUIStyle and GUIContent for the "Add Item" button + addEntryStyle = new GUIStyle(EditorStyles.miniButton); + addEntryStyle.padding = new RectOffset(3, 3, 3, 3); + addEntryContent = new GUIContent(EditorGUIUtility.IconContent("d_CreateAddNew@2x")); + addEntryContent.tooltip = "Add Item"; + + //Setup GUIStyle and GUIContent for the "Clear Dictionary" button + clearDictionaryStyle = new GUIStyle(EditorStyles.miniButton); + clearDictionaryStyle.padding = new RectOffset(2, 2, 2, 2); + clearDictionaryContent = new GUIContent(EditorGUIUtility.IconContent("d_winbtn_win_close@2x")); + clearDictionaryContent.tooltip = "Clear dictionary"; + + removeEntryContent = new GUIContent(EditorGUIUtility.IconContent("d_winbtn_win_close@2x")); + removeEntryContent.tooltip = "Remove Item"; + removeEntryStyle = new GUIStyle(clearDictionaryStyle); + + HeaderStyle = new GUIStyle("MiniToolbarButton"); + HeaderStyle.fixedHeight = 0; + HeaderStyle.fixedWidth = 0; + HeaderStyle.padding = new RectOffset(2,2,2,2); + } + + private void ClearDictionary() + { + _Dictionary.Clear(); + } + + private void AddNewItem() + { + TK key; + if (typeof(TK) == typeof(string)) + key = (TK)(object)""; + else key = default(TK); + + if (typeof(TV) == typeof(object)) + { + var value = (TV)(object)1; + try + { + _Dictionary.Add(key, value); + } + catch (Exception e) + { + Debug.Log(e.Message); + } + } + else + { + var value = default(TV); + try + { + _Dictionary.Add(key, value); + } + catch (Exception e) + { + Debug.Log(e.Message); + } + } + } +} + + +[CustomPropertyDrawer(typeof(Blackboard))] +public class BlackboardDrawer : DictionaryDrawer { } + + +// [CustomPropertyDrawer(typeof(Inventory))] +// public class InventoryDrawer : DictionaryDrawer { } diff --git a/Assets/Editor/DictionaryDrawer.cs.meta b/Assets/Editor/DictionaryDrawer.cs.meta new file mode 100644 index 0000000..c4b4c11 --- /dev/null +++ b/Assets/Editor/DictionaryDrawer.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d98eeb23cea688d4c9a9ce396d927919 \ No newline at end of file diff --git a/Assets/InputSystem_Actions.inputactions b/Assets/InputSystem_Actions.inputactions new file mode 100644 index 0000000..1a12cb9 --- /dev/null +++ b/Assets/InputSystem_Actions.inputactions @@ -0,0 +1,1057 @@ +{ + "name": "InputSystem_Actions", + "maps": [ + { + "name": "Player", + "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37", + "actions": [ + { + "name": "Move", + "type": "Value", + "id": "351f2ccd-1f9f-44bf-9bec-d62ac5c5f408", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Look", + "type": "Value", + "id": "6b444451-8a00-4d00-a97e-f47457f736a8", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Attack", + "type": "Button", + "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Interact", + "type": "Button", + "id": "852140f2-7766-474d-8707-702459ba45f3", + "expectedControlType": "Button", + "processors": "", + "interactions": "Hold", + "initialStateCheck": false + }, + { + "name": "Crouch", + "type": "Button", + "id": "27c5f898-bc57-4ee1-8800-db469aca5fe3", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Jump", + "type": "Button", + "id": "f1ba0d36-48eb-4cd5-b651-1c94a6531f70", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Previous", + "type": "Button", + "id": "2776c80d-3c14-4091-8c56-d04ced07a2b0", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Next", + "type": "Button", + "id": "b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Sprint", + "type": "Button", + "id": "641cd816-40e6-41b4-8c3d-04687c349290", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "978bfe49-cc26-4a3d-ab7b-7d7a29327403", + "path": "/leftStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "WASD", + "id": "00ca640b-d935-4593-8157-c05846ea39b3", + "path": "Dpad", + "interactions": "", + "processors": "", + "groups": "", + "action": "Move", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "e2062cb9-1b15-46a2-838c-2f8d72a0bdd9", + "path": "/w", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "8180e8bd-4097-4f4e-ab88-4523101a6ce9", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "320bffee-a40b-4347-ac70-c210eb8bc73a", + "path": "/s", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "1c5327b5-f71c-4f60-99c7-4e737386f1d1", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "d2581a9b-1d11-4566-b27d-b92aff5fabbc", + "path": "/a", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "2e46982e-44cc-431b-9f0b-c11910bf467a", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcfe95b8-67b9-4526-84b5-5d0bc98d6400", + "path": "/d", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "77bff152-3580-4b21-b6de-dcd0c7e41164", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "1635d3fe-58b6-4ba9-a4e2-f4b964f6b5c8", + "path": "/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3ea4d645-4504-4529-b061-ab81934c3752", + "path": "/stick", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c1f7a91b-d0fd-4a62-997e-7fb9b69bf235", + "path": "/rightStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8c8e490b-c610-4785-884f-f04217b23ca4", + "path": "/delta", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse;Touch", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3e5f5442-8668-4b27-a940-df99bad7e831", + "path": "/{Hatswitch}", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91", + "path": "/buttonWest", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "05f6913d-c316-48b2-a6bb-e225f14c7960", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "886e731e-7071-4ae4-95c0-e61739dad6fd", + "path": "/primaryTouch/tap", + "interactions": "", + "processors": "", + "groups": ";Touch", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8255d333-5683-4943-a58a-ccb207ff1dce", + "path": "/{PrimaryAction}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7", + "path": "/enter", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "cbac6039-9c09-46a1-b5f2-4e5124ccb5ed", + "path": "/2", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e15ca19d-e649-4852-97d5-7fe8ccc44e94", + "path": "/dpad/right", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f2e9ba44-c423-42a7-ad56-f20975884794", + "path": "/leftShift", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8cbb2f4b-a784-49cc-8d5e-c010b8c7f4e6", + "path": "/leftStickPress", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d8bf24bf-3f2f-4160-a97c-38ec1eb520ba", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eb40bb66-4559-4dfa-9a2f-820438abb426", + "path": "/space", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "daba33a1-ad0c-4742-a909-43ad1cdfbeb6", + "path": "/buttonSouth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "603f3daf-40bd-4854-8724-93e8017f59e3", + "path": "/secondaryButton", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1534dc16-a6aa-499d-9c3a-22b47347b52a", + "path": "/1", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "25060bbd-a3a6-476e-8fba-45ae484aad05", + "path": "/dpad/left", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1c04ea5f-b012-41d1-a6f7-02e963b52893", + "path": "/e", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3f66d0b-7751-423f-908b-a11c5bd95930", + "path": "/buttonNorth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4f4649ac-64a8-4a73-af11-b3faef356a4d", + "path": "/buttonEast", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "36e52cba-0905-478e-a818-f4bfcb9f3b9a", + "path": "/c", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "UI", + "id": "272f6d14-89ba-496f-b7ff-215263d3219f", + "actions": [ + { + "name": "Navigate", + "type": "PassThrough", + "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Submit", + "type": "Button", + "id": "7607c7b6-cd76-4816-beef-bd0341cfe950", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Cancel", + "type": "Button", + "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Point", + "type": "PassThrough", + "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Click", + "type": "PassThrough", + "id": "3c7022bf-7922-4f7c-a998-c437916075ad", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightClick", + "type": "PassThrough", + "id": "44b200b1-1557-4083-816c-b22cbdf77ddf", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "MiddleClick", + "type": "PassThrough", + "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ScrollWheel", + "type": "PassThrough", + "id": "0489e84a-4833-4c40-bfae-cea84b696689", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDevicePosition", + "type": "PassThrough", + "id": "24908448-c609-4bc3-a128-ea258674378a", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDeviceOrientation", + "type": "PassThrough", + "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "Gamepad", + "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf", + "path": "/leftStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81", + "path": "/rightStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2db08d65-c5fb-421b-983f-c71163608d67", + "path": "/leftStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "58748904-2ea9-4a80-8579-b500e6a76df8", + "path": "/rightStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "8ba04515-75aa-45de-966d-393d9bbd1c14", + "path": "/leftStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921", + "path": "/rightStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcd248ae-a788-4676-a12e-f4d81205600b", + "path": "/leftStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20", + "path": "/rightStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90", + "path": "/dpad", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Joystick", + "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "3db53b26-6601-41be-9887-63ac74e79d19", + "path": "/stick/up", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f", + "path": "/stick/down", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835", + "path": "/stick/left", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc", + "path": "/stick/right", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Keyboard", + "id": "ff527021-f211-4c02-933e-5976594c46ed", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "eb480147-c587-4a33-85ed-eb0ab9942c43", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2bf42165-60bc-42ca-8072-8c13ab40239b", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "74214943-c580-44e4-98eb-ad7eebe17902", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "cea9b045-a000-445b-95b8-0c171af70a3b", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "8607c725-d935-4808-84b1-8354e29bab63", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc", + "path": "*/{Submit}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Submit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e", + "path": "*/{Cancel}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Cancel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5693e57a-238a-46ed-b5ae-e64e6e574302", + "path": "/touch*/position", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace", + "path": "/tip", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59", + "path": "/touch*/press", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "38c99815-14ea-4617-8627-164d27641299", + "path": "/scroll", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "ScrollWheel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4c191405-5738-4d4b-a523-c6a301dbf754", + "path": "/rightButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "RightClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "24066f69-da47-44f3-a07e-0015fb02eb2e", + "path": "/middleButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "MiddleClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77", + "path": "/devicePosition", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb", + "path": "/deviceRotation", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDeviceOrientation", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "Keyboard&Mouse", + "bindingGroup": "Keyboard&Mouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Touch", + "bindingGroup": "Touch", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Joystick", + "bindingGroup": "Joystick", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "XR", + "bindingGroup": "XR", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + } + ] +} \ No newline at end of file diff --git a/Assets/InputSystem_Actions.inputactions.meta b/Assets/InputSystem_Actions.inputactions.meta new file mode 100644 index 0000000..e786d3e --- /dev/null +++ b/Assets/InputSystem_Actions.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 2bcd2660ca9b64942af0de543d8d7100 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta new file mode 100644 index 0000000..b95a17d --- /dev/null +++ b/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b59d68ddfb6591e44a021aaf44c48fcb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Buyer.prefab b/Assets/Prefabs/Buyer.prefab new file mode 100644 index 0000000..79fa1aa --- /dev/null +++ b/Assets/Prefabs/Buyer.prefab @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4806582693295463761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8699266693001747650} + - component: {fileID: 1396103227330159442} + m_Layer: 0 + m_Name: Buyer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8699266693001747650 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4806582693295463761} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1396103227330159442 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4806582693295463761} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 75f5f34dc1b5347e0b8351032682f224, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/Buyer.prefab.meta b/Assets/Prefabs/Buyer.prefab.meta new file mode 100644 index 0000000..3beda26 --- /dev/null +++ b/Assets/Prefabs/Buyer.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 567ab23fbf8cb3e4884c66e2844f4031 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab new file mode 100644 index 0000000..2083e0e --- /dev/null +++ b/Assets/Prefabs/Player.prefab @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4365714411379426835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4372894855564474151} + - component: {fileID: 6270991334037110281} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4372894855564474151 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4365714411379426835} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6270991334037110281 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4365714411379426835} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 75f5f34dc1b5347e0b8351032682f224, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/Player.prefab.meta b/Assets/Prefabs/Player.prefab.meta new file mode 100644 index 0000000..d8707b8 --- /dev/null +++ b/Assets/Prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 19c1ccebaf45a40478633ddde15bf4d7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Shelf.prefab b/Assets/Prefabs/Shelf.prefab new file mode 100644 index 0000000..bfa0a6b --- /dev/null +++ b/Assets/Prefabs/Shelf.prefab @@ -0,0 +1,194 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4557172615047839809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2592813772834325640} + - component: {fileID: 6329482849752991534} + - component: {fileID: 5507466453634029947} + - component: {fileID: -5117840549013073363} + - component: {fileID: -3893633335331372781} + - component: {fileID: -3570956179444851343} + m_Layer: 0 + m_Name: Shelf + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2592813772834325640 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.44873, y: 0.92241, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6329482849752991534 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 +--- !u!61 &5507466453634029947 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!114 &-5117840549013073363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 03d5f191219b3d84e99c5f72e0017dc7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::InventoryHolder + type: shelf +--- !u!114 &-3893633335331372781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument + m_PanelSettings: {fileID: 11400000, guid: 7b1015287071c934bb8054c1ae46eccd, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 6b3866a73cab45c429ffb420315993ca, type: 3} + m_SortingOrder: 0 + m_Position: 0 + m_WorldSpaceSizeMode: 1 + m_WorldSpaceWidth: 1920 + m_WorldSpaceHeight: 1080 + m_PivotReferenceSize: 0 + m_Pivot: 0 + m_WorldSpaceCollider: {fileID: 0} +--- !u!114 &-3570956179444851343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4557172615047839809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 687937cfe3daa04489c5323f36aef2e7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::InfoBox + worldOffset: {x: 0, y: 0, z: 0} + uiDocument: {fileID: -3893633335331372781} + AlwaysVisible: 1 diff --git a/Assets/Prefabs/Shelf.prefab.meta b/Assets/Prefabs/Shelf.prefab.meta new file mode 100644 index 0000000..dda4363 --- /dev/null +++ b/Assets/Prefabs/Shelf.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6bda07d3031c8084e91a4cec9ed7e579 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..ee46714 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 109e9bdd0fcc649c5bc59085c35bdc83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity new file mode 100644 index 0000000..d4f4a83 --- /dev/null +++ b/Assets/Scenes/MainScene.unity @@ -0,0 +1,742 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &339608288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 339608289} + m_Layer: 0 + m_Name: Shop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &339608289 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 339608288} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.44873, y: 0.92241, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 543349003} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + - component: {fileID: 519420030} + - component: {fileID: 519420033} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!114 &519420030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 34 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &519420033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56666c5a40171f54783dd416a44f42bf, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.Physics2DRaycaster + m_EventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxRayIntersections: 0 +--- !u!1 &543349002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 543349003} + - component: {fileID: 543349004} + m_Layer: 0 + m_Name: Shelves + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &543349003 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543349002} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 339608289} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &543349004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543349002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b472ba6d08a54940a9db7abce45bb03, type: 3} + m_Name: + m_EditorClassIdentifier: '::' + ShelfPrefab: {fileID: 4557172615047839809, guid: 6bda07d3031c8084e91a4cec9ed7e579, type: 3} +--- !u!1 &619394800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 619394802} + - component: {fileID: 619394801} + m_Layer: 0 + m_Name: Global Light 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &619394801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619394800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ComponentVersion: 2 + m_LightType: 4 + m_BlendStyleIndex: 0 + m_FalloffIntensity: 0.5 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_LightVolumeIntensity: 1 + m_LightVolumeEnabled: 0 + m_ApplyToSortingLayers: 00000000 + m_LightCookieSprite: {fileID: 0} + m_DeprecatedPointLightCookieSprite: {fileID: 0} + m_LightOrder: 0 + m_AlphaBlendOnOverlap: 0 + m_OverlapOperation: 0 + m_NormalMapDistance: 3 + m_NormalMapQuality: 2 + m_UseNormalMap: 0 + m_ShadowsEnabled: 0 + m_ShadowIntensity: 0.75 + m_ShadowSoftness: 0 + m_ShadowSoftnessFalloffIntensity: 0.5 + m_ShadowVolumeIntensityEnabled: 0 + m_ShadowVolumeIntensity: 0.75 + m_LocalBounds: + m_Center: {x: 0, y: -0.00000011920929, z: 0} + m_Extent: {x: 0.9985302, y: 0.99853027, z: 0} + m_PointLightInnerAngle: 360 + m_PointLightOuterAngle: 360 + m_PointLightInnerRadius: 0 + m_PointLightOuterRadius: 1 + m_ShapeLightParametricSides: 5 + m_ShapeLightParametricAngleOffset: 0 + m_ShapeLightParametricRadius: 1 + m_ShapeLightFalloffSize: 0.5 + m_ShapeLightFalloffOffset: {x: 0, y: 0} + m_ShapePath: + - {x: -0.5, y: -0.5, z: 0} + - {x: 0.5, y: -0.5, z: 0} + - {x: 0.5, y: 0.5, z: 0} + - {x: -0.5, y: 0.5, z: 0} +--- !u!4 &619394802 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619394800} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1009813488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1009813490} + - component: {fileID: 1009813489} + m_Layer: 0 + m_Name: DataPersistenceManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1009813489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1009813488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a43c513eda07bf94db46b159ebbc8b51, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DataPersistenceManager + fileName: file.json + useEncryption: 0 + autoSaveTimeSeconds: 60 +--- !u!4 &1009813490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1009813488} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.44873, y: 0.92241, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1754384484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1754384487} + - component: {fileID: 1754384486} + - component: {fileID: 1754384485} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1754384485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754384484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 +--- !u!114 &1754384486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754384484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1754384487 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754384484} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &3377531241049282641 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_Name + value: "\u0418\u0433\u0440\u043E\u043A" + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalPosition.x + value: 0.359 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalPosition.y + value: -1.05 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4372894855564474151, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + insertIndex: -1 + addedObject: {fileID: 3377531241049282649} + - targetCorrespondingSourceObject: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + insertIndex: -1 + addedObject: {fileID: 3377531241049282647} + - targetCorrespondingSourceObject: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + insertIndex: -1 + addedObject: {fileID: 3377531241049282648} + - targetCorrespondingSourceObject: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + insertIndex: -1 + addedObject: {fileID: 3377531241049282650} + m_SourcePrefab: {fileID: 100100000, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} +--- !u!1 &3377531241049282642 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4365714411379426835, guid: 19c1ccebaf45a40478633ddde15bf4d7, type: 3} + m_PrefabInstance: {fileID: 3377531241049282641} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3377531241049282647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3377531241049282642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 687937cfe3daa04489c5323f36aef2e7, type: 3} + m_Name: + m_EditorClassIdentifier: '::' + worldOffset: {x: 0, y: 0, z: 0} + uiDocument: {fileID: 3377531241049282648} + AlwaysVisible: 1 +--- !u!114 &3377531241049282648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3377531241049282642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument + m_PanelSettings: {fileID: 11400000, guid: 7b1015287071c934bb8054c1ae46eccd, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 6b3866a73cab45c429ffb420315993ca, type: 3} + m_SortingOrder: 0 + m_Position: 0 + m_WorldSpaceSizeMode: 1 + m_WorldSpaceWidth: 1920 + m_WorldSpaceHeight: 1080 + m_PivotReferenceSize: 0 + m_Pivot: 0 + m_WorldSpaceCollider: {fileID: 0} +--- !u!114 &3377531241049282649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3377531241049282642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cffc1654223acc54f9aa045c5a7730a3, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::PlayerInventory +--- !u!61 &3377531241049282650 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3377531241049282642} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0.21133333} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.28866667} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 519420032} + - {fileID: 619394802} + - {fileID: 3377531241049282641} + - {fileID: 1754384487} + - {fileID: 1009813490} + - {fileID: 339608289} diff --git a/Assets/Scenes/MainScene.unity.meta b/Assets/Scenes/MainScene.unity.meta new file mode 100644 index 0000000..963ff8e --- /dev/null +++ b/Assets/Scenes/MainScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c9cfa26abfee488c85f1582747f6a02 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 0000000..19e55df --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 859782d85b8997544a79a23226571597 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Blackboard.cs b/Assets/Scripts/Blackboard.cs new file mode 100644 index 0000000..04ea5e4 --- /dev/null +++ b/Assets/Scripts/Blackboard.cs @@ -0,0 +1,631 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; +using System.Linq; +using UnityEditor; +using System.Text.RegularExpressions; + +[Serializable] +public class Blackboard : Dictionary, ISerializationCallbackReceiver +{ + [Serializable] + //struct represents the string key, and the serialized value from the dictionary. + private struct SaveItem + { + public string key; + public string value; + public int index; + + public SaveItem(string key, string val, int index) + { + this.key = key; + this.value = val; + this.index = index; + } + } + + //All serialized items except for objects in a scene, which have to be handled separately. + [SerializeField, HideInInspector] + private List saveItems; + + //We need a different struct and list for Object references in scene :( + [Serializable] + private struct NonAssetSaveItem + { + public string key; + public UnityEngine.Object obj; + public int index; + + public NonAssetSaveItem(string key, UnityEngine.Object obj, int index) + { + this.key = key; + this.obj = obj; + this.index = index; + } + } + [SerializeField, HideInInspector] + private List sceneObjectSaveItems; + + /// + /// Takes all of the keyvalue pairs from the Dictionary and stores them as Serializable lists. + /// + public void OnBeforeSerialize() + { + sceneObjectSaveItems = new List(); + saveItems = new List(); + List keys = this.Keys.ToList(); + List values = this.Values.ToList(); + + for (int i = 0; i < Count; i++) + { + object value = values[i]; + string encode = ""; + + //Unhandled Enum Types + if (value is Enum) + { + Enum enumValue = (Enum)value; + Console.WriteLine("Enum Value: " + enumValue.ToString()); + encode = $"({value.GetType().AssemblyQualifiedName}){enumValue}"; + saveItems.Add(new SaveItem(keys[i], encode, i)); + continue; + } + + switch (value) + { + case null: encode = "(null)"; break; + case int: encode = "(int)" + ((int)value).ToString("F9"); break; + case float: encode = "(float)" + ((float)value).ToString("F9"); break; + case double: encode = "(double)" + ((double)value).ToString("F9"); break; + case long: encode = "(long)" + ((long)value).ToString(); break; + case string: encode = "(string)" + (string)value; break; + case bool: encode = "(bool)" + (((bool)value) == true ? "true" : "false"); break; + case Vector2Int: encode = "(Vector2Int)" + ((Vector2Int)value).ToString(); break; + case Vector3Int: encode = "(Vector3Int)" + ((Vector3Int)value).ToString(); break; + case Vector2: encode = "(Vector2)" + ((Vector2)value).ToString(); break; + case Vector3: encode = "(Vector3)" + ((Vector3)value).ToString(); break; + case Vector4: encode = "(Vector4)" + ((Vector4)value).ToString(); break; + case Bounds: encode = "(Bounds)" + ((Bounds)value).ToString(); break; + case Rect: encode = "(Rect)" + ((Rect)value).ToString("F9"); break; + case Color: encode = "(Color)" + JsonUtility.ToJson((Color)value); break; + case AnimationCurve: encode = "(AnimationCurve)" + Serializer.SerializeAnimationCurve((AnimationCurve)value); break; + case Gradient: encode = "(Gradient)" + Serializer.SerializeGradient((Gradient)value); break; + case UnityEngine.Object obj: + string assetPath = Application.isEditor ? AssetDatabase.GetAssetPath(obj) : null; + if (!string.IsNullOrEmpty(assetPath)) + { + encode = "(UnityEngine.Object)" + assetPath; + } + else + { + sceneObjectSaveItems.Add(new NonAssetSaveItem(keys[i], obj, i)); + } + break; + //Try to serialize to JSON. May be empty if type is not supported + default: encode = $"({value.GetType().AssemblyQualifiedName}){JsonUtility.ToJson(value)}"; break; + } + + if (!string.IsNullOrEmpty(encode)) + { + saveItems.Add(new SaveItem(keys[i], encode, i)); + } + } + } + + /// + /// Loads the two lists back into the Dictionary, using the Merge Linked Lists method. + /// + public void OnAfterDeserialize() + { + this.Clear(); + int i = 0; + int j = 0; + + //Ensure that the lists are not null to ensure no errors when accessing list.Count + saveItems = saveItems == null ? new List() : saveItems; + sceneObjectSaveItems = sceneObjectSaveItems == null ? new List() : sceneObjectSaveItems; + + while (i < saveItems.Count && j < sceneObjectSaveItems.Count) + { + if (saveItems[i].index < sceneObjectSaveItems[j].index) + { + string key = saveItems[i].key; + int openIndex = saveItems[i].value.IndexOf('('); + int closeIndex = saveItems[i].value.IndexOf(')'); + string contentType = saveItems[i].value.Substring(openIndex + 1, closeIndex - openIndex - 1); + string encode = saveItems[i].value.Substring(closeIndex + 1); + DeserializeItem(contentType, key, encode); + i++; + } + else + { + Add(sceneObjectSaveItems[j].key, sceneObjectSaveItems[j].obj); + j++; + } + } + + for(; i < saveItems.Count;i++) + { + string key = saveItems[i].key; + int openIndex = saveItems[i].value.IndexOf('('); + int closeIndex = saveItems[i].value.IndexOf(')'); + string contentType = saveItems[i].value.Substring(openIndex + 1, closeIndex - openIndex - 1); + string encode = saveItems[i].value.Substring(closeIndex + 1); + DeserializeItem(contentType, key, encode); + } + + for (; j < sceneObjectSaveItems.Count; j++) + { + Add(sceneObjectSaveItems[j].key, sceneObjectSaveItems[j].obj); + } + } + + /// + /// Takes the key and encoded string from a serialized item and adds it back into the dictionary. + /// + private void DeserializeItem(string contentType, string key, string encodedValue) + { + switch (contentType) + { + case "null": Add(key, null); return; + case "int": Add(key, (int)int.Parse(encodedValue)); return; + case "float": Add(key, (float)float.Parse(encodedValue)); return; + case "double": Add(key, (double)double.Parse(encodedValue)); return; + case "long": Add(key, (long)long.Parse(encodedValue)); return; + case "string": Add(key, (string)encodedValue); return; + case "bool": Add(key, (bool)(encodedValue == "true" ? true : false)); return; + case "Vector2": Add(key, Serializer.ParseVector2(encodedValue)); return; + case "Vector3": Add(key, Serializer.ParseVector3(encodedValue)); return; + case "Vector2Int": Add(key, Serializer.ParseVector2Int(encodedValue)); return; + case "Vector3Int": Add(key, Serializer.ParseVector3Int(encodedValue)); return; + case "Vector4": Add(key, Serializer.ParseVector4(encodedValue)); return; + case "Bounds": Add(key, Serializer.ParseBounds(encodedValue)); return; + case "Rect": Add(key, Serializer.ParseRect(encodedValue)); return; + case "Color": Add(key, JsonUtility.FromJson(encodedValue)); return; + case "AnimationCurve": Add(key, Serializer.DeserializeAnimationCurve(encodedValue)); return; + case "Gradient": Add(key, Serializer.DeserializeGradient(encodedValue)); return; + case "UnityEngine.Object": + if(Application.isEditor) + { + EditorApplication.delayCall += () => Add(key, AssetDatabase.LoadAssetAtPath(encodedValue)); + } + else + { + Add(key, Resources.Load(encodedValue)); + } + return; + default: break; + } + + //Different process for enums (of any type) + if(Serializer.EnumDeserialize(contentType, encodedValue, out object enumValue)) + { + Add(key, enumValue); + } + + //Tries to de-serialize a struct or class using JsonUtility.FromJson + if(Serializer.TryDeserializeJSON(contentType, encodedValue, out object result)) + { + Add(key, result); + } + } + + public void SetOrAdd(string key, object ob) + { + if (this.ContainsKey(key)) + { + this[key] = ob; + } + else + { + this.Add(key, ob); + } + } + + [System.Serializable] + private static class Serializer + { +#region GradientSerialization + [System.Serializable] + private class SerializableGradient + { + public SerializableColorKey[] colorKeys; + public SerializableAlphaKey[] alphaKeys; + public GradientMode mode; + + public SerializableGradient(Gradient gradient) + { + colorKeys = new SerializableColorKey[gradient.colorKeys.Length]; + for (int i = 0; i < gradient.colorKeys.Length; i++) + { + colorKeys[i] = new SerializableColorKey(gradient.colorKeys[i]); + } + + alphaKeys = new SerializableAlphaKey[gradient.alphaKeys.Length]; + for (int i = 0; i < gradient.alphaKeys.Length; i++) + { + alphaKeys[i] = new SerializableAlphaKey(gradient.alphaKeys[i]); + } + + mode = gradient.mode; + } + + public Gradient ToGradient() + { + Gradient gradient = new Gradient(); + GradientColorKey[] gradientColorKeys = new GradientColorKey[colorKeys.Length]; + for (int i = 0; i < colorKeys.Length; i++) + { + gradientColorKeys[i] = colorKeys[i].ToGradientColorKey(); + } + + GradientAlphaKey[] gradientAlphaKeys = new GradientAlphaKey[alphaKeys.Length]; + for (int i = 0; i < alphaKeys.Length; i++) + { + gradientAlphaKeys[i] = alphaKeys[i].ToGradientAlphaKey(); + } + + gradient.SetKeys(gradientColorKeys, gradientAlphaKeys); + gradient.mode = mode; + + return gradient; + } + } + + [System.Serializable] + private class SerializableColorKey + { + public Color color; + public float time; + + public SerializableColorKey(GradientColorKey colorKey) + { + color = colorKey.color; + time = colorKey.time; + } + + public GradientColorKey ToGradientColorKey() + { + return new GradientColorKey(color, time); + } + } + + [System.Serializable] + private class SerializableAlphaKey + { + public float alpha; + public float time; + + public SerializableAlphaKey(GradientAlphaKey alphaKey) + { + alpha = alphaKey.alpha; + time = alphaKey.time; + } + + public GradientAlphaKey ToGradientAlphaKey() + { + return new GradientAlphaKey(alpha, time); + } + } + + public static string SerializeGradient(Gradient gradient) + { + SerializableGradient serializableGradient = new SerializableGradient(gradient); + return JsonUtility.ToJson(serializableGradient); + } + + public static Gradient DeserializeGradient(string json) + { + SerializableGradient serializableGradient = JsonUtility.FromJson(json); + + if (serializableGradient != null) + { + return serializableGradient.ToGradient(); + } + + Debug.LogError("Failed to deserialize Gradient from JSON: " + json); + return new Gradient(); // Return a default Gradient or handle the error as needed + } +#endregion +#region AnimationCurveSerialization + [System.Serializable] + private struct SerializableKeyframe + { + public float time; + public float value; + public float inTangent; + public float outTangent; + + public SerializableKeyframe(Keyframe keyframe) + { + time = keyframe.time; + value = keyframe.value; + inTangent = keyframe.inTangent; + outTangent = keyframe.outTangent; + } + } + + [System.Serializable] + private struct SerializableAnimationCurve + { + public WrapMode preWrapMode; + public WrapMode postWrapMode; + public SerializableKeyframe[] keys; + + public SerializableAnimationCurve(AnimationCurve curve) + { + preWrapMode = curve.preWrapMode; + postWrapMode = curve.postWrapMode; + keys = new SerializableKeyframe[curve.length]; + for (int i = 0; i < curve.length; i++) + { + keys[i] = new SerializableKeyframe(curve[i]); + } + } + } + + /// + /// Serializes an AnimationCurve to a JSON string. + /// + public static string SerializeAnimationCurve(AnimationCurve curve) + { + SerializableAnimationCurve serializableCurve = new SerializableAnimationCurve(curve); + string json = JsonUtility.ToJson(serializableCurve); + return json; + } + + /// + /// Produces an AnimationCurve from a json string. + /// + public static AnimationCurve DeserializeAnimationCurve(string json) + { + SerializableAnimationCurve serializableCurve = JsonUtility.FromJson(json); + + Keyframe[] keyframes = new Keyframe[serializableCurve.keys.Length]; + for (int i = 0; i < keyframes.Length; i++) + { + keyframes[i] = new Keyframe( + serializableCurve.keys[i].time, + serializableCurve.keys[i].value, + serializableCurve.keys[i].inTangent, + serializableCurve.keys[i].outTangent + ); + } + + AnimationCurve curve = new AnimationCurve(keyframes); + curve.postWrapMode = serializableCurve.postWrapMode; + curve.preWrapMode = serializableCurve.postWrapMode; + return curve; + } +#endregion +#region VectorSerialization + public static Vector2 ParseVector2(string vectorString) + { + vectorString = vectorString.Replace("(", "").Replace(")", ""); + string[] components = vectorString.Split(','); + + if (components.Length == 2 && + float.TryParse(components[0], out float x) && + float.TryParse(components[1], out float y)) + { + return new Vector2(x, y); + } + + Debug.LogError("Failed to parse Vector2 from string: " + vectorString); + return Vector2.zero; + } + + public static Vector2Int ParseVector2Int(string vectorString) + { + vectorString = vectorString.Replace("(", "").Replace(")", ""); + string[] components = vectorString.Split(','); + + if (components.Length == 2 && + int.TryParse(components[0], out int x) && + int.TryParse(components[1], out int y)) + { + return new Vector2Int(x, y); + } + + Debug.LogError("Failed to parse Vector2 from string: " + vectorString); + return Vector2Int.zero; + } + + public static Vector3 ParseVector3(string vectorString) + { + vectorString = vectorString.Replace("(", "").Replace(")", ""); + string[] components = vectorString.Split(','); + + if (components.Length == 3 && + float.TryParse(components[0], out float x) && + float.TryParse(components[1], out float y) && + float.TryParse(components[2], out float z)) + { + return new Vector3(x, y, z); + } + + Debug.LogError("Failed to parse Vector3 from string: " + vectorString); + return Vector3.zero; + } + + public static Vector3Int ParseVector3Int(string vectorString) + { + vectorString = vectorString.Replace("(", "").Replace(")", ""); + string[] components = vectorString.Split(','); + + if (components.Length == 3 && + int.TryParse(components[0], out int x) && + int.TryParse(components[1], out int y) && + int.TryParse(components[2], out int z)) + { + return new Vector3Int(x, y, z); + } + + Debug.LogError("Failed to parse Vector3Int from string: " + vectorString); + return Vector3Int.zero; + } + + public static Vector4 ParseVector4(string vectorString) + { + vectorString = vectorString.Replace("(", "").Replace(")", ""); + string[] components = vectorString.Split(','); + + if (components.Length == 4 && + float.TryParse(components[0], out float x) && + float.TryParse(components[1], out float y) && + float.TryParse(components[2], out float z) && + float.TryParse(components[3], out float w)) + { + return new Vector4(x, y, z, w); + } + + Debug.LogError("Failed to parse Vector4 from string: " + vectorString); + return Vector4.zero; + } +#endregion +#region BoundsSerialization + /// + /// Produces a Bounds object from the result of Bounds.ToString(). Returns a Bounds with all zero values if unable to parse. + /// + public static Bounds ParseBounds(string boundsString) + { + // Remove parentheses and labels from the string + boundsString = Regex.Replace(boundsString, @"[^\d\.\-,]", ""); + + string[] components = boundsString.Split(','); + + if (components.Length == 6 && + float.TryParse(components[0], out float center_x) && + float.TryParse(components[1], out float center_y) && + float.TryParse(components[2], out float center_z) && + float.TryParse(components[3], out float extent_x) && + float.TryParse(components[4], out float extent_y) && + float.TryParse(components[5], out float extent_z)) + { + Vector3 center = new Vector3(center_x, center_y, center_z); + Vector3 size = new Vector3(extent_x, extent_y, extent_z) * 2f; + return new Bounds(center, size); + } + + Debug.LogWarning("Failed to parse Bounds from string: " + boundsString); + return new Bounds(Vector3.zero, Vector3.zero); + } + + /// + /// Produces a BoundsInt object from the result of BoundsInt.ToString(). Returns a Bounds with all zero values if unable to parse. + /// + public static BoundsInt ParseBoundsInt(string boundsString) + { + // Remove parentheses and labels and any unwanted decimals from the string + boundsString = Regex.Replace(boundsString, @"[^\d\-,]", ""); + + string[] components = boundsString.Split(','); + + if (components.Length == 6 && + int.TryParse(components[0], out int center_x) && + int.TryParse(components[1], out int center_y) && + int.TryParse(components[2], out int center_z) && + int.TryParse(components[3], out int extent_x) && + int.TryParse(components[4], out int extent_y) && + int.TryParse(components[5], out int extent_z)) + { + Vector3Int center = new Vector3Int(center_x, center_y, center_z); + Vector3Int size = new Vector3Int(extent_x, extent_y, extent_z) * 2; + return new BoundsInt(center, size); + } + + Debug.LogWarning("Failed to parse BoundsInt from string: " + boundsString); + return new BoundsInt(Vector3Int.zero, Vector3Int.zero); + } +#endregion +#region RectSerialization + + /// + /// Takes the string result of Rect.ToString() and produces the original Rect. Returns a zero-rect if unable to parse. + /// + public static Rect ParseRect(string rectString) + { + // Remove parentheses and labels from the string + rectString = Regex.Replace(rectString, @"[^\d\.\-,]", ""); + + string[] components = rectString.Split(','); + + if (components.Length == 4 && + float.TryParse(components[0], out float x) && + float.TryParse(components[1], out float y) && + float.TryParse(components[2], out float width) && + float.TryParse(components[3], out float height)) + { + Rect rect = new Rect(x, y, width, height); + return rect; + } + + Debug.LogWarning("Failed to parse Rect from string: " + rectString); + return new Rect(0, 0, 0, 0); + } + + /// + /// Takes the string result of RectInt.ToString() and produces the original RectInt. Returns a zero-rect if unable to parse. + /// + public static RectInt ParseRectInt(string rectString) + { + // Remove parentheses and labels from the string + rectString = Regex.Replace(rectString, @"[^\d\-,]", ""); + + string[] components = rectString.Split(','); + + if (components.Length == 4 && + int.TryParse(components[0], out int x) && + int.TryParse(components[1], out int y) && + int.TryParse(components[2], out int width) && + int.TryParse(components[3], out int height)) + { + RectInt rect = new RectInt(x, y, width, height); + return rect; + } + + Debug.LogWarning("Failed to parse RectInt from string: " + rectString); + return new RectInt(0, 0, 0, 0); + } + +#endregion + + /// + /// Takes the type, encoded as string, and the enum value and produces an Enum of the proper type. + /// + public static bool EnumDeserialize(string contentType, string encodedValue, out object enumValue) + { + Type type = Type.GetType(contentType); + if (type != null && type.IsEnum) + { + if (Enum.TryParse(type, encodedValue, out object enumIntermediateValue)) + { + enumValue = Convert.ChangeType(enumIntermediateValue, type); + return true; + } + } + enumValue = null; + return false; + } + + /// + /// Takes as input a string to be converted to a type, which is used to produce a Deserialized object. + /// + public static bool TryDeserializeJSON(string contentType, string json, out object result) + { + Type type = Type.GetType(contentType); + if (type != null) + { + result = JsonUtility.FromJson(json, type); + if (result != null) + { + return true; + } + } + result = null; + return false; + } + } +} + diff --git a/Assets/Scripts/Blackboard.cs.meta b/Assets/Scripts/Blackboard.cs.meta new file mode 100644 index 0000000..d87481f --- /dev/null +++ b/Assets/Scripts/Blackboard.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5514fe3cae16a7e4bb756eb9393ae1fd \ No newline at end of file diff --git a/Assets/Scripts/DataPersistence.meta b/Assets/Scripts/DataPersistence.meta new file mode 100644 index 0000000..3b2b1d9 --- /dev/null +++ b/Assets/Scripts/DataPersistence.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2431d2b86f83dd47938b9d9cdc4d41e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/Data.meta b/Assets/Scripts/DataPersistence/Data.meta new file mode 100644 index 0000000..18fa0b9 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f1c7553ca7b3bb4399eab9e93b9a6ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/Data/GameData.cs b/Assets/Scripts/DataPersistence/Data/GameData.cs new file mode 100644 index 0000000..a8330f2 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/GameData.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[System.Serializable] +public class GameData +{ + public long lastUpdated; + + public PlayerData player = new PlayerData(); + + public List shelves = new List(); + + // the values defined in this constructor will be the default values + // the game starts with when there's no data to load + public GameData() + { + } +} diff --git a/Assets/Scripts/DataPersistence/Data/GameData.cs.meta b/Assets/Scripts/DataPersistence/Data/GameData.cs.meta new file mode 100644 index 0000000..76f217d --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/GameData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89cbdf7a2dcd8ab40a929072c7493273 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/Data/InventoryData.cs b/Assets/Scripts/DataPersistence/Data/InventoryData.cs new file mode 100644 index 0000000..4265fd7 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/InventoryData.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[System.Serializable] +public class InventoryData +{ + public int capacity = 0; + + public SerializableDictionary items = new SerializableDictionary(); +} diff --git a/Assets/Scripts/DataPersistence/Data/InventoryData.cs.meta b/Assets/Scripts/DataPersistence/Data/InventoryData.cs.meta new file mode 100644 index 0000000..ee05e3c --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/InventoryData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3bcd40c816f3fb24a8aa90a6438d53a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/Data/PlayerData.cs b/Assets/Scripts/DataPersistence/Data/PlayerData.cs new file mode 100644 index 0000000..3ec91ca --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/PlayerData.cs @@ -0,0 +1,7 @@ +using System; + +[System.Serializable] +public class PlayerData +{ + public InventoryData inventory = new InventoryData(); +} \ No newline at end of file diff --git a/Assets/Scripts/DataPersistence/Data/PlayerData.cs.meta b/Assets/Scripts/DataPersistence/Data/PlayerData.cs.meta new file mode 100644 index 0000000..02f6557 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/PlayerData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ff587676af26ad344af1761388bb9016 \ No newline at end of file diff --git a/Assets/Scripts/DataPersistence/Data/ShelfData.cs b/Assets/Scripts/DataPersistence/Data/ShelfData.cs new file mode 100644 index 0000000..727a735 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/ShelfData.cs @@ -0,0 +1,11 @@ + +using UnityEngine; + +[System.Serializable] +public class ShelfData +{ + public string type = "shelf"; + public Vector2 location = Vector2.zero; + public float angle = 0; + public InventoryData inventory = new InventoryData(); +} diff --git a/Assets/Scripts/DataPersistence/Data/ShelfData.cs.meta b/Assets/Scripts/DataPersistence/Data/ShelfData.cs.meta new file mode 100644 index 0000000..2918485 --- /dev/null +++ b/Assets/Scripts/DataPersistence/Data/ShelfData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e220bc2634b66924c99448f4bd3a824c \ No newline at end of file diff --git a/Assets/Scripts/DataPersistence/DataPersistenceManager.cs b/Assets/Scripts/DataPersistence/DataPersistenceManager.cs new file mode 100644 index 0000000..5594a66 --- /dev/null +++ b/Assets/Scripts/DataPersistence/DataPersistenceManager.cs @@ -0,0 +1,156 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Linq; +using UnityEngine.SceneManagement; + +public class DataPersistenceManager : MonoBehaviour +{ + // [Header("Debugging")] + // [SerializeField] private bool initializeDataIfNull = false; + + [Header("File Storage Config")] + [SerializeField] private string fileName; + [SerializeField] private bool useEncryption; + + [Header("Auto Saving Configuration")] + [SerializeField] private float autoSaveTimeSeconds = 60f; + + private GameData gameData = new GameData(); + private List> dataPersistenceObjects; + private FileDataHandler dataHandler; + + private Coroutine autoSaveCoroutine; + + public static DataPersistenceManager instance { get; private set; } + + private void Awake() + { + if (instance != null) + { + Debug.Log("Found more than one Data Persistence Manager in the scene. Destroying the newest one."); + Destroy(this.gameObject); + return; + } + instance = this; + DontDestroyOnLoad(this.gameObject); + + this.dataHandler = new FileDataHandler(Application.persistentDataPath, fileName, useEncryption); + } + + private void OnEnable() + { + SceneManager.sceneLoaded += OnSceneLoaded; + + Initialize(); + } + + private void OnDisable() + { + SceneManager.sceneLoaded -= OnSceneLoaded; + } + + public void OnSceneLoaded(Scene scene, LoadSceneMode mode) + { + // Start(); + } + + private void Initialize() + { + LoadGame(); + + // start up the auto saving coroutine + if (autoSaveCoroutine != null) + { + StopCoroutine(autoSaveCoroutine); + } + autoSaveCoroutine = StartCoroutine(AutoSave()); + } + + public void NewGame() + { + Debug.Log("new game"); + this.gameData = new GameData(); + } + + public void LoadGame() + { + Debug.Log("Loading game"); + + this.dataPersistenceObjects = FindAllDataPersistenceObjects(); + + // load any saved data from a file using the data handler + this.gameData = dataHandler.Load(); + + // start a new game if the data is null and we're configured to initialize data for debugging purposes + if (this.gameData == null) + { + NewGame(); + return; + } + + // if no data can be loaded, don't continue + // if (this.gameData == null) + // { + // Debug.Log("No data was found. A New Game needs to be started before data can be loaded."); + // return; + // } + + // push the loaded data to all other scripts that need it + foreach (IDataPersistence dataPersistenceObj in dataPersistenceObjects) + { + dataPersistenceObj.LoadData(gameData); + } + } + + public void SaveGame() + { + Debug.Log("Saving game"); + + this.dataPersistenceObjects = FindAllDataPersistenceObjects(); + + // if we don't have any data to save, log a warning here + if (this.gameData == null) + { + Debug.LogWarning("No data was found. A New Game needs to be started before data can be saved."); + return; + } + + // pass the data to other scripts so they can update it + foreach (IDataPersistence dataPersistenceObj in dataPersistenceObjects) + { + dataPersistenceObj.SaveData(gameData); + } + + // timestamp the data so we know when it was last saved + gameData.lastUpdated = System.DateTime.Now.ToBinary(); + + // save that data to a file using the data handler + dataHandler.Save(gameData); + } + + private void OnApplicationQuit() + { + SaveGame(); + } + + private List> FindAllDataPersistenceObjects() + { + // FindObjectsofType takes in an optional boolean to include inactive gameobjects + IEnumerable> dataPersistenceObjects = FindObjectsByType(FindObjectsSortMode.None) + .OfType>(); + + var list = new List>(dataPersistenceObjects); + return list; + } + + private IEnumerator AutoSave() + { + while (true) + { + yield return new WaitForSeconds(autoSaveTimeSeconds); + SaveGame(); + Debug.Log("Auto Saved Game"); + } + } +} diff --git a/Assets/Scripts/DataPersistence/DataPersistenceManager.cs.meta b/Assets/Scripts/DataPersistence/DataPersistenceManager.cs.meta new file mode 100644 index 0000000..f4667b2 --- /dev/null +++ b/Assets/Scripts/DataPersistence/DataPersistenceManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a43c513eda07bf94db46b159ebbc8b51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/FileDataHandler.cs b/Assets/Scripts/DataPersistence/FileDataHandler.cs new file mode 100644 index 0000000..b06c75d --- /dev/null +++ b/Assets/Scripts/DataPersistence/FileDataHandler.cs @@ -0,0 +1,185 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; +using System.IO; + +public class FileDataHandler +{ + private string dataDirPath = ""; + private string dataFileName = ""; + private bool useEncryption = false; + private readonly string encryptionCodeWord = "word"; + private readonly string backupExtension = ".bak"; + + public FileDataHandler(string dataDirPath, string dataFileName, bool useEncryption) + { + this.dataDirPath = dataDirPath; + this.dataFileName = dataFileName; + this.useEncryption = useEncryption; + } + + public GameData Load(bool allowRestoreFromBackup = true) + { + // use Path.Combine to account for different OS's having different path separators + string fullPath = Path.Combine(dataDirPath, dataFileName); + GameData loadedData = null; + if (File.Exists(fullPath)) + { + try + { + // load the serialized data from the file + string dataToLoad = ""; + using (FileStream stream = new FileStream(fullPath, FileMode.Open)) + { + using (StreamReader reader = new StreamReader(stream)) + { + dataToLoad = reader.ReadToEnd(); + } + } + + // optionally decrypt the data + if (useEncryption) + { + dataToLoad = EncryptDecrypt(dataToLoad); + } + + // deserialize the data from Json back into the C# object + loadedData = JsonUtility.FromJson(dataToLoad); + } + catch (Exception e) + { + // since we're calling Load(..) recursively, we need to account for the case where + // the rollback succeeds, but data is still failing to load for some other reason, + // which without this check may cause an infinite recursion loop. + if (allowRestoreFromBackup) + { + Debug.LogWarning("Failed to load data file. Attempting to roll back.\n" + e); + bool rollbackSuccess = AttemptRollback(fullPath); + if (rollbackSuccess) + { + // try to load again recursively + loadedData = Load(false); + } + } + // if we hit this else block, one possibility is that the backup file is also corrupt + else + { + Debug.LogError("Error occured when trying to load file at path: " + + fullPath + " and backup did not work.\n" + e); + } + } + } + return loadedData; + } + + public void Save(GameData data) + { + // use Path.Combine to account for different OS's having different path separators + string fullPath = Path.Combine(dataDirPath, dataFileName); + Debug.Log("Saving to " + fullPath); + string backupFilePath = fullPath + backupExtension; + try + { + // create the directory the file will be written to if it doesn't already exist + Directory.CreateDirectory(Path.GetDirectoryName(fullPath)); + + // serialize the C# game data object into Json + string dataToStore = JsonUtility.ToJson(data, true); + + // optionally encrypt the data + if (useEncryption) + { + dataToStore = EncryptDecrypt(dataToStore); + } + + // write the serialized data to the file + using (FileStream stream = new FileStream(fullPath, FileMode.Create)) + { + using (StreamWriter writer = new StreamWriter(stream)) + { + writer.Write(dataToStore); + } + } + + // verify the newly saved file can be loaded successfully + GameData verifiedGameData = Load(); + // if the data can be verified, back it up + if (verifiedGameData != null) + { + File.Copy(fullPath, backupFilePath, true); + } + // otherwise, something went wrong and we should throw an exception + else + { + throw new Exception("Save file could not be verified and backup could not be created."); + } + + } + catch (Exception e) + { + Debug.LogError("Error occured when trying to save data to file: " + fullPath + "\n" + e); + } + } + + public void Delete() + { + string fullPath = Path.Combine(dataDirPath, dataFileName); + try + { + // ensure the data file exists at this path before deleting the directory + if (File.Exists(fullPath)) + { + // delete the profile folder and everything within it + Directory.Delete(Path.GetDirectoryName(fullPath), true); + } + else + { + Debug.LogWarning("Tried to delete profile data, but data was not found at path: " + fullPath); + } + } + catch (Exception e) + { + Debug.LogError("Failed to delete data at path: " + fullPath + "\n" + e); + } + } + + // the below is a simple implementation of XOR encryption + private string EncryptDecrypt(string data) + { + string modifiedData = ""; + for (int i = 0; i < data.Length; i++) + { + modifiedData += (char) (data[i] ^ encryptionCodeWord[i % encryptionCodeWord.Length]); + } + return modifiedData; + } + + private bool AttemptRollback(string fullPath) + { + bool success = false; + string backupFilePath = fullPath + backupExtension; + try + { + // if the file exists, attempt to roll back to it by overwriting the original file + if (File.Exists(backupFilePath)) + { + File.Copy(backupFilePath, fullPath, true); + success = true; + Debug.LogWarning("Had to roll back to backup file at: " + backupFilePath); + } + // otherwise, we don't yet have a backup file - so there's nothing to roll back to + else + { + throw new Exception("Tried to roll back, but no backup file exists to roll back to."); + } + } + catch (Exception e) + { + Debug.LogError("Error occured when trying to roll back to backup file at: " + + backupFilePath + "\n" + e); + } + + return success; + } +} diff --git a/Assets/Scripts/DataPersistence/FileDataHandler.cs.meta b/Assets/Scripts/DataPersistence/FileDataHandler.cs.meta new file mode 100644 index 0000000..f659ce9 --- /dev/null +++ b/Assets/Scripts/DataPersistence/FileDataHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4d960248b76a174e8de8eb7d18afdb5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/IDataPersistence.cs b/Assets/Scripts/DataPersistence/IDataPersistence.cs new file mode 100644 index 0000000..dd496c0 --- /dev/null +++ b/Assets/Scripts/DataPersistence/IDataPersistence.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +public interface IDataPersistenceBase +{ + +} + +public interface IDataPersistence : IDataPersistenceBase +{ + void LoadData(TData data); + + // The 'ref' keyword was removed from here as it is not needed. + // In C#, non-primitive types are automatically passed by reference. + void SaveData(TData data); +} diff --git a/Assets/Scripts/DataPersistence/IDataPersistence.cs.meta b/Assets/Scripts/DataPersistence/IDataPersistence.cs.meta new file mode 100644 index 0000000..09159bf --- /dev/null +++ b/Assets/Scripts/DataPersistence/IDataPersistence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dadb1cc8e7af5394ca73356b1c0f1289 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/SerializableTypes.meta b/Assets/Scripts/DataPersistence/SerializableTypes.meta new file mode 100644 index 0000000..891dc9d --- /dev/null +++ b/Assets/Scripts/DataPersistence/SerializableTypes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e335e31db871f2246b93b4540f64cb92 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs b/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs new file mode 100644 index 0000000..48122cd --- /dev/null +++ b/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Unity.Collections; +using UnityEngine; + +[System.Serializable] +public class SerializableDictionaryEntry +{ + public TKey key; + public TValue value; +} + +[System.Serializable] +public class SerializableDictionary + : Dictionary, + ISerializationCallbackReceiver +{ + [SerializeField] + private List> entries = + new List>(); + + public SerializableDictionary() { } + + public SerializableDictionary(Dictionary source) + { + foreach (var item in source) + Add(item.Key, item.Value); + } + + public void OnBeforeSerialize() + { + entries.Clear(); + foreach (KeyValuePair pair in this) + { + entries.Add( + new SerializableDictionaryEntry() + { + key = pair.Key, + value = pair.Value, + } + ); + } + } + + // load the dictionary from lists + public void OnAfterDeserialize() + { + this.Clear(); + + foreach (SerializableDictionaryEntry entry in entries) + { + this.Add(entry.key, entry.value); + } + } +} diff --git a/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs.meta b/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs.meta new file mode 100644 index 0000000..0f76c3e --- /dev/null +++ b/Assets/Scripts/DataPersistence/SerializableTypes/SerializableDictionary.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9dc07c3462db23d45a4aa37b7d15244c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/IInventoryHolder.cs b/Assets/Scripts/IInventoryHolder.cs new file mode 100644 index 0000000..595a4fe --- /dev/null +++ b/Assets/Scripts/IInventoryHolder.cs @@ -0,0 +1,4 @@ +internal interface IInventoryHolder +{ + public Inventory Inventory { get; } +} diff --git a/Assets/Scripts/IInventoryHolder.cs.meta b/Assets/Scripts/IInventoryHolder.cs.meta new file mode 100644 index 0000000..f2bcd7a --- /dev/null +++ b/Assets/Scripts/IInventoryHolder.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 33df6761ae7d94945a747839ae11b55f \ No newline at end of file diff --git a/Assets/Scripts/Inventory.meta b/Assets/Scripts/Inventory.meta new file mode 100644 index 0000000..bf5f408 --- /dev/null +++ b/Assets/Scripts/Inventory.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77e8db4934918fe4eaa57a707ac4d043 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/Inventory.cs b/Assets/Scripts/Inventory/Inventory.cs new file mode 100644 index 0000000..89d0af5 --- /dev/null +++ b/Assets/Scripts/Inventory/Inventory.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor.Tilemaps; + +[Serializable] +public class Inventory : IDataPersistence +{ + private int capacity = 0; + private Dictionary items = new Dictionary(); + + public Inventory(int capacity) + { + this.capacity = capacity; + } + + public IReadOnlyDictionary Items => items; + + public int Capacity => capacity; + + public int Load => items.Sum(kvp => kvp.Value); + + public int Free => Capacity < 0 ? int.MaxValue : Capacity - Load; + + public override string ToString() + { + string text = string.Join(Environment.NewLine, items); + text += Environment.NewLine + Environment.NewLine + $"Занято {Load}"; + if (Capacity >= 0) + text += $", свободно {Capacity - Load}"; + + return text; + } + + public int Add(string key, int value, bool allowPartialAdd = false) + { + if (!allowPartialAdd && (Capacity >= 0) && (Capacity < Load + value)) + return 0; + + value = Math.Min(value, Free); + + if (items.ContainsKey(key)) + items[key] += value; + else + items[key] = value; + + return value; + } + + public void LoadData(InventoryData data) + { + items = data.items; + capacity = data.capacity; + } + + public void SaveData(InventoryData data) + { + data.items = new SerializableDictionary(items); + data.capacity = capacity; + } +} diff --git a/Assets/Scripts/Inventory/Inventory.cs.meta b/Assets/Scripts/Inventory/Inventory.cs.meta new file mode 100644 index 0000000..836ee91 --- /dev/null +++ b/Assets/Scripts/Inventory/Inventory.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ce5eba69c9106f64baa1f264b567c861 \ No newline at end of file diff --git a/Assets/Scripts/Inventory/UIToolkitInfoPanel.cs b/Assets/Scripts/Inventory/UIToolkitInfoPanel.cs new file mode 100644 index 0000000..245590e --- /dev/null +++ b/Assets/Scripts/Inventory/UIToolkitInfoPanel.cs @@ -0,0 +1,51 @@ +using UnityEngine; +using UnityEngine.UIElements; + +public class UIToolkitInfoPanel : MonoBehaviour +{ + public Transform targetObject; + public Vector3 worldOffset = new Vector3(0, 1f, 0); + + private UIDocument uiDocument; + private VisualElement infoPanel; + private Label infoLabel; + private Camera mainCamera; + + void Start() + { + uiDocument = GetComponent(); + mainCamera = Camera.main; + + if (uiDocument != null) + { + infoPanel = uiDocument.rootVisualElement.Q("InfoPanel"); + infoLabel = uiDocument.rootVisualElement.Q