From c336e6f356a2406fda4381ff4fa1f0f30d309ffb Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Thu, 30 Jul 2026 15:38:55 +0900 Subject: [PATCH 01/15] test: Setup test harness across multiple unity versions --- .editorconfig | 3 +- Alchemy.SourceGenerator.Tests/.editorconfig | 2 + Alchemy.SourceGenerator/.editorconfig | 2 + Alchemy/Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + Alchemy/Packages/manifest.json | 6 +- Alchemy/Packages/packages-lock.json | 6 + tests/Alchemy.Tests/.gitignore | 78 ++ .../Alchemy.Tests/Assets/Alchemy.Tests.meta | 0 .../Alchemy.Tests}/Alchemy.Tests.asmdef | 3 +- .../Alchemy.Tests}/Alchemy.Tests.asmdef.meta | 0 .../EditMode.Serialization.meta | 0 ...lchemy.Tests.EditMode.Serialization.asmdef | 0 ...y.Tests.EditMode.Serialization.asmdef.meta | 0 .../AnimationCurveTest.cs | 0 .../AnimationCurveTest.cs.meta | 0 .../EditMode.Serialization/CollectionTest.cs | 0 .../CollectionTest.cs.meta | 0 .../EditMode.Serialization/CompositeTest.cs | 0 .../CompositeTest.cs.meta | 0 .../EditMode.Serialization/GradientTest.cs | 0 .../GradientTest.cs.meta | 0 .../EditMode.Serialization/NullableTest.cs | 0 .../NullableTest.cs.meta | 0 .../EditMode.Serialization/PrimitiveTest.cs | 0 .../PrimitiveTest.cs.meta | 0 .../EditMode.Serialization/UnityObjectTest.cs | 0 .../UnityObjectTest.cs.meta | 0 .../UnityValueTypeTest.cs | 0 .../UnityValueTypeTest.cs.meta | 0 .../PlayMode.Serialization.meta | 0 ...lchemy.Tests.PlayMode.Serialization.asmdef | 0 ...y.Tests.PlayMode.Serialization.asmdef.meta | 0 .../PlayMode.Serialization/GeneratedTest.cs | 0 .../GeneratedTest.cs.meta | 0 .../Assets/Alchemy.Tests/TestCommands.cs | 345 +++++++ .../Assets/Alchemy.Tests/TestCommands.cs.meta | 2 + .../Assets/Alchemy.Tests}/TestUtility.cs | 4 +- .../Assets/Alchemy.Tests}/TestUtility.cs.meta | 0 .../Assets/Alchemy.Tests/package.json | 9 + .../Assets/Alchemy.Tests/package.json.meta | 7 + tests/Alchemy.Tests/Assets/Resources.meta | 8 + .../Assets/Resources/BillingMode.json | 1 + .../Assets/Resources/BillingMode.json.meta | 7 + tests/Alchemy.Tests/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/Alchemy.Tests/Assets/Settings.meta | 8 + .../Assets/Settings/SampleSceneProfile.asset | 123 +++ .../Settings/SampleSceneProfile.asset.meta | 8 + .../Settings/URP-Balanced-Renderer.asset | 81 ++ .../Settings/URP-Balanced-Renderer.asset.meta | 8 + .../Assets/Settings/URP-Balanced.asset | 74 ++ .../Assets/Settings/URP-Balanced.asset.meta | 8 + .../Settings/URP-HighFidelity-Renderer.asset | 81 ++ .../URP-HighFidelity-Renderer.asset.meta | 8 + .../Assets/Settings/URP-HighFidelity.asset | 69 ++ .../Settings/URP-HighFidelity.asset.meta | 8 + .../Settings/URP-Performant-Renderer.asset | 57 ++ .../URP-Performant-Renderer.asset.meta | 8 + .../Assets/Settings/URP-Performant.asset | 69 ++ .../Assets/Settings/URP-Performant.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 27 + ...salRenderPipelineGlobalSettings.asset.meta | 8 + tests/Alchemy.Tests/Packages/manifest.json | 8 + .../Alchemy.Tests/Packages/packages-lock.json | 67 ++ .../ProjectSettings/AudioManager.asset | 19 + .../BurstAotSettings_StandaloneWindows.json | 17 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../CommonBurstAotSettings.json | 6 + .../ProjectSettings/DynamicsManager.asset | 36 + .../ProjectSettings/EditorBuildSettings.asset | 11 + .../ProjectSettings/EditorSettings.asset | 42 + .../ProjectSettings/GraphicsSettings.asset | 70 ++ .../ProjectSettings/InputManager.asset | 487 ++++++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/NavMeshAreas.asset | 91 ++ .../PackageManagerSettings.asset | 43 + .../ProjectSettings/Physics2DSettings.asset | 56 ++ .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 873 ++++++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 136 +++ .../RiderScriptEditorPersistedState.asset | 15 + .../SceneTemplateSettings.json | 167 ++++ .../ProjectSettings/ShaderGraphSettings.asset | 16 + .../ProjectSettings/TagManager.asset | 43 + .../ProjectSettings/TimeManager.asset | 9 + .../ProjectSettings/URPProjectSettings.asset | 15 + .../UnityConnectSettings.asset | 35 + .../ProjectSettings/VFXManager.asset | 12 + .../VersionControlSettings.asset | 8 + .../ProjectSettings/XRSettings.asset | 10 + .../Alchemy.Tests/ProjectSettings/boot.config | 0 tests/README.md | 19 + tests/UnityTestRunner.slnx | 3 + tests/UnityTestRunner/.editorconfig | 2 + tests/UnityTestRunner/.gitignore | 403 ++++++++ tests/UnityTestRunner/AssemblyAttributes.cs | 3 + tests/UnityTestRunner/Exceptions.cs | 27 + tests/UnityTestRunner/Models.cs | 186 ++++ tests/UnityTestRunner/ProcessRunner.cs | 133 +++ tests/UnityTestRunner/UnityCli.cs | 109 +++ tests/UnityTestRunner/UnityTest.cs | 425 +++++++++ tests/UnityTestRunner/UnityTestRunner.csproj | 15 + tests/UnityTestRunner/UnityVersionTests.cs | 111 +++ tests/UnityTestRunner/WindowsProcessJob.cs | 154 +++ tests/versions/Unity2022.3/.gitignore | 78 ++ tests/versions/Unity2022.3/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity2022.3/Packages/manifest.json | 11 + .../Unity2022.3/Packages/packages-lock.json | 120 +++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 20 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 40 + .../ProjectSettings/EditorBuildSettings.asset | 8 + .../ProjectSettings/EditorSettings.asset | 47 + .../ProjectSettings/GraphicsSettings.asset | 67 ++ .../ProjectSettings/InputManager.asset | 296 ++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../ProjectSettings/Physics2DSettings.asset | 48 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 865 +++++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 322 +++++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 43 + .../ProjectSettings/TimeManager.asset | 9 + .../UnityConnectSettings.asset | 36 + .../ProjectSettings/VFXManager.asset | 18 + .../VersionControlSettings.asset | 8 + tests/versions/Unity6000.0/.gitignore | 78 ++ tests/versions/Unity6000.0/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity6000.0/Packages/manifest.json | 12 + .../Unity6000.0/Packages/packages-lock.json | 161 ++++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 20 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 45 + .../ProjectSettings/EditorBuildSettings.asset | 9 + .../ProjectSettings/EditorSettings.asset | 50 + .../ProjectSettings/GraphicsSettings.asset | 66 ++ .../ProjectSettings/InputManager.asset | 296 ++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 7 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../PackageManagerSettings.asset | 40 + .../ProjectSettings/Physics2DSettings.asset | 56 ++ .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 693 ++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 341 +++++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 45 + .../ProjectSettings/TimeManager.asset | 14 + .../UnityConnectSettings.asset | 40 + .../ProjectSettings/VFXManager.asset | 19 + .../VersionControlSettings.asset | 7 + tests/versions/Unity6000.3/.gitignore | 78 ++ tests/versions/Unity6000.3/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity6000.3/Packages/manifest.json | 12 + .../Unity6000.3/Packages/packages-lock.json | 168 ++++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 23 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 46 + .../ProjectSettings/EditorBuildSettings.asset | 9 + .../ProjectSettings/EditorSettings.asset | 50 + .../ProjectSettings/GraphicsSettings.asset | 68 ++ .../ProjectSettings/InputManager.asset | 296 ++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 9 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../PackageManagerSettings.asset | 40 + .../ProjectSettings/Physics2DSettings.asset | 57 ++ .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 703 ++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 347 +++++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 45 + .../ProjectSettings/TimeManager.asset | 14 + .../UnityConnectSettings.asset | 40 + .../ProjectSettings/VFXManager.asset | 20 + .../VersionControlSettings.asset | 7 + tests/versions/Unity6000.4/.gitignore | 78 ++ tests/versions/Unity6000.4/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity6000.4/Packages/manifest.json | 13 + .../Unity6000.4/Packages/packages-lock.json | 176 ++++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 19 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 34 + .../ProjectSettings/EditorBuildSettings.asset | 9 + .../ProjectSettings/EditorSettings.asset | 52 ++ .../ProjectSettings/GraphicsSettings.asset | 63 ++ .../ProjectSettings/InputManager.asset | 295 ++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 9 + .../ProjectSettings/NavMeshAreas.asset | 91 ++ .../PackageManagerSettings.asset | 35 + .../Settings.json | 5 + .../ProjectSettings/Physics2DSettings.asset | 56 ++ .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 780 ++++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 234 +++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 43 + .../ProjectSettings/TimeManager.asset | 9 + .../UnityConnectSettings.asset | 40 + .../ProjectSettings/VFXManager.asset | 12 + .../VersionControlSettings.asset | 8 + .../ProjectSettings/XRSettings.asset | 10 + tests/versions/Unity6000.5/.gitignore | 78 ++ tests/versions/Unity6000.5/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity6000.5/Packages/manifest.json | 12 + .../Unity6000.5/Packages/packages-lock.json | 171 ++++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 23 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 46 + .../ProjectSettings/EditorBuildSettings.asset | 8 + .../ProjectSettings/EditorSettings.asset | 53 ++ .../ProjectSettings/GraphicsSettings.asset | 79 ++ .../ProjectSettings/InputManager.asset | 296 ++++++ .../ProjectSettings/MemorySettings.asset | 36 + .../ProjectSettings/MultiplayerManager.asset | 7 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../PackageManagerSettings.asset | 44 + .../ProjectSettings/Physics2DSettings.asset | 57 ++ .../PhysicsCoreProjectSettings2D.asset | 6 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectAuditorSettings.asset | 36 + .../ProjectSettings/ProjectSettings.asset | 704 ++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 347 +++++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 46 + .../ProjectSettings/TimeManager.asset | 14 + .../UnityConnectSettings.asset | 40 + .../ProjectSettings/VFXManager.asset | 20 + .../VersionControlSettings.asset | 7 + tests/versions/Unity6000.7/.gitignore | 78 ++ tests/versions/Unity6000.7/Assets/Tests.meta | 8 + .../Assets/Tests/Alchemy.Tests.asmdef | 21 + .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 + .../Assets/Tests/TestAssemblyReference.cs | 6 + .../Tests/TestAssemblyReference.cs.meta | 2 + .../Unity6000.7/Packages/manifest.json | 12 + .../Unity6000.7/Packages/packages-lock.json | 159 ++++ .../ProjectSettings/AlchemySettings.json | 32 + .../ProjectSettings/AudioManager.asset | 23 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 46 + .../ProjectSettings/EditorBuildSettings.asset | 8 + .../ProjectSettings/EditorSettings.asset | 54 ++ .../ProjectSettings/GraphicsSettings.asset | 81 ++ .../ProjectSettings/InputManager.asset | 296 ++++++ .../ProjectSettings/MemorySettings.asset | 38 + .../ProjectSettings/MultiplayerManager.asset | 7 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../PackageManagerSettings.asset | 44 + .../ProjectSettings/Physics2DSettings.asset | 57 ++ .../PhysicsCoreProjectSettings2D.asset | 6 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 710 ++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 347 +++++++ .../SceneTemplateSettings.json | 121 +++ .../ProjectSettings/TagManager.asset | 46 + .../ProjectSettings/TimeManager.asset | 14 + .../UnityConnectSettings.asset | 42 + .../ProjectSettings/VFXManager.asset | 21 + .../VersionControlSettings.asset | 7 + 296 files changed, 19752 insertions(+), 7 deletions(-) create mode 100644 Alchemy.SourceGenerator.Tests/.editorconfig create mode 100644 Alchemy.SourceGenerator/.editorconfig create mode 100644 Alchemy/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/Alchemy.Tests/.gitignore rename Alchemy/Assets/Alchemy/Tests.meta => tests/Alchemy.Tests/Assets/Alchemy.Tests.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/Alchemy.Tests.asmdef (93%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/Alchemy.Tests.asmdef.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/AnimationCurveTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/AnimationCurveTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/CollectionTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/CollectionTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/CompositeTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/CompositeTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/GradientTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/GradientTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/NullableTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/NullableTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/PrimitiveTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/PrimitiveTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/UnityObjectTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/UnityObjectTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/UnityValueTypeTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/EditMode.Serialization/UnityValueTypeTest.cs.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/PlayMode.Serialization.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef.meta (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/PlayMode.Serialization/GeneratedTest.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/PlayMode.Serialization/GeneratedTest.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs.meta rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/TestUtility.cs (100%) rename {Alchemy/Assets/Alchemy/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests}/TestUtility.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json.meta create mode 100644 tests/Alchemy.Tests/Assets/Resources.meta create mode 100644 tests/Alchemy.Tests/Assets/Resources/BillingMode.json create mode 100644 tests/Alchemy.Tests/Assets/Resources/BillingMode.json.meta create mode 100644 tests/Alchemy.Tests/Assets/Scenes.meta create mode 100644 tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity create mode 100644 tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset create mode 100644 tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 tests/Alchemy.Tests/Packages/manifest.json create mode 100644 tests/Alchemy.Tests/Packages/packages-lock.json create mode 100644 tests/Alchemy.Tests/ProjectSettings/AudioManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/BurstAotSettings_StandaloneWindows.json create mode 100644 tests/Alchemy.Tests/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/CommonBurstAotSettings.json create mode 100644 tests/Alchemy.Tests/ProjectSettings/DynamicsManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/EditorSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/InputManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/MemorySettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/PresetManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/ProjectSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/ProjectVersion.txt create mode 100644 tests/Alchemy.Tests/ProjectSettings/QualitySettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/RiderScriptEditorPersistedState.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/Alchemy.Tests/ProjectSettings/ShaderGraphSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/TagManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/TimeManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/URPProjectSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/VFXManager.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/XRSettings.asset create mode 100644 tests/Alchemy.Tests/ProjectSettings/boot.config create mode 100644 tests/README.md create mode 100644 tests/UnityTestRunner.slnx create mode 100644 tests/UnityTestRunner/.editorconfig create mode 100644 tests/UnityTestRunner/.gitignore create mode 100644 tests/UnityTestRunner/AssemblyAttributes.cs create mode 100644 tests/UnityTestRunner/Exceptions.cs create mode 100644 tests/UnityTestRunner/Models.cs create mode 100644 tests/UnityTestRunner/ProcessRunner.cs create mode 100644 tests/UnityTestRunner/UnityCli.cs create mode 100644 tests/UnityTestRunner/UnityTest.cs create mode 100644 tests/UnityTestRunner/UnityTestRunner.csproj create mode 100644 tests/UnityTestRunner/UnityVersionTests.cs create mode 100644 tests/UnityTestRunner/WindowsProcessJob.cs create mode 100644 tests/versions/Unity2022.3/.gitignore create mode 100644 tests/versions/Unity2022.3/Assets/Tests.meta create mode 100644 tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity2022.3/Packages/manifest.json create mode 100644 tests/versions/Unity2022.3/Packages/packages-lock.json create mode 100644 tests/versions/Unity2022.3/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity2022.3/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity2022.3/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity2022.3/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity2022.3/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/versions/Unity6000.0/.gitignore create mode 100644 tests/versions/Unity6000.0/Assets/Tests.meta create mode 100644 tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity6000.0/Packages/manifest.json create mode 100644 tests/versions/Unity6000.0/Packages/packages-lock.json create mode 100644 tests/versions/Unity6000.0/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity6000.0/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/MultiplayerManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity6000.0/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity6000.0/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity6000.0/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/versions/Unity6000.3/.gitignore create mode 100644 tests/versions/Unity6000.3/Assets/Tests.meta create mode 100644 tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity6000.3/Packages/manifest.json create mode 100644 tests/versions/Unity6000.3/Packages/packages-lock.json create mode 100644 tests/versions/Unity6000.3/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity6000.3/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/MultiplayerManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity6000.3/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity6000.3/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity6000.3/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/versions/Unity6000.4/.gitignore create mode 100644 tests/versions/Unity6000.4/Assets/Tests.meta create mode 100644 tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity6000.4/Packages/manifest.json create mode 100644 tests/versions/Unity6000.4/Packages/packages-lock.json create mode 100644 tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json create mode 100644 tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity6000.4/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset create mode 100644 tests/versions/Unity6000.5/.gitignore create mode 100644 tests/versions/Unity6000.5/Assets/Tests.meta create mode 100644 tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity6000.5/Packages/manifest.json create mode 100644 tests/versions/Unity6000.5/Packages/packages-lock.json create mode 100644 tests/versions/Unity6000.5/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity6000.5/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/MultiplayerManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/PhysicsCoreProjectSettings2D.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/ProjectAuditorSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity6000.5/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity6000.5/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity6000.5/ProjectSettings/VersionControlSettings.asset create mode 100644 tests/versions/Unity6000.7/.gitignore create mode 100644 tests/versions/Unity6000.7/Assets/Tests.meta create mode 100644 tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef create mode 100644 tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta create mode 100644 tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs create mode 100644 tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity6000.7/Packages/manifest.json create mode 100644 tests/versions/Unity6000.7/Packages/packages-lock.json create mode 100644 tests/versions/Unity6000.7/ProjectSettings/AlchemySettings.json create mode 100644 tests/versions/Unity6000.7/ProjectSettings/AudioManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/ClusterInputManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/DynamicsManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/EditorBuildSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/EditorSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/GraphicsSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/InputManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/MemorySettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/MultiplayerManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/NavMeshAreas.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/PackageManagerSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/Physics2DSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/PhysicsCoreProjectSettings2D.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/PresetManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/ProjectSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/ProjectVersion.txt create mode 100644 tests/versions/Unity6000.7/ProjectSettings/QualitySettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/SceneTemplateSettings.json create mode 100644 tests/versions/Unity6000.7/ProjectSettings/TagManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/TimeManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/UnityConnectSettings.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/VFXManager.asset create mode 100644 tests/versions/Unity6000.7/ProjectSettings/VersionControlSettings.asset diff --git a/.editorconfig b/.editorconfig index 21fa25c..6f0849c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -33,9 +33,8 @@ csharp_style_expression_bodied_indexers = when_on_single_line:suggestion csharp_style_expression_bodied_accessors = false:suggestion csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion -# Preserve compact control flow and Unity-compatible namespace syntax. +# Preserve compact control flow csharp_prefer_braces = when_multiline:suggestion -csharp_style_namespace_declarations = block_scoped:suggestion #### Project Naming Conventions #### diff --git a/Alchemy.SourceGenerator.Tests/.editorconfig b/Alchemy.SourceGenerator.Tests/.editorconfig new file mode 100644 index 0000000..4bf9ff5 --- /dev/null +++ b/Alchemy.SourceGenerator.Tests/.editorconfig @@ -0,0 +1,2 @@ +[*.cs] +csharp_style_namespace_declarations = file_scoped:suggestion diff --git a/Alchemy.SourceGenerator/.editorconfig b/Alchemy.SourceGenerator/.editorconfig new file mode 100644 index 0000000..4bf9ff5 --- /dev/null +++ b/Alchemy.SourceGenerator/.editorconfig @@ -0,0 +1,2 @@ +[*.cs] +csharp_style_namespace_declarations = file_scoped:suggestion diff --git a/Alchemy/Assets/Tests/Alchemy.Tests.asmdef b/Alchemy/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/Alchemy/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta b/Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..1ae5a78 --- /dev/null +++ b/Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b64a2fc1d4b46d2bb1c83d6bc7287ff +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Packages/manifest.json b/Alchemy/Packages/manifest.json index 303ae6c..15f0edc 100644 --- a/Alchemy/Packages/manifest.json +++ b/Alchemy/Packages/manifest.json @@ -1,5 +1,6 @@ { "dependencies": { + "com.annulusgames.alchemy.test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.collab-proxy": "2.12.4", "com.unity.feature.development": "1.0.2", "com.unity.ide.visualstudio": "2.0.27", @@ -43,5 +44,8 @@ "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" - } + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] } diff --git a/Alchemy/Packages/packages-lock.json b/Alchemy/Packages/packages-lock.json index af67401..3dcdc54 100644 --- a/Alchemy/Packages/packages-lock.json +++ b/Alchemy/Packages/packages-lock.json @@ -1,5 +1,11 @@ { "dependencies": { + "com.annulusgames.alchemy.test": { + "version": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": {} + }, "com.unity.burst": { "version": "1.8.29", "depth": 1, diff --git a/tests/Alchemy.Tests/.gitignore b/tests/Alchemy.Tests/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/Alchemy.Tests/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/Alchemy/Assets/Alchemy/Tests.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.meta diff --git a/Alchemy/Assets/Alchemy/Tests/Alchemy.Tests.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests/Alchemy.Tests.asmdef similarity index 93% rename from Alchemy/Assets/Alchemy/Tests/Alchemy.Tests.asmdef rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/Alchemy.Tests.asmdef index 5b46b50..bc19664 100644 --- a/Alchemy/Assets/Alchemy/Tests/Alchemy.Tests.asmdef +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/Alchemy.Tests.asmdef @@ -4,7 +4,6 @@ "references": [ "GUID:27619889b8ba8c24980f49ee34dbb44a", "GUID:0acc523941302664db1f4e527237feb3", - "GUID:2765e68924a08a94ea0ea66b31c0168f", "GUID:88be65f96b86746888c927a5c8ff3534" ], "includePlatforms": [ @@ -28,4 +27,4 @@ } ], "noEngineReferences": false -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/Alchemy.Tests.asmdef.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/Alchemy.Tests.asmdef.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/Alchemy.Tests.EditMode.Serialization.asmdef.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/AnimationCurveTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/AnimationCurveTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/AnimationCurveTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/AnimationCurveTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/AnimationCurveTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/AnimationCurveTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/AnimationCurveTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/AnimationCurveTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CollectionTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CollectionTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CollectionTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CollectionTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CollectionTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CollectionTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CollectionTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CollectionTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CompositeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CompositeTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CompositeTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CompositeTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CompositeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CompositeTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/CompositeTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/CompositeTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/GradientTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/GradientTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/GradientTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/GradientTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/GradientTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/GradientTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/GradientTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/GradientTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/NullableTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/NullableTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/NullableTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/NullableTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/NullableTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/NullableTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/NullableTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/NullableTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/PrimitiveTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/PrimitiveTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/PrimitiveTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/PrimitiveTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/PrimitiveTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/PrimitiveTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/PrimitiveTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/PrimitiveTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityObjectTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityObjectTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityObjectTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityObjectTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityObjectTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityObjectTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityObjectTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityObjectTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityValueTypeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityValueTypeTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityValueTypeTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityValueTypeTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityValueTypeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityValueTypeTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/EditMode.Serialization/UnityValueTypeTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/EditMode.Serialization/UnityValueTypeTest.cs.meta diff --git a/Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization.meta diff --git a/Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef diff --git a/Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/Alchemy.Tests.PlayMode.Serialization.asmdef.meta diff --git a/Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/GeneratedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/GeneratedTest.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/GeneratedTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/GeneratedTest.cs diff --git a/Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/GeneratedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/GeneratedTest.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/PlayMode.Serialization/GeneratedTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/PlayMode.Serialization/GeneratedTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs new file mode 100644 index 0000000..20b75c8 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs @@ -0,0 +1,345 @@ +using System; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Text; +using System.Xml; +using UnityEditor; +using UnityEditor.TestTools.TestRunner.Api; +using UnityEngine; + +namespace Alchemy.Tests +{ + [InitializeOnLoad] + public static class TestCommands + { + private const string MenuRoot = "Alchemy/Tests/"; + private const string RunStateKey = "Alchemy.Tests.TestCommands.RunState"; + private const string TestCountKey = "Alchemy.Tests.TestCommands.TestCount"; + private const string FailureCountKey = "Alchemy.Tests.TestCommands.FailureCount"; + private const string AutoQuitArgument = "--auto-quit"; + private const string ResultArgument = "-testResults"; + private const string LongResultArgument = "--test-results"; + + private const int SuccessExitCode = 0; + private const int TestFailureExitCode = 2; + private const int RunErrorExitCode = 3; + + private static readonly TestRunnerApi TestRunnerApi; + + static TestCommands() + { + TestRunnerApi = ScriptableObject.CreateInstance(); + TestRunnerApi.RegisterCallbacks(new TestCallbacks()); + } + + [MenuItem(MenuRoot + "Refresh")] + public static void Refresh() + { + AssetDatabase.Refresh(); + if (ShouldAutoQuit) + { + EditorApplication.Exit(SuccessExitCode); + } + } + + [MenuItem(MenuRoot + "Run All EditMode Tests")] + public static void RunAllEditModeTests() + { + StartRun(RunState.EditMode); + } + + [MenuItem(MenuRoot + "Run All EditMode Tests", true)] + private static bool CanRunAllEditModeTests() + { + return !IsRunning; + } + + [MenuItem(MenuRoot + "Run All PlayMode Tests")] + public static void RunAllPlayModeTests() + { + StartRun(RunState.PlayMode); + } + + [MenuItem(MenuRoot + "Run All PlayMode Tests", true)] + private static bool CanRunAllPlayModeTests() + { + return !IsRunning; + } + + [MenuItem(MenuRoot + "Run All Tests")] + public static void RunAllTests() + { + StartRun(RunState.AllEditMode); + } + + [MenuItem(MenuRoot + "Run All Tests", true)] + private static bool CanRunAllTests() + { + return !IsRunning; + } + + private static bool IsRunning => CurrentRunState != RunState.None; + + private static RunState CurrentRunState + { + get => (RunState)SessionState.GetInt(RunStateKey, (int)RunState.None); + set => SessionState.SetInt(RunStateKey, (int)value); + } + + private static void StartRun(RunState runState) + { + if (Application.isBatchMode && + Array.Exists(Environment.GetCommandLineArgs(), + argument => string.Equals(argument, "-quit", StringComparison.OrdinalIgnoreCase))) + { + FinishWithError( + "Do not pass -quit when using Alchemy test commands. " + + "The command exits Unity after the asynchronous test run finishes."); + return; + } + + if (IsRunning) + { + Debug.LogError("An Alchemy test command is already running."); + if (Application.isBatchMode) + { + EditorApplication.Exit(RunErrorExitCode); + } + + return; + } + + SessionState.SetInt(TestCountKey, 0); + SessionState.SetInt(FailureCountKey, 0); + CurrentRunState = runState; + + var testMode = GetTestMode(runState); + Debug.Log($"Running all Alchemy {testMode} tests."); + Execute(testMode); + } + + private static void Execute(TestMode testMode) + { + EditorApplication.delayCall += () => + { + try + { + EnsureTestAssembliesLoaded(); + TestRunnerApi.Execute(new ExecutionSettings(new Filter + { + testMode = testMode + })); + } + catch (Exception exception) + { + FinishWithError(exception.ToString()); + } + }; + } + + private static void EnsureTestAssembliesLoaded() + { + Assembly.Load("Alchemy.Tests.EditMode.Serialization"); + Assembly.Load("Alchemy.Tests.PlayMode.Serialization"); + } + + private static TestMode GetTestMode(RunState runState) + { + return runState == RunState.PlayMode || runState == RunState.AllPlayMode + ? TestMode.PlayMode + : TestMode.EditMode; + } + + private static void Finish(ITestResultAdaptor result) + { + try + { + WriteResult(result, CurrentRunState); + } + catch (Exception exception) + { + FinishWithError(exception.ToString()); + return; + } + + var testCount = result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount; + var failureCount = result.FailCount + result.InconclusiveCount; + + SessionState.SetInt(TestCountKey, SessionState.GetInt(TestCountKey, 0) + testCount); + SessionState.SetInt(FailureCountKey, SessionState.GetInt(FailureCountKey, 0) + failureCount); + + Debug.Log( + $"Alchemy {GetTestMode(CurrentRunState)} tests finished: " + + $"{result.PassCount} passed, {result.FailCount} failed, " + + $"{result.InconclusiveCount} inconclusive, {result.SkipCount} skipped."); + + if (CurrentRunState == RunState.AllEditMode) + { + CurrentRunState = RunState.AllPlayMode; + EditorApplication.delayCall += () => + { + Debug.Log("Running all Alchemy PlayMode tests."); + Execute(TestMode.PlayMode); + }; + return; + } + + var totalTestCount = SessionState.GetInt(TestCountKey, 0); + var totalFailureCount = SessionState.GetInt(FailureCountKey, 0); + ClearRunState(); + + if (totalTestCount == 0) + { + Debug.LogWarning("No Alchemy tests were executed."); + } + + Debug.Log($"Alchemy test run finished: {totalTestCount} tests, {totalFailureCount} failures."); + + if (ShouldAutoQuit) + { + EditorApplication.Exit(totalFailureCount == 0 ? SuccessExitCode : TestFailureExitCode); + } + } + + private static void FinishWithError(string message) + { + ClearRunState(); + Debug.LogError($"Alchemy test run failed: {message}"); + + if (ShouldAutoQuit) + { + EditorApplication.Exit(RunErrorExitCode); + } + } + + private static bool ShouldAutoQuit => + Application.isBatchMode && HasArgument(AutoQuitArgument); + + private static void WriteResult(ITestResultAdaptor result, RunState runState) + { + var outputPath = GetResultPath(runState); + if (string.IsNullOrEmpty(outputPath)) + { + return; + } + + var directory = Path.GetDirectoryName(outputPath); + if (!string.IsNullOrEmpty(directory)) + { + Directory.CreateDirectory(directory); + } + + var settings = new XmlWriterSettings + { + Encoding = new UTF8Encoding(false), + Indent = true, + }; + + using var writer = XmlWriter.Create(outputPath, settings); + writer.WriteStartDocument(); + writer.WriteStartElement("test-run"); + writer.WriteAttributeString("id", "2"); + writer.WriteAttributeString( + "testcasecount", + (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("result", result.ResultState); + writer.WriteAttributeString("total", (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("passed", result.PassCount.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("failed", result.FailCount.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("inconclusive", result.InconclusiveCount.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("skipped", result.SkipCount.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("asserts", result.AssertCount.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("engine-version", "3.5.0.0"); + writer.WriteAttributeString("clr-version", Environment.Version.ToString()); + writer.WriteAttributeString("start-time", result.StartTime.ToString("u", CultureInfo.InvariantCulture)); + writer.WriteAttributeString("end-time", result.EndTime.ToString("u", CultureInfo.InvariantCulture)); + writer.WriteAttributeString("duration", result.Duration.ToString(CultureInfo.InvariantCulture)); + writer.WriteRaw(result.ToXml().OuterXml); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static string GetResultPath(RunState runState) + { + var path = GetArgumentValue(ResultArgument) ?? GetArgumentValue(LongResultArgument); + if (string.IsNullOrEmpty(path) || runState == RunState.EditMode || runState == RunState.PlayMode) + { + return path; + } + + var suffix = GetTestMode(runState).ToString(); + return Path.Combine( + Path.GetDirectoryName(path) ?? string.Empty, + $"{Path.GetFileNameWithoutExtension(path)}.{suffix}{Path.GetExtension(path)}"); + } + + private static string GetArgumentValue(string name) + { + var arguments = Environment.GetCommandLineArgs(); + for (var index = 0; index < arguments.Length - 1; index++) + { + if (string.Equals(arguments[index], name, StringComparison.OrdinalIgnoreCase)) + { + return arguments[index + 1]; + } + } + + return null; + } + + private static bool HasArgument(string name) + { + return Array.Exists( + Environment.GetCommandLineArgs(), + argument => string.Equals(argument, name, StringComparison.OrdinalIgnoreCase)); + } + + private static void ClearRunState() + { + SessionState.EraseInt(RunStateKey); + SessionState.EraseInt(TestCountKey); + SessionState.EraseInt(FailureCountKey); + } + + private enum RunState + { + None, + EditMode, + PlayMode, + AllEditMode, + AllPlayMode + } + + private sealed class TestCallbacks : IErrorCallbacks + { + public void RunStarted(ITestAdaptor testsToRun) + { + } + + public void RunFinished(ITestResultAdaptor result) + { + if (IsRunning) + { + Finish(result); + } + } + + public void TestStarted(ITestAdaptor test) + { + } + + public void TestFinished(ITestResultAdaptor result) + { + } + + public void OnError(string message) + { + if (IsRunning) + { + FinishWithError(message); + } + } + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs.meta new file mode 100644 index 0000000..8744cc8 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 897eb5bd9ac243929139ac9d44d7b56a diff --git a/Alchemy/Assets/Alchemy/Tests/TestUtility.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestUtility.cs similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/TestUtility.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/TestUtility.cs index 9112bc9..16abe04 100644 --- a/Alchemy/Assets/Alchemy/Tests/TestUtility.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestUtility.cs @@ -1,3 +1,4 @@ +#if ALCHEMY_SUPPORT_SERIALIZATION using System.Collections.Generic; using Alchemy.Serialization.Internal; using UnityEngine; @@ -6,13 +7,12 @@ namespace Alchemy.Tests { public static class TestUtility { -#if ALCHEMY_SUPPORT_SERIALIZATION public static T RoundTrip(T value, IList objectReferences = null) { objectReferences ??= new List(); var json = SerializationHelper.ToJson(value, objectReferences); return SerializationHelper.FromJson(json, objectReferences); } -#endif } } +#endif diff --git a/Alchemy/Assets/Alchemy/Tests/TestUtility.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestUtility.cs.meta similarity index 100% rename from Alchemy/Assets/Alchemy/Tests/TestUtility.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests/TestUtility.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json b/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json new file mode 100644 index 0000000..459687e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json @@ -0,0 +1,9 @@ +{ + "name": "com.annulusgames.alchemy.test", + "version": "0.1.0", + "displayName": "Alchemy Tests", + "unity": "2021.2", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json.meta new file mode 100644 index 0000000..94f09f5 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e622c9cf278a27c4eb26e680471cea81 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Resources.meta b/tests/Alchemy.Tests/Assets/Resources.meta new file mode 100644 index 0000000..10c9d91 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d77f33b10ffae3046907fb2959253980 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Resources/BillingMode.json b/tests/Alchemy.Tests/Assets/Resources/BillingMode.json new file mode 100644 index 0000000..6f4bfb7 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Resources/BillingMode.json @@ -0,0 +1 @@ +{"androidStore":"GooglePlay"} \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Resources/BillingMode.json.meta b/tests/Alchemy.Tests/Assets/Resources/BillingMode.json.meta new file mode 100644 index 0000000..131cce4 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Resources/BillingMode.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5baf91c9677543a4aab3090c61a501c2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Scenes.meta b/tests/Alchemy.Tests/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity b/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity.meta b/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings.meta b/tests/Alchemy.Tests/Assets/Settings.meta new file mode 100644 index 0000000..39b94dd --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709f11a7f3c4041caa4ef136ea32d874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset b/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset new file mode 100644 index 0000000..37e401d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset @@ -0,0 +1,123 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7893295128165547882 +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 + m_AdvancedMode: 0 + threshold: + m_OverrideState: 1 + m_Value: 1 + min: 0 + intensity: + m_OverrideState: 1 + m_Value: 1 + min: 0 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + min: 0 + max: 1 + clamp: + m_OverrideState: 0 + m_Value: 65472 + min: 0 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hdr: 0 + showAlpha: 0 + showEyeDropper: 1 + highQualityFiltering: + m_OverrideState: 0 + m_Value: 0 + skipIterations: + m_OverrideState: 0 + m_Value: 1 + min: 0 + max: 16 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 + min: 0 +--- !u!114 &-7011558710299706105 +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 + m_AdvancedMode: 0 + color: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + hdr: 0 + showAlpha: 0 + showEyeDropper: 1 + center: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.25 + min: 0 + max: 1 + smoothness: + m_OverrideState: 1 + m_Value: 0.4 + min: 0.01 + max: 1 + rounded: + m_OverrideState: 0 + m_Value: 0 +--- !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: SampleSceneProfile + m_EditorClassIdentifier: + components: + - {fileID: 849379129802519247} + - {fileID: -7893295128165547882} + - {fileID: -7011558710299706105} +--- !u!114 &849379129802519247 +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 + m_AdvancedMode: 0 + mode: + m_OverrideState: 1 + m_Value: 1 diff --git a/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset.meta b/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset.meta new file mode 100644 index 0000000..f8cce64 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/SampleSceneProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6560a915ef98420e9faacc1c7438823 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset new file mode 100644 index 0000000..e946432 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1878332245247344467 +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: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: SSAO + m_EditorClassIdentifier: + m_Active: 1 + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Settings: + Downsample: 1 + AfterOpaque: 0 + Source: 0 + NormalSamples: 0 + Intensity: 0.5 + DirectLightingStrength: 0.25 + Radius: 0.25 + SampleCount: 4 +--- !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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-Balanced-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: + - {fileID: -1878332245247344467} + m_RendererFeatureMap: adc0de57c6d2eee5 + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} + m_AssetVersion: 1 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 1 + m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 + m_IntermediateTextureMode: 0 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset.meta new file mode 100644 index 0000000..8fa7f17 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e634585d5c4544dd297acaee93dc2beb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset new file mode 100644 index 0000000..a4c84ef --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset @@ -0,0 +1,74 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-Balanced + m_EditorClassIdentifier: + k_AssetVersion: 9 + k_AssetPreviousVersion: 9 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: e634585d5c4544dd297acaee93dc2beb, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_StoreActionsOptimization: 0 + m_SupportsHDR: 1 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 2 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 1 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_AdditionalLightsCookieResolution: 512 + m_AdditionalLightsCookieFormat: 1 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_UseFastSRGBLinearConversion: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 + m_ShadowCascades: 0 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset.meta new file mode 100644 index 0000000..f524db0 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Balanced.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1260c1148f6143b28bae5ace5e9c5d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset new file mode 100644 index 0000000..9bb7a06 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1878332245247344467 +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: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: SSAO + m_EditorClassIdentifier: + m_Active: 1 + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Settings: + Downsample: 0 + AfterOpaque: 0 + Source: 1 + NormalSamples: 1 + Intensity: 0.5 + DirectLightingStrength: 0.25 + Radius: 0.25 + SampleCount: 12 +--- !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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-HighFidelity-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: + - {fileID: -1878332245247344467} + m_RendererFeatureMap: adc0de57c6d2eee5 + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} + m_AssetVersion: 1 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 1 + m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 + m_IntermediateTextureMode: 0 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset.meta new file mode 100644 index 0000000..bcdff02 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c40be3174f62c4acf8c1216858c64956 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset new file mode 100644 index 0000000..6248100 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-HighFidelity + m_EditorClassIdentifier: + k_AssetVersion: 9 + k_AssetPreviousVersion: 9 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: c40be3174f62c4acf8c1216858c64956, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_StoreActionsOptimization: 0 + m_SupportsHDR: 1 + m_MSAA: 4 + m_RenderScale: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 4096 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 4096 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ShadowDistance: 150 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_SoftShadowsSupported: 1 + m_AdditionalLightsCookieResolution: 4096 + m_AdditionalLightsCookieFormat: 4 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_UseFastSRGBLinearConversion: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 + m_ShadowCascades: 1 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset.meta new file mode 100644 index 0000000..7416e17 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-HighFidelity.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b7fd9122c28c4d15b667c7040e3b3fd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset b/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset new file mode 100644 index 0000000..7cda107 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-Performant-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} + m_AssetVersion: 1 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 1 + m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 + m_IntermediateTextureMode: 0 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset.meta new file mode 100644 index 0000000..912ff60 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Performant-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 707360a9c581a4bd7aa53bfeb1429f71 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset b/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset new file mode 100644 index 0000000..5e53341 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-Performant + m_EditorClassIdentifier: + k_AssetVersion: 9 + k_AssetPreviousVersion: 9 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 707360a9c581a4bd7aa53bfeb1429f71, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_StoreActionsOptimization: 0 + m_SupportsHDR: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 0 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 0 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_SoftShadowsSupported: 0 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 16 + m_UseFastSRGBLinearConversion: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 + m_ShadowCascades: 0 diff --git a/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset.meta b/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset.meta new file mode 100644 index 0000000..264c9c5 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Settings/URP-Performant.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0e2fc18fe036412f8223b3b3d9ad574 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset b/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..f84421d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + k_AssetVersion: 2 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + m_StripDebugVariants: 1 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + supportRuntimeDebugDisplay: 0 diff --git a/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset.meta b/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..81b84f2 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18dc0cd2c080841dea60987a38ce93fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Packages/manifest.json b/tests/Alchemy.Tests/Packages/manifest.json new file mode 100644 index 0000000..fa594f9 --- /dev/null +++ b/tests/Alchemy.Tests/Packages/manifest.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../Alchemy/Assets/Alchemy", + "com.unity.test-framework": "1.1.31", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } +} diff --git a/tests/Alchemy.Tests/Packages/packages-lock.json b/tests/Alchemy.Tests/Packages/packages-lock.json new file mode 100644 index 0000000..0bc8e8f --- /dev/null +++ b/tests/Alchemy.Tests/Packages/packages-lock.json @@ -0,0 +1,67 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.31", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + } + } +} diff --git a/tests/Alchemy.Tests/ProjectSettings/AudioManager.asset b/tests/Alchemy.Tests/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/tests/Alchemy.Tests/ProjectSettings/BurstAotSettings_StandaloneWindows.json new file mode 100644 index 0000000..e02ae33 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -0,0 +1,17 @@ +{ + "MonoBehaviour": { + "Version": 4, + "EnableBurstCompilation": true, + "EnableOptimisations": true, + "EnableSafetyChecks": false, + "EnableDebugInAllBuilds": false, + "UsePlatformSDKLinker": false, + "CpuMinTargetX32": 0, + "CpuMaxTargetX32": 0, + "CpuMinTargetX64": 0, + "CpuMaxTargetX64": 0, + "CpuTargetsX32": 6, + "CpuTargetsX64": 72, + "OptimizeFor": 0 + } +} diff --git a/tests/Alchemy.Tests/ProjectSettings/ClusterInputManager.asset b/tests/Alchemy.Tests/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/Alchemy.Tests/ProjectSettings/CommonBurstAotSettings.json b/tests/Alchemy.Tests/ProjectSettings/CommonBurstAotSettings.json new file mode 100644 index 0000000..0293daf --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/CommonBurstAotSettings.json @@ -0,0 +1,6 @@ +{ + "MonoBehaviour": { + "Version": 4, + "DisabledWarnings": "" + } +} diff --git a/tests/Alchemy.Tests/ProjectSettings/DynamicsManager.asset b/tests/Alchemy.Tests/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..1596c42 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/tests/Alchemy.Tests/ProjectSettings/EditorBuildSettings.asset b/tests/Alchemy.Tests/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..ea88784 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 99c9720ab356a0642a771bea13969a05 + m_configObjects: {} diff --git a/tests/Alchemy.Tests/ProjectSettings/EditorSettings.asset b/tests/Alchemy.Tests/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..0b0999b --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/EditorSettings.asset @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_CachingShaderPreprocessor: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 0 + m_DisableCookiesInLightmapper: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/GraphicsSettings.asset b/tests/Alchemy.Tests/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..56859a2 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,70 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 14 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, + type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_DefaultRenderingLayerMask: 1 + m_LogWhenShaderIsCompiled: 0 + m_SRPDefaultSettings: + UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, + type: 2} diff --git a/tests/Alchemy.Tests/ProjectSettings/InputManager.asset b/tests/Alchemy.Tests/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/MemorySettings.asset b/tests/Alchemy.Tests/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/tests/Alchemy.Tests/ProjectSettings/NavMeshAreas.asset b/tests/Alchemy.Tests/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/tests/Alchemy.Tests/ProjectSettings/PackageManagerSettings.asset b/tests/Alchemy.Tests/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/Physics2DSettings.asset b/tests/Alchemy.Tests/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/tests/Alchemy.Tests/ProjectSettings/PresetManager.asset b/tests/Alchemy.Tests/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/Alchemy.Tests/ProjectSettings/ProjectSettings.asset b/tests/Alchemy.Tests/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..bab7fdc --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,873 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 23 + productGUID: 1d99454f732ac7f4ebb40a84720c11ba + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Alchemy.Tests + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 0.1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: + Android: com.UnityTechnologies.com.unity.template.urpblank + Standalone: com.UnityTechnologies.com.unity.template.urp-blank + iPhone: com.Unity-Technologies.com.unity.template.urp-blank + buildNumber: + Standalone: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 11.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 11.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a + templatePackageId: com.unity.template.urp-blank@2.0.6 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyWithR8: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + - m_BuildTarget: tvOS + m_Icons: + - m_Textures: [] + m_Width: 1280 + m_Height: 768 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 800 + m_Height: 480 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 400 + m_Height: 240 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 4640 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 2320 + m_Height: 720 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 3840 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 1920 + m_Height: 720 + m_Kind: 1 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 1 + m_BuildTargetVRSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - m_BuildTarget: Android + m_EncodingQuality: 1 + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: + - m_BuildTarget: Android + m_Format: 3 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + enableRoslynAnalyzers: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 0 + assemblyVersionValidation: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: com.unity.template-starter-kit + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: com.unity.template-starter-kit + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + activeInputHandler: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + playerDataPath: + forceSRGBBlit: 1 + virtualTexturingSupportEnabled: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/ProjectVersion.txt b/tests/Alchemy.Tests/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..67136a0 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2021.2.20f1 +m_EditorVersionWithRevision: 2021.2.20f1 (bcf509533812) diff --git a/tests/Alchemy.Tests/ProjectSettings/QualitySettings.asset b/tests/Alchemy.Tests/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..8ad1105 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/QualitySettings.asset @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 2 + m_QualitySettings: + - serializedVersion: 2 + name: Performant + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: d0e2fc18fe036412f8223b3b3d9ad574, + type: 2} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Balanced + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: e1260c1148f6143b28bae5ace5e9c5d1, + type: 2} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High Fidelity + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 4 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 2048 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, + type: 2} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 1 + CloudRendering: 2 + GameCoreScarlett: 2 + GameCoreXboxOne: 2 + Lumin: 2 + Nintendo Switch: 1 + PS4: 2 + PS5: 2 + Server: 0 + Stadia: 2 + Standalone: 2 + WebGL: 1 + Windows Store Apps: 2 + XboxOne: 2 + iPhone: 1 + tvOS: 1 diff --git a/tests/Alchemy.Tests/ProjectSettings/RiderScriptEditorPersistedState.asset b/tests/Alchemy.Tests/ProjectSettings/RiderScriptEditorPersistedState.asset new file mode 100644 index 0000000..42d33e4 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/RiderScriptEditorPersistedState.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: + m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState + lastWriteTicks: -8584162296562969431 diff --git a/tests/Alchemy.Tests/ProjectSettings/SceneTemplateSettings.json b/tests/Alchemy.Tests/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/Alchemy.Tests/ProjectSettings/ShaderGraphSettings.asset b/tests/Alchemy.Tests/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 0000000..9b28428 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 diff --git a/tests/Alchemy.Tests/ProjectSettings/TagManager.asset b/tests/Alchemy.Tests/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/TimeManager.asset b/tests/Alchemy.Tests/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/Alchemy.Tests/ProjectSettings/URPProjectSettings.asset b/tests/Alchemy.Tests/ProjectSettings/URPProjectSettings.asset new file mode 100644 index 0000000..c1f118a --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/URPProjectSettings.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LastMaterialVersion: 5 diff --git a/tests/Alchemy.Tests/ProjectSettings/UnityConnectSettings.asset b/tests/Alchemy.Tests/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..6125b30 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/Alchemy.Tests/ProjectSettings/VFXManager.asset b/tests/Alchemy.Tests/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/tests/Alchemy.Tests/ProjectSettings/VersionControlSettings.asset b/tests/Alchemy.Tests/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/tests/Alchemy.Tests/ProjectSettings/XRSettings.asset b/tests/Alchemy.Tests/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/tests/Alchemy.Tests/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/tests/Alchemy.Tests/ProjectSettings/boot.config b/tests/Alchemy.Tests/ProjectSettings/boot.config new file mode 100644 index 0000000..e69de29 diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..aa7217a --- /dev/null +++ b/tests/README.md @@ -0,0 +1,19 @@ +# Alchemy test platform + +This directory contains the Unity version projects and the TUnit integration tests that execute Alchemy's Unity Test Framework tests through Microsoft Testing Platform. + +Run all registered Unity versions and test modes from the repository root: + +```sh +dotnet run --project tests/UnityTestRunner --configuration Release +``` + +Unity versions are registered explicitly in `UnityTestRunner/UnityVersionTests.cs`. Each version has an EditMode test and a PlayMode test. + +Unity Editor logs are stored under each version project's `Logs/UnityTestRunner/` directory. Unity logs and NUnit reports are attached to their TUnit test, and warning-or-higher entries are written to stderr. + +### Requirements + +- .NET 10 SDK or later must be installed. +- The `unity` command must already be available on `PATH`. +- Every editor version declared by the version projects must already be installed. diff --git a/tests/UnityTestRunner.slnx b/tests/UnityTestRunner.slnx new file mode 100644 index 0000000..75a5feb --- /dev/null +++ b/tests/UnityTestRunner.slnx @@ -0,0 +1,3 @@ + + + diff --git a/tests/UnityTestRunner/.editorconfig b/tests/UnityTestRunner/.editorconfig new file mode 100644 index 0000000..4bf9ff5 --- /dev/null +++ b/tests/UnityTestRunner/.editorconfig @@ -0,0 +1,2 @@ +[*.cs] +csharp_style_namespace_declarations = file_scoped:suggestion diff --git a/tests/UnityTestRunner/.gitignore b/tests/UnityTestRunner/.gitignore new file mode 100644 index 0000000..c87b65d --- /dev/null +++ b/tests/UnityTestRunner/.gitignore @@ -0,0 +1,403 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +.idea + +## DS_Store +*.DS_Store diff --git a/tests/UnityTestRunner/AssemblyAttributes.cs b/tests/UnityTestRunner/AssemblyAttributes.cs new file mode 100644 index 0000000..d82e8c0 --- /dev/null +++ b/tests/UnityTestRunner/AssemblyAttributes.cs @@ -0,0 +1,3 @@ +using TUnit.Core; + +[assembly: NotInParallel] diff --git a/tests/UnityTestRunner/Exceptions.cs b/tests/UnityTestRunner/Exceptions.cs new file mode 100644 index 0000000..e160e55 --- /dev/null +++ b/tests/UnityTestRunner/Exceptions.cs @@ -0,0 +1,27 @@ +namespace Alchemy.UnityTestRunner; + +public class UnityTestException( + string message, + Exception? innerException = null) : Exception(message, innerException); + +public sealed class InvalidConfigurationException(string message) + : UnityTestException(message); + +public sealed class UnityUnavailableException( + string message, + Exception? innerException = null) + : UnityTestException(message, innerException); + +public sealed class UnityExecutionException( + string message, + Exception? innerException = null) + : UnityTestException(message, innerException); + +public sealed class ReportException( + string message, + Exception? innerException = null) + : UnityTestException(message, innerException); + +public sealed class ProcessExecutionException( + string message, + Exception? innerException = null) : Exception(message, innerException); diff --git a/tests/UnityTestRunner/Models.cs b/tests/UnityTestRunner/Models.cs new file mode 100644 index 0000000..d00e594 --- /dev/null +++ b/tests/UnityTestRunner/Models.cs @@ -0,0 +1,186 @@ +using System.Globalization; +using System.Runtime.CompilerServices; +using System.Xml; +using System.Xml.Linq; + +namespace Alchemy.UnityTestRunner; + +public enum TestMode : byte +{ + EditMode, + PlayMode, +} + +public sealed record UnityProject( + string ProjectPath, + string EditorVersion, + int MajorVersion, + string VersionLine) +{ + public static UnityProject Locate( + string relativePath, + [CallerFilePath] string callerFilePath = "") + { + var sourceDirectory = Path.GetDirectoryName(callerFilePath); + if (string.IsNullOrWhiteSpace(sourceDirectory)) + { + throw new InvalidConfigurationException( + "Could not determine the Unity test source directory."); + } + + var projectPath = Path.GetFullPath( + Path.Combine(sourceDirectory, relativePath)); + if (!Directory.Exists(projectPath)) + { + throw new InvalidConfigurationException( + $"Unity project directory does not exist: {projectPath}"); + } + + var projectVersionPath = Path.Combine( + projectPath, + "ProjectSettings", + "ProjectVersion.txt"); + if (!File.Exists(projectVersionPath)) + { + throw new InvalidConfigurationException( + $"Unity project has no ProjectSettings/ProjectVersion.txt: {projectPath}"); + } + + var editorVersion = ReadEditorVersion(projectVersionPath); + var majorVersion = ParseMajorVersion(editorVersion); + var projectName = Path.GetFileName(projectPath); + const string prefix = "Unity"; + if (!projectName.StartsWith(prefix, StringComparison.Ordinal) || + projectName.Length == prefix.Length) + { + throw new InvalidConfigurationException( + $"Unity version project must be named Unity: {projectPath}"); + } + + return new UnityProject( + projectPath, + editorVersion, + majorVersion, + projectName[prefix.Length..]); + } + + private static string ReadEditorVersion(string projectVersionPath) + { + var line = File.ReadLines(projectVersionPath) + .FirstOrDefault(value => + value.StartsWith("m_EditorVersion:", StringComparison.Ordinal)); + var value = line?.Split(':', 2).ElementAtOrDefault(1)?.Trim(); + if (string.IsNullOrWhiteSpace(value)) + { + throw new InvalidConfigurationException( + $"Could not read m_EditorVersion from '{projectVersionPath}'."); + } + + return value; + } + + private static int ParseMajorVersion(string editorVersion) + { + var value = editorVersion.Split('.', 2)[0]; + if (!int.TryParse( + value, + NumberStyles.None, + CultureInfo.InvariantCulture, + out var majorVersion)) + { + throw new InvalidConfigurationException( + $"Invalid Unity editor version '{editorVersion}'."); + } + + return majorVersion; + } +} + +public sealed record ProcessSpec( + string FileName, + IReadOnlyList Arguments, + string? WorkingDirectory = null, + TimeSpan? Timeout = null, + bool TerminateDescendantsOnExit = false); + +public sealed record ProcessResult( + int ProcessId, + int ExitCode, + string StandardOutput, + string StandardError); + +public sealed record NUnitRunSummary( + int Total, + int Passed, + int Failed, + int Inconclusive, + int Skipped, + int Warnings, + int Asserts, + decimal Duration) +{ + public bool HasFailures => Failed > 0 || Inconclusive > 0; + + public static NUnitRunSummary From(XElement root) + { + return new NUnitRunSummary( + GetInt(root, "total"), + GetInt(root, "passed"), + GetInt(root, "failed"), + GetInt(root, "inconclusive"), + GetInt(root, "skipped"), + GetInt(root, "warnings"), + GetInt(root, "asserts"), + GetDecimal(root, "duration")); + } + + private static int GetInt(XElement element, string name) + { + return int.TryParse((string?)element.Attribute(name), out var value) + ? value + : 0; + } + + private static decimal GetDecimal(XElement element, string name) + { + return decimal.TryParse( + (string?)element.Attribute(name), + NumberStyles.Float, + CultureInfo.InvariantCulture, + out var value) + ? value + : 0m; + } +} + +public sealed record NUnitReport(XDocument Document, NUnitRunSummary Summary) +{ + public static NUnitReport Load(string path) + { + if (!File.Exists(path)) + { + throw new ReportException( + $"Unity did not produce the expected NUnit report: {path}"); + } + + try + { + var document = XDocument.Load(path, LoadOptions.PreserveWhitespace); + if (document.Root is null || document.Root.Name != "test-run") + { + throw new ReportException( + $"The Unity report is not an NUnit test-run document: {path}"); + } + + return new NUnitReport( + document, + NUnitRunSummary.From(document.Root)); + } + catch (XmlException exception) + { + throw new ReportException( + $"The Unity NUnit report is malformed: {path}", + exception); + } + } +} diff --git a/tests/UnityTestRunner/ProcessRunner.cs b/tests/UnityTestRunner/ProcessRunner.cs new file mode 100644 index 0000000..82d8f68 --- /dev/null +++ b/tests/UnityTestRunner/ProcessRunner.cs @@ -0,0 +1,133 @@ +using System.ComponentModel; +using System.Diagnostics; + +namespace Alchemy.UnityTestRunner; + +public interface IProcessRunner +{ + Task RunAsync(ProcessSpec specification, CancellationToken cancellationToken); +} + +public sealed class ProcessRunner : IProcessRunner +{ + private static readonly TimeSpan DefaultTimeout = TimeSpan.FromMinutes(30); + + public async Task RunAsync(ProcessSpec specification, CancellationToken cancellationToken) + { + var timeout = specification.Timeout ?? DefaultTimeout; + if (timeout <= TimeSpan.Zero && timeout != Timeout.InfiniteTimeSpan) + { + throw new ProcessExecutionException( + $"Process timeout must be positive: {timeout}."); + } + + using var process = new Process + { + StartInfo = CreateStartInfo(specification), + EnableRaisingEvents = true, + }; + + try + { + if (!process.Start()) + { + throw new ProcessExecutionException($"Unable to start process '{specification.FileName}'."); + } + } + catch (Win32Exception exception) + { + throw new ProcessExecutionException( + $"Unable to start process '{specification.FileName}'.", + exception); + } + + WindowsProcessJob? processJob; + try + { + processJob = WindowsProcessJob.Attach( + process, + specification.TerminateDescendantsOnExit); + } + catch + { + TryKill(process); + throw; + } + + using (processJob) + { + return await WaitForExitAsync( + process, + specification, + timeout, + cancellationToken); + } + } + + private static async Task WaitForExitAsync( + Process process, + ProcessSpec specification, + TimeSpan timeout, + CancellationToken cancellationToken) + { + var processId = process.Id; + using var timeoutCancellation = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + timeoutCancellation.CancelAfter(timeout); + var processCancellationToken = timeoutCancellation.Token; + var standardOutput = process.StandardOutput.ReadToEndAsync(processCancellationToken); + var standardError = process.StandardError.ReadToEndAsync(processCancellationToken); + + try + { + await process.WaitForExitAsync(processCancellationToken); + await Task.WhenAll(standardOutput, standardError); + } + catch (OperationCanceledException) when ( + !cancellationToken.IsCancellationRequested && timeoutCancellation.IsCancellationRequested) + { + TryKill(process); + throw new ProcessExecutionException( + $"Process '{specification.FileName}' timed out after {timeout}."); + } + catch (OperationCanceledException) + { + TryKill(process); + throw; + } + + return new ProcessResult( + processId, + process.ExitCode, + await standardOutput, + await standardError); + } + + private static ProcessStartInfo CreateStartInfo(ProcessSpec specification) + { + var startInfo = new ProcessStartInfo + { + FileName = specification.FileName, + WorkingDirectory = specification.WorkingDirectory ?? Environment.CurrentDirectory, + UseShellExecute = false, + CreateNoWindow = true, + RedirectStandardOutput = true, + RedirectStandardError = true, + }; + + // ArgumentList preserves argument boundaries across Windows, macOS, and Unix shells. + foreach (var argument in specification.Arguments) + { + startInfo.ArgumentList.Add(argument); + } + + return startInfo; + } + + private static void TryKill(Process process) + { + if (!process.HasExited) + { + process.Kill(entireProcessTree: true); + } + } +} diff --git a/tests/UnityTestRunner/UnityCli.cs b/tests/UnityTestRunner/UnityCli.cs new file mode 100644 index 0000000..eefa56b --- /dev/null +++ b/tests/UnityTestRunner/UnityCli.cs @@ -0,0 +1,109 @@ +using System.Text.Json; + +namespace Alchemy.UnityTestRunner; + +public sealed class UnityCli +{ + private readonly IProcessRunner processRunner; + + public UnityCli(IProcessRunner processRunner) + { + this.processRunner = processRunner; + } + + public async Task ResolveEditorPathAsync(UnityProject project, CancellationToken cancellationToken) + { + ProcessResult cliVersion; + try + { + cliVersion = await processRunner.RunAsync( + new ProcessSpec("unity", ["--no-banner", "--version"]), + cancellationToken); + } + catch (ProcessExecutionException exception) + { + throw new UnityUnavailableException( + "The 'unity' command is required but was not found on PATH.", + exception); + } + + if (cliVersion.ExitCode != 0) + { + throw new UnityUnavailableException( + $"The 'unity' command failed during preflight with exit code {cliVersion.ExitCode}: " + + GetDiagnostic(cliVersion)); + } + + ProcessResult editorPathResult; + try + { + editorPathResult = await processRunner.RunAsync( + new ProcessSpec( + "unity", + [ + "--no-banner", + "editors", + "path", + project.EditorVersion, + "--format", + "json" + ]), + cancellationToken); + } + catch (ProcessExecutionException exception) + { + throw new UnityUnavailableException( + $"Could not locate the installed Unity editor {project.EditorVersion}.", + exception); + } + + if (editorPathResult.ExitCode != 0) + { + throw new UnityUnavailableException( + $"Unity editor {project.EditorVersion} is not installed: {GetDiagnostic(editorPathResult)}"); + } + + var editorPath = ReadEditorPath(editorPathResult.StandardOutput, project.EditorVersion); + if (!Directory.Exists(editorPath)) + { + throw new UnityUnavailableException( + $"Unity reported an editor path that does not exist: {editorPath}"); + } + + return editorPath; + } + + private static string ReadEditorPath(string output, string editorVersion) + { + try + { + using var document = JsonDocument.Parse(output); + var path = document.RootElement + .GetProperty("data") + .GetProperty("path") + .GetString(); + if (!string.IsNullOrWhiteSpace(path)) + { + return path; + } + } + catch (Exception exception) when ( + exception is JsonException or KeyNotFoundException or InvalidOperationException) + { + throw new UnityUnavailableException( + $"The Unity CLI returned invalid editor path data for {editorVersion}.", + exception); + } + + throw new UnityUnavailableException( + $"The Unity CLI did not return an editor path for {editorVersion}."); + } + + private static string GetDiagnostic(ProcessResult result) + { + var diagnostic = string.IsNullOrWhiteSpace(result.StandardError) + ? result.StandardOutput + : result.StandardError; + return diagnostic.Trim(); + } +} diff --git a/tests/UnityTestRunner/UnityTest.cs b/tests/UnityTestRunner/UnityTest.cs new file mode 100644 index 0000000..d60506b --- /dev/null +++ b/tests/UnityTestRunner/UnityTest.cs @@ -0,0 +1,425 @@ +using System.Collections.Concurrent; +using System.Globalization; +using System.Text; +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +internal static class UnityTest +{ + private static readonly IProcessRunner ProcessRunner = new ProcessRunner(); + private static readonly UnityCli UnityCli = new(ProcessRunner); + private static readonly TextWriter LiveOutput = TextWriter.Synchronized( + new StreamWriter(Console.OpenStandardOutput()) + { + AutoFlush = true, + }); + private static readonly ConcurrentDictionary Runs = + new(StringComparer.OrdinalIgnoreCase); + + public static async Task RefreshAsync( + UnityProject project, + CancellationToken cancellationToken) + { + WriteProgress(project, "Preflight: checking unity and the installed editor..."); + var editorPath = await UnityCli.ResolveEditorPathAsync( + project, + cancellationToken); + var executable = GetEditorExecutable(editorPath); + if (!File.Exists(executable)) + { + throw new UnityUnavailableException( + $"The installed Unity editor executable does not exist: {executable}"); + } + + var logDirectory = CreateLogDirectory(project); + var refreshLogPath = Path.Combine(logDirectory, "Refresh.log"); + WriteProgress(project, "Library warmup: running..."); + ProcessResult result; + try + { + result = await ProcessRunner.RunAsync( + new ProcessSpec( + executable, + BuildLibraryWarmupArguments(project, refreshLogPath), + project.ProjectPath, + TerminateDescendantsOnExit: true), + cancellationToken); + } + catch (ProcessExecutionException exception) + { + throw new UnityExecutionException( + $"Could not start Unity {project.EditorVersion} for Library warmup.", + exception); + } + finally + { + WriteLogDiagnostics(project, [refreshLogPath]); + } + + if (result.ExitCode != 0) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} Library warmup exited with code " + + $"{result.ExitCode}. See {refreshLogPath} for details."); + } + + var context = new UnityRunContext( + editorPath, + logDirectory, + refreshLogPath); + if (!Runs.TryAdd(project.ProjectPath, context)) + { + throw new InvalidConfigurationException( + $"Unity project was initialized more than once in this test session: " + + project.ProjectPath); + } + + WriteProgress(project, "Library warmup: completed"); + } + + public static async Task RunAsync( + UnityProject project, + TestMode mode, + CancellationToken cancellationToken) + { + if (!Runs.TryGetValue(project.ProjectPath, out var context)) + { + throw new InvalidConfigurationException( + $"Unity project was not initialized before {mode}: {project.ProjectPath}"); + } + + var reportPath = Path.Combine(context.LogDirectory, $"{mode}.xml"); + var editorLogPath = Path.Combine(context.LogDirectory, $"{mode}.log"); + var cliLogPath = Path.Combine(context.LogDirectory, $"{mode}.cli.log"); + WriteProgress(project, $"{mode}: running..."); + + try + { + var result = await RunUnityAsync( + project, + context.EditorPath, + mode, + reportPath, + editorLogPath, + cliLogPath, + cancellationToken); + if (!File.Exists(reportPath)) + { + throw new UnityExecutionException( + $"Unity exited with code {result.ExitCode} without producing an " + + $"NUnit report. See {editorLogPath} and {cliLogPath} for details." + + FormatProcessDiagnostic(result)); + } + + var report = NUnitReport.Load(reportPath); + WriteModeSummary(project, mode, report.Summary); + if (report.Summary.Total == 0) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} discovered no {mode} tests. " + + $"See {reportPath}."); + } + + if (report.Summary.HasFailures) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} {mode} tests failed: " + + FormatSummary(report.Summary) + + $". See {reportPath}."); + } + + if (result.ExitCode != 0) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} {mode} exited with code " + + $"{result.ExitCode} despite producing a passing report." + + FormatProcessDiagnostic(result)); + } + } + finally + { + var artifacts = new[] + { + context.RefreshLogPath, + editorLogPath, + cliLogPath, + reportPath, + }; + WriteLogDiagnostics(project, [editorLogPath, cliLogPath]); + AttachArtifacts(artifacts); + } + } + + private static async Task RunUnityAsync( + UnityProject project, + string editorPath, + TestMode mode, + string reportPath, + string editorLogPath, + string cliLogPath, + CancellationToken cancellationToken) + { + var useCli = project.MajorVersion >= 6000; + var fileName = useCli + ? "unity" + : GetEditorExecutable(editorPath); + if (!useCli && !File.Exists(fileName)) + { + throw new UnityUnavailableException( + $"The installed Unity editor executable does not exist: {fileName}"); + } + + var arguments = useCli + ? BuildUnityCliArguments( + project, + mode, + reportPath, + editorLogPath) + : BuildBatchModeArguments( + project, + mode, + reportPath, + editorLogPath); + + try + { + var result = await ProcessRunner.RunAsync( + new ProcessSpec( + fileName, + arguments, + project.ProjectPath, + TerminateDescendantsOnExit: true), + cancellationToken); + if (useCli) + { + await File.WriteAllTextAsync( + cliLogPath, + $"STDOUT{Environment.NewLine}{result.StandardOutput}" + + $"{Environment.NewLine}STDERR{Environment.NewLine}" + + result.StandardError, + Encoding.UTF8, + cancellationToken); + } + + return result; + } + catch (ProcessExecutionException exception) + { + throw new UnityExecutionException( + $"Could not start Unity {project.EditorVersion} for {mode}.", + exception); + } + } + + private static IReadOnlyList BuildUnityCliArguments( + UnityProject project, + TestMode mode, + string reportPath, + string logPath) + { + return + [ + "--no-banner", + "--non-interactive", + "test", + project.ProjectPath, + "--editor-version", + project.EditorVersion, + "--mode", + mode.ToString(), + "--output", + reportPath, + "--", + "-logFile", + logPath, + ]; + } + + private static IReadOnlyList BuildLibraryWarmupArguments( + UnityProject project, + string logPath) + { + return + [ + "-batchmode", + "-nographics", + "-projectPath", + project.ProjectPath, + "-executeMethod", + "Alchemy.Tests.TestCommands.Refresh", + "--auto-quit", + "-logFile", + logPath, + ]; + } + + private static IReadOnlyList BuildBatchModeArguments( + UnityProject project, + TestMode mode, + string reportPath, + string logPath) + { + var command = mode == TestMode.EditMode + ? "Alchemy.Tests.TestCommands.RunAllEditModeTests" + : "Alchemy.Tests.TestCommands.RunAllPlayModeTests"; + return + [ + "-batchmode", + "-nographics", + "-projectPath", + project.ProjectPath, + "-executeMethod", + command, + "-testResults", + reportPath, + "--auto-quit", + "-logFile", + logPath, + ]; + } + + private static string GetEditorExecutable(string editorPath) + { + if (OperatingSystem.IsWindows()) + { + return Path.Combine(editorPath, "Editor", "Unity.exe"); + } + + if (OperatingSystem.IsMacOS()) + { + return Path.Combine( + editorPath, + "Unity.app", + "Contents", + "MacOS", + "Unity"); + } + + return Path.Combine(editorPath, "Editor", "Unity"); + } + + private static string CreateLogDirectory(UnityProject project) + { + var runId = + $"{DateTimeOffset.Now.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}-" + + Guid.NewGuid().ToString("N")[..8]; + var directory = Path.Combine( + project.ProjectPath, + "Logs", + "UnityTestRunner", + runId); + Directory.CreateDirectory(directory); + return directory; + } + + private static void WriteModeSummary( + UnityProject project, + TestMode mode, + NUnitRunSummary summary) + { + WriteProgress( + project, + $"{mode}: {summary.Passed}/{summary.Total} passed " + + $"({summary.Failed} failed, {summary.Inconclusive} inconclusive, " + + $"{summary.Skipped} skipped)"); + } + + private static string FormatSummary(NUnitRunSummary summary) + { + return $"{summary.Passed}/{summary.Total} passed, " + + $"{summary.Failed} failed, " + + $"{summary.Inconclusive} inconclusive, " + + $"{summary.Skipped} skipped"; + } + + private static string FormatProcessDiagnostic(ProcessResult result) + { + var diagnostic = string.IsNullOrWhiteSpace(result.StandardError) + ? result.StandardOutput + : result.StandardError; + return string.IsNullOrWhiteSpace(diagnostic) + ? string.Empty + : $"{Environment.NewLine}{diagnostic.Trim()}"; + } + + private static void WriteProgress(UnityProject project, string message) + { + LiveOutput.WriteLine($"[{project.EditorVersion}] {message}"); + } + + private static void WriteLogDiagnostics( + UnityProject project, + IEnumerable paths) + { + var diagnostics = new List(); + foreach (var path in paths + .Where(File.Exists) + .Distinct(StringComparer.OrdinalIgnoreCase) + .OrderBy(value => value, StringComparer.Ordinal)) + { + var lineNumber = 0; + foreach (var line in File.ReadLines(path)) + { + lineNumber++; + if (IsWarningOrHigher(line)) + { + diagnostics.Add( + $"{Path.GetFileName(path)}:{lineNumber}: {line.Trim()}"); + } + } + } + + if (diagnostics.Count == 0) + { + return; + } + + LiveOutput.WriteLine( + $"[{project.EditorVersion}] Warning-or-higher log entries " + + $"({diagnostics.Count}):"); + foreach (var diagnostic in diagnostics) + { + LiveOutput.WriteLine( + $"[{project.EditorVersion}] {diagnostic}"); + } + } + + private static bool IsWarningOrHigher(string line) + { + return line.Contains("WARNING:", StringComparison.OrdinalIgnoreCase) || + line.Contains(" warning ", StringComparison.OrdinalIgnoreCase) || + line.Contains("ERROR:", StringComparison.OrdinalIgnoreCase) || + line.Contains(" error ", StringComparison.OrdinalIgnoreCase) || + line.StartsWith("Error ", StringComparison.OrdinalIgnoreCase) || + line.StartsWith("Warning ", StringComparison.OrdinalIgnoreCase) || + line.Contains("Exception:", StringComparison.OrdinalIgnoreCase) || + line.Contains("Unhandled exception", StringComparison.OrdinalIgnoreCase) || + line.Contains("Fatal error", StringComparison.OrdinalIgnoreCase) || + line.Contains("Assertion failed", StringComparison.OrdinalIgnoreCase) || + line.Contains("Crash!!!", StringComparison.OrdinalIgnoreCase) || + line.Contains("Failed to ", StringComparison.OrdinalIgnoreCase) || + line.Contains("Cannot ", StringComparison.OrdinalIgnoreCase) || + line.Contains("Could not ", StringComparison.OrdinalIgnoreCase) || + line.Contains("Debug:LogWarning", StringComparison.Ordinal) || + line.Contains("Debug:LogError", StringComparison.Ordinal); + } + + private static void AttachArtifacts(IEnumerable paths) + { + var testContext = TestContext.Current + ?? throw new InvalidOperationException( + "TUnit did not provide a test context."); + foreach (var path in paths + .Where(File.Exists) + .Distinct(StringComparer.OrdinalIgnoreCase)) + { + testContext.Output.AttachArtifact(path); + } + } + + private sealed record UnityRunContext( + string EditorPath, + string LogDirectory, + string RefreshLogPath); +} diff --git a/tests/UnityTestRunner/UnityTestRunner.csproj b/tests/UnityTestRunner/UnityTestRunner.csproj new file mode 100644 index 0000000..b36bd23 --- /dev/null +++ b/tests/UnityTestRunner/UnityTestRunner.csproj @@ -0,0 +1,15 @@ + + + + Exe + net10.0 + enable + enable + false + + + + + + + diff --git a/tests/UnityTestRunner/UnityVersionTests.cs b/tests/UnityTestRunner/UnityVersionTests.cs new file mode 100644 index 0000000..08a5ee9 --- /dev/null +++ b/tests/UnityTestRunner/UnityVersionTests.cs @@ -0,0 +1,111 @@ +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +public sealed class Unity2022_3UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity2022.3"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} + +public sealed class Unity6000_0UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity6000.0"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} + +public sealed class Unity6000_3UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity6000.3"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} + +public sealed class Unity6000_4UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity6000.4"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} + +public sealed class Unity6000_5UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity6000.5"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} + +public sealed class Unity6000_7UnitTests +{ + private static readonly UnityProject Project = + UnityProject.Locate("../versions/Unity6000.7"); + + [Before(HookType.Class)] + public static Task Refresh(CancellationToken cancellationToken) => + UnityTest.RefreshAsync(Project, cancellationToken); + + [Test] + public Task EditMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); + + [Test] + public Task PlayMode(CancellationToken cancellationToken) => + UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); +} diff --git a/tests/UnityTestRunner/WindowsProcessJob.cs b/tests/UnityTestRunner/WindowsProcessJob.cs new file mode 100644 index 0000000..ca0205b --- /dev/null +++ b/tests/UnityTestRunner/WindowsProcessJob.cs @@ -0,0 +1,154 @@ +using System.ComponentModel; +using System.Diagnostics; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; + +namespace Alchemy.UnityTestRunner; + +internal sealed class WindowsProcessJob : IDisposable +{ + private const uint JobObjectLimitKillOnJobClose = 0x00002000; + private const int JobObjectExtendedLimitInformationClass = 9; + + private readonly SafeFileHandle handle; + + private WindowsProcessJob(SafeFileHandle handle) + { + this.handle = handle; + } + + public static WindowsProcessJob? Attach( + Process process, + bool terminateDescendantsOnExit) + { + if (!terminateDescendantsOnExit || !OperatingSystem.IsWindows()) + { + return null; + } + + var handle = CreateJobObject(IntPtr.Zero, null); + if (handle.IsInvalid) + { + throw CreateException("Could not create a Windows Job Object."); + } + + var attached = false; + try + { + ConfigureKillOnClose(handle); + if (!AssignProcessToJobObject(handle, process.Handle)) + { + throw CreateException( + $"Could not assign process {process.Id} to a Windows Job Object."); + } + + attached = true; + return new WindowsProcessJob(handle); + } + finally + { + if (!attached) + { + handle.Dispose(); + } + } + } + + public void Dispose() + { + // Closing the job terminates only the launched process tree still owned by this runner. + handle.Dispose(); + } + + private static void ConfigureKillOnClose(SafeFileHandle handle) + { + var information = new JobObjectExtendedLimitInformation + { + BasicLimitInformation = new JobObjectBasicLimitInformation + { + LimitFlags = JobObjectLimitKillOnJobClose, + }, + }; + var size = Marshal.SizeOf(); + var pointer = Marshal.AllocHGlobal(size); + try + { + Marshal.StructureToPtr(information, pointer, fDeleteOld: false); + if (!SetInformationJobObject( + handle, + JobObjectExtendedLimitInformationClass, + pointer, + (uint)size)) + { + throw CreateException( + "Could not configure a Windows Job Object for process-tree cleanup."); + } + } + finally + { + Marshal.FreeHGlobal(pointer); + } + } + + private static ProcessExecutionException CreateException(string message) + { + return new ProcessExecutionException( + message, + new Win32Exception(Marshal.GetLastWin32Error())); + } + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + private static extern SafeFileHandle CreateJobObject( + IntPtr jobAttributes, + string? name); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool SetInformationJobObject( + SafeFileHandle job, + int informationClass, + IntPtr jobObjectInformation, + uint jobObjectInformationLength); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool AssignProcessToJobObject( + SafeFileHandle job, + IntPtr process); + + [StructLayout(LayoutKind.Sequential)] + private struct JobObjectBasicLimitInformation + { + public long PerProcessUserTimeLimit; + public long PerJobUserTimeLimit; + public uint LimitFlags; + public UIntPtr MinimumWorkingSetSize; + public UIntPtr MaximumWorkingSetSize; + public uint ActiveProcessLimit; + public UIntPtr Affinity; + public uint PriorityClass; + public uint SchedulingClass; + } + + [StructLayout(LayoutKind.Sequential)] + private struct IoCounters + { + public ulong ReadOperationCount; + public ulong WriteOperationCount; + public ulong OtherOperationCount; + public ulong ReadTransferCount; + public ulong WriteTransferCount; + public ulong OtherTransferCount; + } + + [StructLayout(LayoutKind.Sequential)] + private struct JobObjectExtendedLimitInformation + { + public JobObjectBasicLimitInformation BasicLimitInformation; + public IoCounters IoInfo; + public UIntPtr ProcessMemoryLimit; + public UIntPtr JobMemoryLimit; + public UIntPtr PeakProcessMemoryUsed; + public UIntPtr PeakJobMemoryUsed; + } +} diff --git a/tests/versions/Unity2022.3/.gitignore b/tests/versions/Unity2022.3/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity2022.3/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity2022.3/Assets/Tests.meta b/tests/versions/Unity2022.3/Assets/Tests.meta new file mode 100644 index 0000000..80ac8d6 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06ac2a7822d54d7188ac52dec7a052dc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..cf3543e --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1137da2cf9234a6c98f43f9a282f7d15 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..6dab647 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b4174972f97e4d36acea7d3115d50bd9 diff --git a/tests/versions/Unity2022.3/Packages/manifest.json b/tests/versions/Unity2022.3/Packages/manifest.json new file mode 100644 index 0000000..c232a4d --- /dev/null +++ b/tests/versions/Unity2022.3/Packages/manifest.json @@ -0,0 +1,11 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity2022.3/Packages/packages-lock.json b/tests/versions/Unity2022.3/Packages/packages-lock.json new file mode 100644 index 0000000..e6225e4 --- /dev/null +++ b/tests/versions/Unity2022.3/Packages/packages-lock.json @@ -0,0 +1,120 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "1.8.21", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.4.2", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.13", + "com.unity.test-framework": "1.4.3", + "com.unity.nuget.mono-cecil": "1.11.4", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.3", + "depth": 3, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.2.6", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.4", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "3.1.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.13", + "com.unity.collections": "2.4.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.4.3", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework.performance": { + "version": "3.0.3", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.31", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity2022.3/ProjectSettings/AlchemySettings.json b/tests/versions/Unity2022.3/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity2022.3/ProjectSettings/AudioManager.asset b/tests/versions/Unity2022.3/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..df1e809 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/AudioManager.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity2022.3/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity2022.3/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity2022.3/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..3e5f55b --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 14 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_SimulationMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_ImprovedPatchFriction: 0 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_FastMotionThreshold: 3.4028235e+38 diff --git a/tests/versions/Unity2022.3/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/tests/versions/Unity2022.3/ProjectSettings/EditorSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..67bdff5 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/EditorSettings.asset @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..2d51349 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,67 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_DefaultRenderingLayerMask: 1 + m_LogWhenShaderIsCompiled: 0 + m_SRPDefaultSettings: {} + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/InputManager.asset b/tests/versions/Unity2022.3/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/tests/versions/Unity2022.3/ProjectSettings/MemorySettings.asset b/tests/versions/Unity2022.3/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/tests/versions/Unity2022.3/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity2022.3/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + 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_SettingNames: + - Humanoid diff --git a/tests/versions/Unity2022.3/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..b71b65c --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/tests/versions/Unity2022.3/ProjectSettings/PresetManager.asset b/tests/versions/Unity2022.3/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity2022.3/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..d00b98b --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,865 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 26 + productGUID: d4132f4e4f5e9d2438c4e3cfdfea014f + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity2022.3 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 0 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 + switchMaxWorkerMultiple: 8 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 12.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity2022.3 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity2022.3 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: + apiCompatibilityLevel: 6 + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity2022.3/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..587f809 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2022.3.62f3 +m_EditorVersionWithRevision: 2022.3.62f3 (96770f904ca7) diff --git a/tests/versions/Unity2022.3/ProjectSettings/QualitySettings.asset b/tests/versions/Unity2022.3/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..bb69fbf --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/QualitySettings.asset @@ -0,0 +1,322 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 3 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + lodBias: 0.3 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 3 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + lodBias: 0.4 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 3 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + lodBias: 0.7 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 3 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + lodBias: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 3 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + lodBias: 1.5 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 3 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + QNX: 5 + Server: 5 + Stadia: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity2022.3/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity2022.3/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..5e97f83 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity2022.3/ProjectSettings/TagManager.asset b/tests/versions/Unity2022.3/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/TimeManager.asset b/tests/versions/Unity2022.3/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity2022.3/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..a88bee0 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity2022.3/ProjectSettings/VFXManager.asset b/tests/versions/Unity2022.3/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..852348b --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/VFXManager.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/tests/versions/Unity2022.3/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/tests/versions/Unity6000.0/.gitignore b/tests/versions/Unity6000.0/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity6000.0/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity6000.0/Assets/Tests.meta b/tests/versions/Unity6000.0/Assets/Tests.meta new file mode 100644 index 0000000..67c9922 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d0acd480c0d463a85aff5ec4e8233e0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..767f6d3 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 095c64133a404eb9af9265b460083dc9 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..441383e --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 89950872099d4ff3a479b9305179cd61 diff --git a/tests/versions/Unity6000.0/Packages/manifest.json b/tests/versions/Unity6000.0/Packages/manifest.json new file mode 100644 index 0000000..2a23697 --- /dev/null +++ b/tests/versions/Unity6000.0/Packages/manifest.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0", + "com.unity.pipeline": "0.4.0-exp.1" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity6000.0/Packages/packages-lock.json b/tests/versions/Unity6000.0/Packages/packages-lock.json new file mode 100644 index 0000000..cb9d035 --- /dev/null +++ b/tests/versions/Unity6000.0/Packages/packages-lock.json @@ -0,0 +1,161 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "1.8.29", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.6.7", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.29", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.mathematics": { + "version": "1.3.2", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.pipeline": { + "version": "0.4.0-exp.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "3.1.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.13", + "com.unity.collections": "2.4.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.5.0", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity6000.0/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.0/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity6000.0/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.0/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..df1e809 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/AudioManager.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/tests/versions/Unity6000.0/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.0/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity6000.0/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.0/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..87dfac5 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,45 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 23 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_SimulationMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 256, y: 256, z: 256} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_ImprovedPatchFriction: 0 + m_GenerateOnTriggerStayEvents: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_ScratchBufferChunkCount: 4 + m_CurrentBackendId: 4072204805 + m_FastMotionThreshold: 3.4028235e+38 + m_SceneBuffersReleaseInterval: 0 + m_ReleaseSceneBuffers: 0 + m_LogVerbosity: 3 + m_IncrementalStaticBroadphase: 1 diff --git a/tests/versions/Unity6000.0/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..7df81c6 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} + m_UseUCBPForAssetBundles: 0 diff --git a/tests/versions/Unity6000.0/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..c3aef21 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/EditorSettings.asset @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 diff --git a/tests/versions/Unity6000.0/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..7c0ea0b --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,66 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: {} + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/tests/versions/Unity6000.0/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.0/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/tests/versions/Unity6000.0/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.0/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/tests/versions/Unity6000.0/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.0/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.0/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.0/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + 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_SettingNames: + - Humanoid diff --git a/tests/versions/Unity6000.0/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..ce88bd8 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + oneTimeDeprecatedPopUpShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -866 + m_OriginalInstanceId: -868 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.0/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..c00eeb4 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_BounceThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_ContactThreshold: 0 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_SimulationLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxSubStepCount: 4 + m_MinSubStepFPS: 30 + m_UseSubStepping: 0 + m_UseSubStepContacts: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/tests/versions/Unity6000.0/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.0/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.0/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..3db4041 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,693 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: 2df096278dfff7c41b53403f42b3522a + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity6000.0 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + meshDeformation: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 23 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 13.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 13.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 11.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLEnableWebGPU: 0 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity6000.0 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity6000.0 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] diff --git a/tests/versions/Unity6000.0/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.0/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..685d2eb --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.0.80f1 +m_EditorVersionWithRevision: 6000.0.80f1 (2dfd32957da2) diff --git a/tests/versions/Unity6000.0/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.0/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..55f0aea --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/QualitySettings.asset @@ -0,0 +1,341 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 4 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.3 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.4 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.7 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1.5 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Kepler: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + Nintendo Switch 2: 5 + PS4: 5 + PS5: 5 + QNX: 5 + Server: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity6000.0/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.0/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity6000.0/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.0/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..eb5d9ae --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/TagManager.asset @@ -0,0 +1,45 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default diff --git a/tests/versions/Unity6000.0/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.0/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..2e23a1f --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/TimeManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + Fixed Timestep: + m_Count: 2822399 + m_Rate: + m_Denominator: 1 + m_Numerator: 141120000 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.0/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..5ef5698 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 0 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity6000.0/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.0/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..a2a4a97 --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/VFXManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_MaxCapacity: 100000000 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/tests/versions/Unity6000.0/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.0/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..979fd8e --- /dev/null +++ b/tests/versions/Unity6000.0/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 diff --git a/tests/versions/Unity6000.3/.gitignore b/tests/versions/Unity6000.3/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity6000.3/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity6000.3/Assets/Tests.meta b/tests/versions/Unity6000.3/Assets/Tests.meta new file mode 100644 index 0000000..edaaefb --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92d1c5a3726d44b5a2eba6ffdb98ee65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..19b0a74 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6c2eb57b7364ab7bf3a47509dcf2bb8 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..a0f5c55 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 43b64039296d463883a107c697b436bb diff --git a/tests/versions/Unity6000.3/Packages/manifest.json b/tests/versions/Unity6000.3/Packages/manifest.json new file mode 100644 index 0000000..2a23697 --- /dev/null +++ b/tests/versions/Unity6000.3/Packages/manifest.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0", + "com.unity.pipeline": "0.4.0-exp.1" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity6000.3/Packages/packages-lock.json b/tests/versions/Unity6000.3/Packages/packages-lock.json new file mode 100644 index 0000000..a8a9ca2 --- /dev/null +++ b/tests/versions/Unity6000.3/Packages/packages-lock.json @@ -0,0 +1,168 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "1.8.30", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.6.8", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.29", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.mathematics": { + "version": "1.3.3", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.pipeline": { + "version": "0.4.0-exp.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "3.1.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.13", + "com.unity.collections": "2.4.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.5.0", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity6000.3/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.3/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity6000.3/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.3/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..50b4625 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/AudioManager.asset @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 + m_AudioFoundation: 0 + m_OutputChannelLayout: 2 + m_OutputSamplingRate: 48000 diff --git a/tests/versions/Unity6000.3/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.3/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity6000.3/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.3/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..3b4c3e6 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 24 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_SimulationMode: 0 + m_ThreadingMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 2 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 256, y: 256, z: 256} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_ImprovedPatchFriction: 0 + m_GenerateOnTriggerStayEvents: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_ScratchBufferChunkCount: 4 + m_CurrentBackendId: 4072204805 + m_FastMotionThreshold: 3.4028235e+38 + m_SceneBuffersReleaseInterval: 0 + m_ReleaseSceneBuffers: 0 + m_LogVerbosity: 3 + m_IncrementalStaticBroadphase: 1 diff --git a/tests/versions/Unity6000.3/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..7df81c6 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} + m_UseUCBPForAssetBundles: 0 diff --git a/tests/versions/Unity6000.3/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..c3aef21 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/EditorSettings.asset @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 diff --git a/tests/versions/Unity6000.3/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..4b152c0 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,68 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: {} + m_ShaderBuildSettings: + keywordDeclarationOverrides: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/tests/versions/Unity6000.3/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.3/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/tests/versions/Unity6000.3/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.3/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/tests/versions/Unity6000.3/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.3/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..c19bcd7 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_EnablePlayModeLocalDeployment: 0 + m_EnablePlayModeRemoteDeployment: 0 + m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.3/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.3/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + 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_SettingNames: + - Humanoid diff --git a/tests/versions/Unity6000.3/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..1567c10 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.PackageManager.UI.Internal.PackageManagerProjectSettings + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + oneTimePackageErrorsPopUpShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -898 + m_OriginalInstanceId: -900 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.3/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..14f419f --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_BounceThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_ContactThreshold: 0 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_SimulationLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxSubStepCount: 4 + m_MinSubStepFPS: 30 + m_UseSubStepping: 0 + m_UseSubStepContacts: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_PhysicsLowLevelSettings: {fileID: 0} diff --git a/tests/versions/Unity6000.3/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.3/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.3/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..d73ac70 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,703 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: 63f2ac45ea50ffd4398663f2862542ce + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity6000.3 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + adjustIOSFPSUsingThermalState: 1 + thermalStateSeriousIOSFPS: 30 + thermalStateCriticalIOSFPS: 15 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + meshDeformation: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 25 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidAllowedArchitectures: -1 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity6000.3 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity6000.3 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/tests/versions/Unity6000.3/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.3/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..bed7306 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.3.21f1 +m_EditorVersionWithRevision: 6000.3.21f1 (c02631ffc030) diff --git a/tests/versions/Unity6000.3/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.3/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..64f8aba --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/QualitySettings.asset @@ -0,0 +1,347 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 5 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.3 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.4 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.7 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1.5 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Kepler: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + Nintendo Switch 2: 5 + PS4: 5 + PS5: 5 + QNX: 5 + Server: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity6000.3/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.3/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity6000.3/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.3/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..eb5d9ae --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/TagManager.asset @@ -0,0 +1,45 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default diff --git a/tests/versions/Unity6000.3/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.3/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..2e23a1f --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/TimeManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + Fixed Timestep: + m_Count: 2822399 + m_Rate: + m_Denominator: 1 + m_Numerator: 141120000 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.3/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..5ef5698 --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 0 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity6000.3/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.3/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..56783bb --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/VFXManager.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_PrefixSumShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_MaxCapacity: 100000000 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/tests/versions/Unity6000.3/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.3/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..979fd8e --- /dev/null +++ b/tests/versions/Unity6000.3/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 diff --git a/tests/versions/Unity6000.4/.gitignore b/tests/versions/Unity6000.4/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity6000.4/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity6000.4/Assets/Tests.meta b/tests/versions/Unity6000.4/Assets/Tests.meta new file mode 100644 index 0000000..edaaefb --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92d1c5a3726d44b5a2eba6ffdb98ee65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..19b0a74 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6c2eb57b7364ab7bf3a47509dcf2bb8 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..a0f5c55 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 43b64039296d463883a107c697b436bb diff --git a/tests/versions/Unity6000.4/Packages/manifest.json b/tests/versions/Unity6000.4/Packages/manifest.json new file mode 100644 index 0000000..1817a66 --- /dev/null +++ b/tests/versions/Unity6000.4/Packages/manifest.json @@ -0,0 +1,13 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.inputsystem": "1.19.0", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0", + "com.unity.pipeline": "0.4.0-exp.1" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity6000.4/Packages/packages-lock.json b/tests/versions/Unity6000.4/Packages/packages-lock.json new file mode 100644 index 0000000..1b0f5a1 --- /dev/null +++ b/tests/versions/Unity6000.4/Packages/packages-lock.json @@ -0,0 +1,176 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "1.8.29", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "6.4.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.23", + "com.unity.mathematics": "1.3.2", + "com.unity.nuget.mono-cecil": "1.11.5", + "com.unity.test-framework": "1.4.6", + "com.unity.test-framework.performance": "3.0.3" + } + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.inputsystem": { + "version": "1.19.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.3.3", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.pipeline": { + "version": "0.4.0-exp.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "3.1.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.13", + "com.unity.collections": "2.4.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.5.0", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..07ebfb0 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 1024 diff --git a/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..cdc1f3e --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0 + m_ClothInterCollisionStiffness: 0 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_DefaultMaxAngluarSpeed: 7 diff --git a/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..fa63119 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: + com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 289c1b55c9541489481df5cc06664110, type: 3} diff --git a/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..226f2d0 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_BlockShaders: 0 + m_UnlockBlockShaders: 0 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 + m_HideBuildProfileClassicPlatforms: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..43369e3 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..17c8f53 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..c19bcd7 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_EnablePlayModeLocalDeployment: 0 + m_EnablePlayModeRemoteDeployment: 0 + m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..112a053 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -830 + m_OriginalInstanceId: -832 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json new file mode 100644 index 0000000..3c7b4c1 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -0,0 +1,5 @@ +{ + "m_Dictionary": { + "m_DictionaryValues": [] + } +} \ No newline at end of file diff --git a/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..47880b1 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..cf1ade4 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,780 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: db809e84cdb62c646b5fc27701189926 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity6000.4 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 0 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + meshDeformation: 2 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 0 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 0.1 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: + Standalone: com.DefaultCompany.3D-Project + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 25 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 1 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea + templatePackageId: com.unity.template.3d@9.1.0 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidAllowedArchitectures: -13 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: + - m_BuildTarget: Standalone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: tvOS + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: Android + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: iPhone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: WebGL + m_StaticBatching: 0 + m_DynamicBatching: 0 + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 1 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 1 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 1 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 1 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 1 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: + - m_BuildTarget: PS4Player + m_GraphicsJobMode: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobMode: 0 + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 1 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AppleTVSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: WebGLSupport + m_APIs: 0b000000 + m_Automatic: 1 + m_BuildTargetVRSettings: + - m_BuildTarget: Standalone + m_Enabled: 0 + m_Devices: + - Oculus + - OpenVR + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - serializedVersion: 2 + m_BuildTarget: Android + m_EncodingQuality: 1 + - serializedVersion: 2 + m_BuildTarget: iPhone + m_EncodingQuality: 1 + - serializedVersion: 2 + m_BuildTarget: tvOS + m_EncodingQuality: 1 + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + - m_BuildTarget: iPhone + m_Encoding: 1 + - m_BuildTarget: tvOS + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: + - serializedVersion: 3 + m_BuildTarget: Android + m_Formats: 03000000 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 0 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 16 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: + Android: 1 + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity6000.4 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity6000.4 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: + UNet: 1 + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 1 + windowsGamepadBackendHint: 0 + enableDirectStorage: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..c341670 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.4.12f1 +m_EditorVersionWithRevision: 6000.4.12f1 (3ca267ce8005) diff --git a/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..36c0dad --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset @@ -0,0 +1,234 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Nintendo 3DS: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..029ad8b --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 1 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/tests/versions/Unity6000.5/.gitignore b/tests/versions/Unity6000.5/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity6000.5/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity6000.5/Assets/Tests.meta b/tests/versions/Unity6000.5/Assets/Tests.meta new file mode 100644 index 0000000..6c8b8f5 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b0f30b8081647fab83b3222929a09fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..0224c45 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 089ec27ad92545268b864beecfaa2d8c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..ca5f61e --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 73fb4c4380d843f2a04b0e90042ee677 diff --git a/tests/versions/Unity6000.5/Packages/manifest.json b/tests/versions/Unity6000.5/Packages/manifest.json new file mode 100644 index 0000000..2a23697 --- /dev/null +++ b/tests/versions/Unity6000.5/Packages/manifest.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0", + "com.unity.pipeline": "0.4.0-exp.1" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity6000.5/Packages/packages-lock.json b/tests/versions/Unity6000.5/Packages/packages-lock.json new file mode 100644 index 0000000..b57586c --- /dev/null +++ b/tests/versions/Unity6000.5/Packages/packages-lock.json @@ -0,0 +1,171 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "1.8.29", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "6.5.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.25", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.test-framework": "1.4.6", + "com.unity.test-framework.performance": "3.2.0" + } + }, + "com.unity.ext.nunit": { + "version": "2.1.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.mathematics": { + "version": "1.4.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.pipeline": { + "version": "0.4.0-exp.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "6.5.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.collections": "2.1.2", + "com.unity.burst": "1.7.2" + } + }, + "com.unity.test-framework": { + "version": "1.7.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.1.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.5.0", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity6000.5/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.5/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity6000.5/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.5/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..50b4625 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/AudioManager.asset @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 + m_AudioFoundation: 0 + m_OutputChannelLayout: 2 + m_OutputSamplingRate: 48000 diff --git a/tests/versions/Unity6000.5/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.5/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity6000.5/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.5/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..3b4c3e6 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 24 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_SimulationMode: 0 + m_ThreadingMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 2 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 256, y: 256, z: 256} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_ImprovedPatchFriction: 0 + m_GenerateOnTriggerStayEvents: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_ScratchBufferChunkCount: 4 + m_CurrentBackendId: 4072204805 + m_FastMotionThreshold: 3.4028235e+38 + m_SceneBuffersReleaseInterval: 0 + m_ReleaseSceneBuffers: 0 + m_LogVerbosity: 3 + m_IncrementalStaticBroadphase: 1 diff --git a/tests/versions/Unity6000.5/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/tests/versions/Unity6000.5/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..71a43d9 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/EditorSettings.asset @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_BlockShaders: 0 + m_UnlockBlockShaders: 0 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableTls: 0 + m_CacheServerImportResultCachingEnabled: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 + m_HideBuildProfileClassicPlatforms: 0 diff --git a/tests/versions/Unity6000.5/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..b34982f --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_GraphicsStateCollection: {fileID: 0} + m_CollectionStartupAction: 0 + m_TraceSavePath: TracedCollection + m_TraceSendToEditor: 1 + m_AdditionalWarmupCollections: [] + m_WarmupAsync: 1 + m_EnableCacheMissTracing: 0 + m_WarmupProgressivelyLimit: -1 + m_CacheMissCollectionPath: CacheMissCollection + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: {} + m_ShaderBuildSettings: + keywordDeclarationOverrides: [] + numInternalDefines: 0 + defines: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/tests/versions/Unity6000.5/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.5/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/tests/versions/Unity6000.5/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.5/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..434c340 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/MemorySettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainAllocatorMimallocEnabled: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: [] diff --git a/tests/versions/Unity6000.5/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.5/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.5/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.5/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + 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_SettingNames: + - Humanoid diff --git a/tests/versions/Unity6000.5/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..ebe0371 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,44 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.PackageManager.UI.Internal.PackageManagerProjectSettings + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + oneTimePackageErrorsPopUpShown: 0 + m_MainRegistry: + m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_IsUnityRegistry: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] + m_ScopedRegistries: [] + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsEntityId: + m_rawData: 568105589213756512 + m_OriginalEntityId: + m_rawData: 568105589213756510 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.5/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..14f419f --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_BounceThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_ContactThreshold: 0 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_SimulationLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxSubStepCount: 4 + m_MinSubStepFPS: 30 + m_UseSubStepping: 0 + m_UseSubStepContacts: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_PhysicsLowLevelSettings: {fileID: 0} diff --git a/tests/versions/Unity6000.5/ProjectSettings/PhysicsCoreProjectSettings2D.asset b/tests/versions/Unity6000.5/ProjectSettings/PhysicsCoreProjectSettings2D.asset new file mode 100644 index 0000000..049c745 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/PhysicsCoreProjectSettings2D.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!176606843 &1 +PhysicsCoreProjectSettings2D: + m_ObjectHideFlags: 0 + m_PhysicsCoreSettings: {fileID: 0} diff --git a/tests/versions/Unity6000.5/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.5/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.5/ProjectSettings/ProjectAuditorSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/ProjectAuditorSettings.asset new file mode 100644 index 0000000..e34a87a --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/ProjectAuditorSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + 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: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor.ProjectAuditorModule:Unity.ProjectAuditor.Editor:ProjectAuditorSettings + Rules: + rules: [] + DiagnosticParams: + paramsStack: + - PlatformGroup: + m_String: Unknown + m_SerializedParams: + - Key: StreamingAssetsFolderSizeLimit + Value: 50 + - Key: SpriteAtlasEmptySpaceLimit + Value: 50 + - Key: TextureStreamingMipmapsSizeLimit + Value: 4000 + - Key: StreamingClipThresholdBytes + Value: 218294 + - Key: LongDecompressedClipThresholdBytes + Value: 204800 + - Key: LongCompressedMobileClipThresholdBytes + Value: 204800 + - Key: LoadInBackGroundClipSizeThresholdBytes + Value: 204800 + CurrentParamsIndex: 0 diff --git a/tests/versions/Unity6000.5/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..f765606 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,704 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 29 + productGUID: d3cf65e921fadbf47b88d5f242d67547 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity6000.5 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + adjustIOSFPSUsingThermalState: 1 + thermalStateSeriousIOSFPS: 30 + thermalStateCriticalIOSFPS: 15 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidRequestedVisibleInsets: 0 + androidSystemBarsBehavior: 2 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + meshDeformation: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 26 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + xcodeProjectType: 0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + switchCaStoreSource: 0 + switchCaStoreFilePath: + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 1 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppLTOMode: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity6000.5 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity6000.5 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + enableDirectStorage: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/tests/versions/Unity6000.5/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.5/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..9d59eca --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.5.6f1 +m_EditorVersionWithRevision: 6000.5.6f1 (0e0577a1a2ac) diff --git a/tests/versions/Unity6000.5/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.5/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..64f8aba --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/QualitySettings.asset @@ -0,0 +1,347 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 5 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.3 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.4 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.7 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1.5 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Kepler: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + Nintendo Switch 2: 5 + PS4: 5 + PS5: 5 + QNX: 5 + Server: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity6000.5/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.5/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity6000.5/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.5/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..6abf33d --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/TagManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default + m_MigratedRenderPipelines: [] diff --git a/tests/versions/Unity6000.5/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.5/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..2e23a1f --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/TimeManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + Fixed Timestep: + m_Count: 2822399 + m_Rate: + m_Denominator: 1 + m_Numerator: 141120000 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.5/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..5ef5698 --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 0 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity6000.5/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.5/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..56783bb --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/VFXManager.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_PrefixSumShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_MaxCapacity: 100000000 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/tests/versions/Unity6000.5/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.5/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..979fd8e --- /dev/null +++ b/tests/versions/Unity6000.5/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 diff --git a/tests/versions/Unity6000.7/.gitignore b/tests/versions/Unity6000.7/.gitignore new file mode 100644 index 0000000..2987666 --- /dev/null +++ b/tests/versions/Unity6000.7/.gitignore @@ -0,0 +1,78 @@ +# 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 +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# 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* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Visual Studio Code +.vscode + +## DS_Store +*.DS_Store diff --git a/tests/versions/Unity6000.7/Assets/Tests.meta b/tests/versions/Unity6000.7/Assets/Tests.meta new file mode 100644 index 0000000..b4b2e31 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55389ca5794a47f59e526c937c4cd4c8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef new file mode 100644 index 0000000..c6ff34a --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef @@ -0,0 +1,21 @@ +{ + "name": "Alchemy.Project.Tests", + "rootNamespace": "", + "references": [ + "Alchemy", + "Alchemy.Tests" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta new file mode 100644 index 0000000..d6c5473 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 153018fa65af4c0db6e4eaf4c1561b4d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs new file mode 100644 index 0000000..e4f0471 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs @@ -0,0 +1,6 @@ +namespace Alchemy.Project.Tests +{ + internal static class TestAssemblyReference + { + } +} diff --git a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta new file mode 100644 index 0000000..8b3e443 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1be9b72d2a6b43f4a74c8f7f39aabf2f diff --git a/tests/versions/Unity6000.7/Packages/manifest.json b/tests/versions/Unity6000.7/Packages/manifest.json new file mode 100644 index 0000000..2a23697 --- /dev/null +++ b/tests/versions/Unity6000.7/Packages/manifest.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "com.unity.serialization": "3.1.5", + "com.unity.modules.uielements": "1.0.0", + "com.unity.pipeline": "0.4.0-exp.1" + }, + "testables": [ + "com.annulusgames.alchemy.test" + ] +} diff --git a/tests/versions/Unity6000.7/Packages/packages-lock.json b/tests/versions/Unity6000.7/Packages/packages-lock.json new file mode 100644 index 0000000..96b6b05 --- /dev/null +++ b/tests/versions/Unity6000.7/Packages/packages-lock.json @@ -0,0 +1,159 @@ +{ + "dependencies": { + "com.annulusgames.alchemy": { + "version": "file:../../../../Alchemy/Assets/Alchemy", + "depth": 0, + "source": "local", + "dependencies": {} + }, + "com.annulusgames.alchemy.test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, + "com.unity.burst": { + "version": "2.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.collections": { + "version": "6.5.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.25", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.test-framework": "1.4.6", + "com.unity.test-framework.performance": "3.2.0" + } + }, + "com.unity.ext.nunit": { + "version": "2.1.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.pipeline": { + "version": "0.4.0-exp.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2" + }, + "url": "https://packages.unity.com" + }, + "com.unity.serialization": { + "version": "6.5.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.collections": "2.1.2", + "com.unity.burst": "1.7.2" + } + }, + "com.unity.test-framework": { + "version": "1.8.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.1.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "6.6.0", + "depth": 2, + "source": "builtin", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + } + } +} diff --git a/tests/versions/Unity6000.7/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.7/ProjectSettings/AlchemySettings.json new file mode 100644 index 0000000..b8fd584 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/AlchemySettings.json @@ -0,0 +1,32 @@ +{ + "hierarchyObjectMode": 2, + "showHierarchyToggles": true, + "showComponentIcons": true, + "showTreeMap": false, + "treeMapColor": { + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 + }, + "showSeparator": false, + "showRowShading": false, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } +} diff --git a/tests/versions/Unity6000.7/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.7/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..50b4625 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/AudioManager.asset @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 + m_AudioFoundation: 0 + m_OutputChannelLayout: 2 + m_OutputSamplingRate: 48000 diff --git a/tests/versions/Unity6000.7/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.7/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/tests/versions/Unity6000.7/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.7/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..39290c5 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 24 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffu + m_SimulationMode: 0 + m_ThreadingMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 2 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 256, y: 256, z: 256} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_ImprovedPatchFriction: 0 + m_GenerateOnTriggerStayEvents: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_ScratchBufferChunkCount: 4 + m_CurrentBackendId: 4072204805 + m_FastMotionThreshold: 3.4028235e+38 + m_SceneBuffersReleaseInterval: 0 + m_ReleaseSceneBuffers: 0 + m_LogVerbosity: 3 + m_IncrementalStaticBroadphase: 1 diff --git a/tests/versions/Unity6000.7/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/tests/versions/Unity6000.7/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..64fcf13 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/EditorSettings.asset @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_BlockShaders: 0 + m_UnlockBlockShaders: 0 + m_PrefabModeAllowAutoSave: 1 + m_EnableMSBuildCompilationPipeline: 0 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableTls: 0 + m_CacheServerImportResultCachingEnabled: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 + m_HideBuildProfileClassicPlatforms: 0 + m_UseLegacyHierarchy: 0 diff --git a/tests/versions/Unity6000.7/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..61c884d --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_GraphicsStateCollection: {fileID: 0} + m_CollectionStartupAction: 0 + m_TraceSavePath: TracedCollection + m_TraceSendToEditor: 1 + m_AdditionalWarmupCollections: [] + m_WarmupAsync: 1 + m_EnableCacheMissTracing: 0 + m_WarmupProgressivelyLimit: -1 + m_CacheMissCollectionPath: CacheMissCollection + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_DefaultLightBaker: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: {} + m_ShaderBuildSettings: + keywordDeclarationOverrides: [] + numInternalDefines: 0 + defines: [] + compilerSettings: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/tests/versions/Unity6000.7/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.7/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/tests/versions/Unity6000.7/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.7/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..207ead6 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/MemorySettings.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainAllocatorMimallocEnabled: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_EntitiesArchetypeAllocatorBudget: -1 + m_EntitiesQueryAllocatorBudget: -1 + m_PlatformMemorySettings: [] diff --git a/tests/versions/Unity6000.7/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.7/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.7/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.7/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + 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_SettingNames: + - Humanoid diff --git a/tests/versions/Unity6000.7/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..bb75076 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,44 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: UnityEditor.dll::UnityEditor.PackageManager.UI.Internal.PackageManagerProjectSettings + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + oneTimePackageErrorsPopUpShown: 0 + m_MainRegistry: + m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_IsUnityRegistry: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] + m_ScopedRegistries: [] + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsEntityId: + m_rawData: 1099511639421 + m_OriginalEntityId: + m_rawData: 1099511639420 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.7/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..67aaf1c --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_BounceThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_ContactThreshold: 0 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_SimulationLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxSubStepCount: 4 + m_MinSubStepFPS: 30 + m_UseSubStepping: 0 + m_UseSubStepContacts: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffu + m_PhysicsLowLevelSettings: {fileID: 0} diff --git a/tests/versions/Unity6000.7/ProjectSettings/PhysicsCoreProjectSettings2D.asset b/tests/versions/Unity6000.7/ProjectSettings/PhysicsCoreProjectSettings2D.asset new file mode 100644 index 0000000..049c745 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/PhysicsCoreProjectSettings2D.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!176606843 &1 +PhysicsCoreProjectSettings2D: + m_ObjectHideFlags: 0 + m_PhysicsCoreSettings: {fileID: 0} diff --git a/tests/versions/Unity6000.7/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.7/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.7/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..b2ae8fc --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,710 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + m_BuildProfilePlayerSettings: {fileID: 0} + serializedVersion: 31 + productGUID: e6e45bfc163f10d4c92c528d3f187b9e + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Unity6000.7 + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + webProgressiveAssetLoading: 0 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000i + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + adjustIOSFPSUsingThermalState: 1 + thermalStateSeriousIOSFPS: 30 + thermalStateCriticalIOSFPS: 15 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidRequestedVisibleInsets: 0 + androidSystemBarsBehavior: 2 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + callOnDisableOnAssetBundleUnload: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + meshDeformation: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000i + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 26 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + xcodeProjectType: 0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + switchCaStoreSource: 0 + switchCaStoreFilePath: + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 1 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppLTOMode: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + managedCodeVariant: {} + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + windowsCopyVCRuntime: 1 + metroPackageName: Unity6000.7 + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity6000.7 + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + enableDirectStorage: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + webGPUDeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/tests/versions/Unity6000.7/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.7/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..e4c5ba6 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.7.0a3 +m_EditorVersionWithRevision: 6000.7.0a3 (4e1564fc2cca) diff --git a/tests/versions/Unity6000.7/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.7/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..64f8aba --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/QualitySettings.asset @@ -0,0 +1,347 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 5 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.3 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.4 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.7 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1.5 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 5 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + meshLodThreshold: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Kepler: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + Nintendo Switch 2: 5 + PS4: 5 + PS5: 5 + QNX: 5 + Server: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/tests/versions/Unity6000.7/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.7/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/tests/versions/Unity6000.7/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.7/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..6abf33d --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/TagManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default + m_MigratedRenderPipelines: [] diff --git a/tests/versions/Unity6000.7/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.7/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..2e23a1f --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/TimeManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + Fixed Timestep: + m_Count: 2822399 + m_Rate: + m_Denominator: 1 + m_Numerator: 141120000 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.7/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..e4d52e2 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EventUrl: + m_StackTraceUrl: + m_EngineDiagnosticsEnabled: 0 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/tests/versions/Unity6000.7/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.7/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..d51c4d3 --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/VFXManager.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_PrefixSumShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_MaxCapacity: 100000000 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_EditorResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/tests/versions/Unity6000.7/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.7/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..979fd8e --- /dev/null +++ b/tests/versions/Unity6000.7/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 From b5504c745862be3dcfbc59de6bda075919c8d463 Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Thu, 30 Jul 2026 16:48:45 +0900 Subject: [PATCH 02/15] test: migrate Assets/Test into Alchemy.Tests.Inspector under tests --- Alchemy/Assets/Tests/Alchemy.Tests.asmdef | 21 ------ Alchemy/Assets/Tests/ButtonTest.cs | 12 ---- Alchemy/Assets/Tests/ButtonTest.cs.meta | 2 - Alchemy/Assets/Tests/DepthTest.cs | 24 ------- .../Assets/Tests/InheritedSerializeTest.cs | 9 --- .../Tests/InheritedSerializeTestBase.cs | 12 ---- Alchemy/Assets/Tests/OnListViewChangedTest.cs | 52 -------------- Alchemy/Assets/Tests/PreviewTest.cs | 11 --- Alchemy/Assets/Tests/PreviewTest.cs.meta | 2 - Alchemy/Assets/Tests/StringListTest.cs | 10 --- Alchemy/Assets/Tests/UnsignedTest.cs | 17 ----- Alchemy/Packages/manifest.json | 2 + Alchemy/Packages/packages-lock.json | 12 +++- .../Assets/Alchemy.Tests.Inspector.meta | 0 .../Alchemy.Tests.Inspector.asmdef | 22 ++++++ .../Alchemy.Tests.Inspector.asmdef.meta | 0 .../Alchemy.Tests.Inspector/ButtonTest.cs | 15 ++++ .../ButtonTest.cs.meta | 2 + .../Alchemy.Tests.Inspector/ButtonTest.prefab | 46 +++++++++++++ .../ButtonTest.prefab.meta} | 4 +- .../Alchemy.Tests.Inspector/DepthTest.cs | 27 ++++++++ .../DepthTest.cs.meta | 0 .../Alchemy.Tests.Inspector/DepthTest.prefab | 68 +++++++++++++++++++ .../DepthTest.prefab.meta} | 4 +- .../InheritedSerializeTest.cs | 18 +++++ .../InheritedSerializeTest.cs.meta | 0 .../InheritedSerializeTest.prefab | 56 +++++++++++++++ .../InheritedSerializeTest.prefab.meta} | 4 +- .../InheritedSerializeTestBase.cs | 20 ++++++ .../InheritedSerializeTestBase.cs.meta | 2 +- .../OnListViewChangedTest.cs | 55 +++++++++++++++ .../OnListViewChangedTest.cs.meta | 0 .../OnListViewChangedTest.prefab | 47 +++++++++++++ .../OnListViewChangedTest.prefab.meta} | 4 +- .../Alchemy.Tests.Inspector/PreviewTest.cs | 14 ++++ .../PreviewTest.cs.meta | 2 + .../PreviewTest.prefab | 50 ++++++++++++++ .../PreviewTest.prefab.meta | 7 ++ .../Alchemy.Tests.Inspector/StringListTest.cs | 13 ++++ .../StringListTest.cs.meta | 0 .../StringListTest.prefab | 49 +++++++++++++ .../StringListTest.prefab.meta | 7 ++ .../Alchemy.Tests.Inspector/UnsignedTest.cs | 20 ++++++ .../UnsignedTest.cs.meta | 2 +- .../UnsignedTest.prefab | 46 +++++++++++++ .../UnsignedTest.prefab.meta | 7 ++ .../Alchemy.Tests.Inspector/package.json | 9 +++ .../Alchemy.Tests.Inspector/package.json.meta | 7 ++ tests/versions/Unity2022.3/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity2022.3/Packages/manifest.json | 2 + .../Unity2022.3/Packages/packages-lock.json | 8 +++ .../PackageManagerSettings.asset | 36 ++++++++++ tests/versions/Unity6000.0/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity6000.0/Packages/manifest.json | 2 + .../Unity6000.0/Packages/packages-lock.json | 8 +++ tests/versions/Unity6000.3/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity6000.3/Packages/manifest.json | 2 + .../Unity6000.3/Packages/packages-lock.json | 8 +++ tests/versions/Unity6000.4/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity6000.4/Packages/manifest.json | 2 + .../Unity6000.4/Packages/packages-lock.json | 8 +++ tests/versions/Unity6000.5/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 -- .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity6000.5/Packages/manifest.json | 2 + .../Unity6000.5/Packages/packages-lock.json | 8 +++ tests/versions/Unity6000.7/Assets/Tests.meta | 8 --- .../Assets/Tests/Alchemy.Tests.asmdef | 21 ------ .../Assets/Tests/Alchemy.Tests.asmdef.meta | 7 -- .../Assets/Tests/TestAssemblyReference.cs | 6 -- .../Tests/TestAssemblyReference.cs.meta | 2 - .../Unity6000.7/Packages/manifest.json | 2 + .../Unity6000.7/Packages/packages-lock.json | 8 +++ 87 files changed, 726 insertions(+), 419 deletions(-) delete mode 100644 Alchemy/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 Alchemy/Assets/Tests/ButtonTest.cs delete mode 100644 Alchemy/Assets/Tests/ButtonTest.cs.meta delete mode 100644 Alchemy/Assets/Tests/DepthTest.cs delete mode 100644 Alchemy/Assets/Tests/InheritedSerializeTest.cs delete mode 100644 Alchemy/Assets/Tests/InheritedSerializeTestBase.cs delete mode 100644 Alchemy/Assets/Tests/OnListViewChangedTest.cs delete mode 100644 Alchemy/Assets/Tests/PreviewTest.cs delete mode 100644 Alchemy/Assets/Tests/PreviewTest.cs.meta delete mode 100644 Alchemy/Assets/Tests/StringListTest.cs delete mode 100644 Alchemy/Assets/Tests/UnsignedTest.cs rename Alchemy/Assets/Tests.meta => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef rename Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab rename tests/{versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta => Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta} (59%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/DepthTest.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab rename tests/{versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta => Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta} (59%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/InheritedSerializeTest.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab rename tests/{versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta => Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta} (59%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/InheritedSerializeTestBase.cs.meta (72%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/OnListViewChangedTest.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab rename tests/{versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta => Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta} (59%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/StringListTest.cs.meta (100%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs rename {Alchemy/Assets/Tests => tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector}/UnsignedTest.cs.meta (72%) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta delete mode 100644 tests/versions/Unity2022.3/Assets/Tests.meta delete mode 100644 tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta create mode 100644 tests/versions/Unity2022.3/ProjectSettings/PackageManagerSettings.asset delete mode 100644 tests/versions/Unity6000.0/Assets/Tests.meta delete mode 100644 tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta delete mode 100644 tests/versions/Unity6000.3/Assets/Tests.meta delete mode 100644 tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta delete mode 100644 tests/versions/Unity6000.4/Assets/Tests.meta delete mode 100644 tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta delete mode 100644 tests/versions/Unity6000.5/Assets/Tests.meta delete mode 100644 tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta delete mode 100644 tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta delete mode 100644 tests/versions/Unity6000.7/Assets/Tests.meta delete mode 100644 tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef delete mode 100644 tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta delete mode 100644 tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs delete mode 100644 tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta diff --git a/Alchemy/Assets/Tests/Alchemy.Tests.asmdef b/Alchemy/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/Alchemy/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/Alchemy/Assets/Tests/ButtonTest.cs b/Alchemy/Assets/Tests/ButtonTest.cs deleted file mode 100644 index 864c0f8..0000000 --- a/Alchemy/Assets/Tests/ButtonTest.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Alchemy.Inspector; -using UnityEngine; - -public class ButtonTest : MonoBehaviour -{ - [Button] - public void Foo() { } - - [Button] - [LabelText("Bar!!!")] - public void Bar() { } -} diff --git a/Alchemy/Assets/Tests/ButtonTest.cs.meta b/Alchemy/Assets/Tests/ButtonTest.cs.meta deleted file mode 100644 index 8423593..0000000 --- a/Alchemy/Assets/Tests/ButtonTest.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 876fc99fa8a8545a89804146627b128a \ No newline at end of file diff --git a/Alchemy/Assets/Tests/DepthTest.cs b/Alchemy/Assets/Tests/DepthTest.cs deleted file mode 100644 index 0c8b170..0000000 --- a/Alchemy/Assets/Tests/DepthTest.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using Alchemy.Inspector; -using UnityEngine; - -public class DepthTest : MonoBehaviour -{ - [Serializable] - [BoxGroup] - public class NodeA - { - [SerializeField] float foo; - [SerializeField] NodeB node; - } - - [Serializable] - [BoxGroup] - public class NodeB - { - [SerializeField] float bar; - [SerializeField] NodeA node; - } - - public NodeA node; -} diff --git a/Alchemy/Assets/Tests/InheritedSerializeTest.cs b/Alchemy/Assets/Tests/InheritedSerializeTest.cs deleted file mode 100644 index 66451a2..0000000 --- a/Alchemy/Assets/Tests/InheritedSerializeTest.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; -using Alchemy.Serialization; - -[ShowAlchemySerializationData] -[AlchemySerialize] -public partial class InheritedSerializeTest : InheritedSerializeTestBase -{ - [AlchemySerializeField, NonSerialized] int? nullableInt; -} \ No newline at end of file diff --git a/Alchemy/Assets/Tests/InheritedSerializeTestBase.cs b/Alchemy/Assets/Tests/InheritedSerializeTestBase.cs deleted file mode 100644 index f750970..0000000 --- a/Alchemy/Assets/Tests/InheritedSerializeTestBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using Alchemy.Serialization; -using UnityEngine; - -[ShowAlchemySerializationData] -[AlchemySerialize] -public partial class InheritedSerializeTestBase : MonoBehaviour -{ - [AlchemySerializeField, NonSerialized] HashSet set; -} - diff --git a/Alchemy/Assets/Tests/OnListViewChangedTest.cs b/Alchemy/Assets/Tests/OnListViewChangedTest.cs deleted file mode 100644 index 5e2599e..0000000 --- a/Alchemy/Assets/Tests/OnListViewChangedTest.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using Alchemy.Inspector; - -public class OnListViewChangedTest : MonoBehaviour -{ - [OnListViewChanged( - OnItemChanged = nameof(OnItemChanged), - OnItemsAdded = nameof(OnItemsAdded), - OnItemsRemoved = nameof(OnItemsRemoved), - OnItemsChosen = nameof(OnItemChosen), - OnSelectionChanged = nameof(OnSelectionChanged), - OnSelectedIndicesChanged = nameof(OnSelectedIndicesChanged), - OnItemIndexChanged = nameof(OnItemIndexChanged)) - ] - public int[] array; - - void OnItemChanged(int index, int item) - { - Debug.Log($"Changed: [{index}] -> {item}"); - } - - void OnItemsAdded(IEnumerable indices) - { - Debug.Log($"Added: [{string.Join(',', indices)}]"); - } - - void OnItemsRemoved(IEnumerable indices) - { - Debug.Log($"Removed: [{string.Join(',', indices)}]"); - } - - void OnItemChosen(IEnumerable items) - { - Debug.Log($"Chosen: [{string.Join(',', items)}]"); - } - - void OnSelectionChanged(IEnumerable items) - { - Debug.Log($"Selection Changed: [{string.Join(',', items)}]"); - } - - void OnSelectedIndicesChanged(IEnumerable indices) - { - Debug.Log($"Selected: [{string.Join(',', indices)}]"); - } - - void OnItemIndexChanged(int before, int after) - { - Debug.Log($"Index Changed: [{before} -> {after}]"); - } -} diff --git a/Alchemy/Assets/Tests/PreviewTest.cs b/Alchemy/Assets/Tests/PreviewTest.cs deleted file mode 100644 index 47d442d..0000000 --- a/Alchemy/Assets/Tests/PreviewTest.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Alchemy.Inspector; -using UnityEngine; -using UnityEngine.UIElements; - -public class PreviewTest : MonoBehaviour -{ - [Preview(64, Align.FlexStart)] public Sprite foo; - [Preview(64, Align.Center)] public Texture bar; - [Preview] public Material baz; - [Preview] public GameObject qux; -} diff --git a/Alchemy/Assets/Tests/PreviewTest.cs.meta b/Alchemy/Assets/Tests/PreviewTest.cs.meta deleted file mode 100644 index 0ce8d97..0000000 --- a/Alchemy/Assets/Tests/PreviewTest.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 76045b59dec5f463a999b2c69d27aa1c \ No newline at end of file diff --git a/Alchemy/Assets/Tests/StringListTest.cs b/Alchemy/Assets/Tests/StringListTest.cs deleted file mode 100644 index 23ac98e..0000000 --- a/Alchemy/Assets/Tests/StringListTest.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; -using Alchemy.Inspector; -using UnityEngine; - -public class StringListTest : MonoBehaviour -{ - [SerializeField] string field; - [SerializeField, DisableAlchemyEditor] string[] array; - [SerializeField] List list; -} \ No newline at end of file diff --git a/Alchemy/Assets/Tests/UnsignedTest.cs b/Alchemy/Assets/Tests/UnsignedTest.cs deleted file mode 100644 index 158db0d..0000000 --- a/Alchemy/Assets/Tests/UnsignedTest.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Alchemy.Inspector; -using UnityEngine; - -public class UnsignedTest : MonoBehaviour -{ - [Button] - public void TestUint(uint value) - { - Debug.Log("TestLong"); - } - - [Button] - public void TestULong(ulong value) - { - Debug.Log("TestULong"); - } -} \ No newline at end of file diff --git a/Alchemy/Packages/manifest.json b/Alchemy/Packages/manifest.json index 15f0edc..9f92bde 100644 --- a/Alchemy/Packages/manifest.json +++ b/Alchemy/Packages/manifest.json @@ -1,5 +1,6 @@ { "dependencies": { + "com.annulusgames.alchemy.inspector-test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.collab-proxy": "2.12.4", "com.unity.feature.development": "1.0.2", @@ -46,6 +47,7 @@ "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/Alchemy/Packages/packages-lock.json b/Alchemy/Packages/packages-lock.json index 3dcdc54..67fec38 100644 --- a/Alchemy/Packages/packages-lock.json +++ b/Alchemy/Packages/packages-lock.json @@ -1,10 +1,20 @@ { "dependencies": { + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, "source": "local", - "dependencies": {} + "dependencies": { + "com.unity.test-framework": "1.1.31" + } }, "com.unity.burst": { "version": "1.8.29", diff --git a/Alchemy/Assets/Tests.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector.meta similarity index 100% rename from Alchemy/Assets/Tests.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef new file mode 100644 index 0000000..4dfea05 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef @@ -0,0 +1,22 @@ +{ + "name": "Alchemy.Tests.Inspector", + "rootNamespace": "Alchemy.Tests.Inspector", + "references": [ + "GUID:88be65f96b86746888c927a5c8ff3534" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.serialization", + "expression": "", + "define": "ALCHEMY_SUPPORT_SERIALIZATION" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta similarity index 100% rename from Alchemy/Assets/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs new file mode 100644 index 0000000..b2c2d6c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.Inspector +{ + public class ButtonTest : MonoBehaviour + { + [Button] + public void Foo() { } + + [Button] + [LabelText("Bar!!!")] + public void Bar() { } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta new file mode 100644 index 0000000..1b32aff --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 876fc99fa8a8545a89804146627b128a diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab new file mode 100644 index 0000000..f0e654d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &927628925617444059 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3627327049945222624} + - component: {fileID: 4054829911080113485} + m_Layer: 0 + m_Name: ButtonTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3627327049945222624 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 927628925617444059} + 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!114 &4054829911080113485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 927628925617444059} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 876fc99fa8a8545a89804146627b128a, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta similarity index 59% rename from tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta index 19b0a74..455b34e 100644 --- a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: f6c2eb57b7364ab7bf3a47509dcf2bb8 -AssemblyDefinitionImporter: +guid: 5180f57637ec1384699c5659217cf0d8 +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs new file mode 100644 index 0000000..73bc619 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs @@ -0,0 +1,27 @@ +using System; +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.Inspector +{ + public class DepthTest : MonoBehaviour + { + [Serializable] + [BoxGroup] + public class NodeA + { + [SerializeField] float foo; + [SerializeField] NodeB node; + } + + [Serializable] + [BoxGroup] + public class NodeB + { + [SerializeField] float bar; + [SerializeField] NodeA node; + } + + public NodeA node; + } +} diff --git a/Alchemy/Assets/Tests/DepthTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs.meta similarity index 100% rename from Alchemy/Assets/Tests/DepthTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab new file mode 100644 index 0000000..cc1706f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab @@ -0,0 +1,68 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200175154544066585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8637637155588951025} + - component: {fileID: 5726277829486866215} + m_Layer: 0 + m_Name: DepthTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8637637155588951025 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200175154544066585} + 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!114 &5726277829486866215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200175154544066585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6eba956dee63540d8b7030e2e337edfc, type: 3} + m_Name: + m_EditorClassIdentifier: + node: + foo: 0 + node: + bar: 0 + node: + foo: 0 + node: + bar: 0 + node: + foo: 0 + node: + bar: 0 + node: + foo: 0 + node: + bar: 0 + node: + foo: 0 + node: + bar: 0 + node: + foo: 0 diff --git a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta similarity index 59% rename from tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta index cf3543e..7f60213 100644 --- a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 1137da2cf9234a6c98f43f9a282f7d15 -AssemblyDefinitionImporter: +guid: 8fb451e824cc2c54c828a706e5832e45 +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs new file mode 100644 index 0000000..4b49dac --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs @@ -0,0 +1,18 @@ +using System; +#if ALCHEMY_SUPPORT_SERIALIZATION +using Alchemy.Serialization; +#endif + +namespace Alchemy.Tests.Inspector +{ +#if ALCHEMY_SUPPORT_SERIALIZATION + [ShowAlchemySerializationData] + [AlchemySerialize] +#endif + public partial class InheritedSerializeTest : InheritedSerializeTestBase + { +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerializeField, NonSerialized] int? nullableInt; +#endif + } +} diff --git a/Alchemy/Assets/Tests/InheritedSerializeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs.meta similarity index 100% rename from Alchemy/Assets/Tests/InheritedSerializeTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab new file mode 100644 index 0000000..5d7df95 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5222799222392946949 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7996119920093433117} + - component: {fileID: 3031587386220250052} + m_Layer: 0 + m_Name: InheritedSerializeTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7996119920093433117 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5222799222392946949} + 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!114 &3031587386220250052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5222799222392946949} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 54b828d414a20a74b92a3ec43f78f187, type: 3} + m_Name: + m_EditorClassIdentifier: + __alchemySerializationData_Alchemy_Tests_Inspector_InheritedSerializeTestBase1: + set: + isCreated: 1 + data: + unityObjectReferences: [] + __alchemySerializationData_Alchemy_Tests_Inspector_InheritedSerializeTest: + nullableInt: + isCreated: 1 + data: + unityObjectReferences: [] diff --git a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta similarity index 59% rename from tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta index 19b0a74..939db79 100644 --- a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: f6c2eb57b7364ab7bf3a47509dcf2bb8 -AssemblyDefinitionImporter: +guid: 92130edeeb04cd74685a33fde9cf522d +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs new file mode 100644 index 0000000..389c4ac --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs @@ -0,0 +1,20 @@ +using System; +#if ALCHEMY_SUPPORT_SERIALIZATION +using System.Collections.Generic; +using Alchemy.Serialization; +#endif +using UnityEngine; + +namespace Alchemy.Tests.Inspector +{ +#if ALCHEMY_SUPPORT_SERIALIZATION + [ShowAlchemySerializationData] + [AlchemySerialize] +#endif + public partial class InheritedSerializeTestBase : MonoBehaviour + { +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerializeField, NonSerialized] HashSet set; +#endif + } +} diff --git a/Alchemy/Assets/Tests/InheritedSerializeTestBase.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs.meta similarity index 72% rename from Alchemy/Assets/Tests/InheritedSerializeTestBase.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs.meta index 7427156..6125a07 100644 --- a/Alchemy/Assets/Tests/InheritedSerializeTestBase.cs.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 guid: 74b376952c9a4c42a10525c553c6e044 -timeCreated: 1709000968 \ No newline at end of file +timeCreated: 1709000968 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs new file mode 100644 index 0000000..4df4220 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using UnityEngine; +using Alchemy.Inspector; + +namespace Alchemy.Tests.Inspector +{ + public class OnListViewChangedTest : MonoBehaviour + { + [OnListViewChanged( + OnItemChanged = nameof(OnItemChanged), + OnItemsAdded = nameof(OnItemsAdded), + OnItemsRemoved = nameof(OnItemsRemoved), + OnItemsChosen = nameof(OnItemChosen), + OnSelectionChanged = nameof(OnSelectionChanged), + OnSelectedIndicesChanged = nameof(OnSelectedIndicesChanged), + OnItemIndexChanged = nameof(OnItemIndexChanged)) + ] + public int[] array; + + void OnItemChanged(int index, int item) + { + Debug.Log($"Changed: [{index}] -> {item}"); + } + + void OnItemsAdded(IEnumerable indices) + { + Debug.Log($"Added: [{string.Join(',', indices)}]"); + } + + void OnItemsRemoved(IEnumerable indices) + { + Debug.Log($"Removed: [{string.Join(',', indices)}]"); + } + + void OnItemChosen(IEnumerable items) + { + Debug.Log($"Chosen: [{string.Join(',', items)}]"); + } + + void OnSelectionChanged(IEnumerable items) + { + Debug.Log($"Selection Changed: [{string.Join(',', items)}]"); + } + + void OnSelectedIndicesChanged(IEnumerable indices) + { + Debug.Log($"Selected: [{string.Join(',', indices)}]"); + } + + void OnItemIndexChanged(int before, int after) + { + Debug.Log($"Index Changed: [{before} -> {after}]"); + } + } +} diff --git a/Alchemy/Assets/Tests/OnListViewChangedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs.meta similarity index 100% rename from Alchemy/Assets/Tests/OnListViewChangedTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab new file mode 100644 index 0000000..5605d73 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4356503275768343251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9092919011565444363} + - component: {fileID: 3523619301899777067} + m_Layer: 0 + m_Name: OnListViewChangedTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9092919011565444363 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4356503275768343251} + 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!114 &3523619301899777067 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4356503275768343251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d611398f16e414b16ba99c1193a8dfa0, type: 3} + m_Name: + m_EditorClassIdentifier: + array: diff --git a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta similarity index 59% rename from tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta index 767f6d3..5ca29a8 100644 --- a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 095c64133a404eb9af9265b460083dc9 -AssemblyDefinitionImporter: +guid: c7b7c2a4b7b49e7469ae286eb97e2b0c +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs new file mode 100644 index 0000000..e0bfea1 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs @@ -0,0 +1,14 @@ +using Alchemy.Inspector; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.Inspector +{ + public class PreviewTest : MonoBehaviour + { + [Preview(64, Align.FlexStart)] public Sprite foo; + [Preview(64, Align.Center)] public Texture bar; + [Preview] public Material baz; + [Preview] public GameObject qux; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta new file mode 100644 index 0000000..2358ffe --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 76045b59dec5f463a999b2c69d27aa1c diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab new file mode 100644 index 0000000..95d5be0 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8607946750020547414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6619886384332225451} + - component: {fileID: 2067425521416687885} + m_Layer: 0 + m_Name: PreviewTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6619886384332225451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8607946750020547414} + 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!114 &2067425521416687885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8607946750020547414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76045b59dec5f463a999b2c69d27aa1c, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: {fileID: 0} + bar: {fileID: 0} + baz: {fileID: 0} + qux: {fileID: 0} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta new file mode 100644 index 0000000..9015890 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 960ccd2a3fee9b34fa6928d24c18d217 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs new file mode 100644 index 0000000..4494ed3 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.Inspector +{ + public class StringListTest : MonoBehaviour + { + [SerializeField] string field; + [SerializeField, DisableAlchemyEditor] string[] array; + [SerializeField] List list; + } +} diff --git a/Alchemy/Assets/Tests/StringListTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs.meta similarity index 100% rename from Alchemy/Assets/Tests/StringListTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab new file mode 100644 index 0000000..4740cf9 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab @@ -0,0 +1,49 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8400303875534487172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2413372843514478283} + - component: {fileID: 7117496326230039088} + m_Layer: 0 + m_Name: StringListTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2413372843514478283 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8400303875534487172} + 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!114 &7117496326230039088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8400303875534487172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f3b222b32d8a84a9dae8105896ce765e, type: 3} + m_Name: + m_EditorClassIdentifier: + field: + array: [] + list: [] diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta new file mode 100644 index 0000000..bccd649 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa04104122f6e7d49bcc23c3b7e04f6b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs new file mode 100644 index 0000000..7aa00b8 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs @@ -0,0 +1,20 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.Inspector +{ + public class UnsignedTest : MonoBehaviour + { + [Button] + public void TestUint(uint value) + { + Debug.Log("TestLong"); + } + + [Button] + public void TestULong(ulong value) + { + Debug.Log("TestULong"); + } + } +} diff --git a/Alchemy/Assets/Tests/UnsignedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs.meta similarity index 72% rename from Alchemy/Assets/Tests/UnsignedTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs.meta index da6f358..e9904c2 100644 --- a/Alchemy/Assets/Tests/UnsignedTest.cs.meta +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 guid: 8b9202060cef47b8a30b53a9f413fbcb -timeCreated: 1708998502 \ No newline at end of file +timeCreated: 1708998502 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab new file mode 100644 index 0000000..46f4113 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &438843158376338664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6259870180075704690} + - component: {fileID: 719592113703195252} + m_Layer: 0 + m_Name: UnsignedTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6259870180075704690 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 438843158376338664} + 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!114 &719592113703195252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 438843158376338664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9202060cef47b8a30b53a9f413fbcb, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta new file mode 100644 index 0000000..11b9fd0 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 17766bc05d2ded548a95ea458f9fc771 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json new file mode 100644 index 0000000..7f6f1fb --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json @@ -0,0 +1,9 @@ +{ + "name": "com.annulusgames.alchemy.inspector-test", + "version": "0.1.0", + "displayName": "Alchemy Inspector Tests", + "unity": "2021.2", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta new file mode 100644 index 0000000..54b4121 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6c81913b59584134b5ffc68c89b57d25 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Tests.meta b/tests/versions/Unity2022.3/Assets/Tests.meta deleted file mode 100644 index 80ac8d6..0000000 --- a/tests/versions/Unity2022.3/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 06ac2a7822d54d7188ac52dec7a052dc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity2022.3/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index 6dab647..0000000 --- a/tests/versions/Unity2022.3/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b4174972f97e4d36acea7d3115d50bd9 diff --git a/tests/versions/Unity2022.3/Packages/manifest.json b/tests/versions/Unity2022.3/Packages/manifest.json index c232a4d..d741cbe 100644 --- a/tests/versions/Unity2022.3/Packages/manifest.json +++ b/tests/versions/Unity2022.3/Packages/manifest.json @@ -1,11 +1,13 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity2022.3/Packages/packages-lock.json b/tests/versions/Unity2022.3/Packages/packages-lock.json index e6225e4..12f6d58 100644 --- a/tests/versions/Unity2022.3/Packages/packages-lock.json +++ b/tests/versions/Unity2022.3/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, diff --git a/tests/versions/Unity2022.3/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity2022.3/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..c0fd196 --- /dev/null +++ b/tests/versions/Unity2022.3/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -836 + m_OriginalInstanceId: -838 + m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.0/Assets/Tests.meta b/tests/versions/Unity6000.0/Assets/Tests.meta deleted file mode 100644 index 67c9922..0000000 --- a/tests/versions/Unity6000.0/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9d0acd480c0d463a85aff5ec4e8233e0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity6000.0/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index 441383e..0000000 --- a/tests/versions/Unity6000.0/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 89950872099d4ff3a479b9305179cd61 diff --git a/tests/versions/Unity6000.0/Packages/manifest.json b/tests/versions/Unity6000.0/Packages/manifest.json index 2a23697..c139113 100644 --- a/tests/versions/Unity6000.0/Packages/manifest.json +++ b/tests/versions/Unity6000.0/Packages/manifest.json @@ -1,12 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.0/Packages/packages-lock.json b/tests/versions/Unity6000.0/Packages/packages-lock.json index cb9d035..e73c9a3 100644 --- a/tests/versions/Unity6000.0/Packages/packages-lock.json +++ b/tests/versions/Unity6000.0/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, diff --git a/tests/versions/Unity6000.3/Assets/Tests.meta b/tests/versions/Unity6000.3/Assets/Tests.meta deleted file mode 100644 index edaaefb..0000000 --- a/tests/versions/Unity6000.3/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 92d1c5a3726d44b5a2eba6ffdb98ee65 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity6000.3/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index a0f5c55..0000000 --- a/tests/versions/Unity6000.3/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 43b64039296d463883a107c697b436bb diff --git a/tests/versions/Unity6000.3/Packages/manifest.json b/tests/versions/Unity6000.3/Packages/manifest.json index 2a23697..c139113 100644 --- a/tests/versions/Unity6000.3/Packages/manifest.json +++ b/tests/versions/Unity6000.3/Packages/manifest.json @@ -1,12 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.3/Packages/packages-lock.json b/tests/versions/Unity6000.3/Packages/packages-lock.json index a8a9ca2..1b916e6 100644 --- a/tests/versions/Unity6000.3/Packages/packages-lock.json +++ b/tests/versions/Unity6000.3/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, diff --git a/tests/versions/Unity6000.4/Assets/Tests.meta b/tests/versions/Unity6000.4/Assets/Tests.meta deleted file mode 100644 index edaaefb..0000000 --- a/tests/versions/Unity6000.4/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 92d1c5a3726d44b5a2eba6ffdb98ee65 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity6000.4/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index a0f5c55..0000000 --- a/tests/versions/Unity6000.4/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 43b64039296d463883a107c697b436bb diff --git a/tests/versions/Unity6000.4/Packages/manifest.json b/tests/versions/Unity6000.4/Packages/manifest.json index 1817a66..9b7e835 100644 --- a/tests/versions/Unity6000.4/Packages/manifest.json +++ b/tests/versions/Unity6000.4/Packages/manifest.json @@ -1,6 +1,7 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.inputsystem": "1.19.0", "com.unity.serialization": "3.1.5", @@ -8,6 +9,7 @@ "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.4/Packages/packages-lock.json b/tests/versions/Unity6000.4/Packages/packages-lock.json index 1b0f5a1..6cf622b 100644 --- a/tests/versions/Unity6000.4/Packages/packages-lock.json +++ b/tests/versions/Unity6000.4/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, diff --git a/tests/versions/Unity6000.5/Assets/Tests.meta b/tests/versions/Unity6000.5/Assets/Tests.meta deleted file mode 100644 index 6c8b8f5..0000000 --- a/tests/versions/Unity6000.5/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1b0f30b8081647fab83b3222929a09fe -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta deleted file mode 100644 index 0224c45..0000000 --- a/tests/versions/Unity6000.5/Assets/Tests/Alchemy.Tests.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 089ec27ad92545268b864beecfaa2d8c -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index ca5f61e..0000000 --- a/tests/versions/Unity6000.5/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 73fb4c4380d843f2a04b0e90042ee677 diff --git a/tests/versions/Unity6000.5/Packages/manifest.json b/tests/versions/Unity6000.5/Packages/manifest.json index 2a23697..c139113 100644 --- a/tests/versions/Unity6000.5/Packages/manifest.json +++ b/tests/versions/Unity6000.5/Packages/manifest.json @@ -1,12 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.5/Packages/packages-lock.json b/tests/versions/Unity6000.5/Packages/packages-lock.json index b57586c..a815005 100644 --- a/tests/versions/Unity6000.5/Packages/packages-lock.json +++ b/tests/versions/Unity6000.5/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, diff --git a/tests/versions/Unity6000.7/Assets/Tests.meta b/tests/versions/Unity6000.7/Assets/Tests.meta deleted file mode 100644 index b4b2e31..0000000 --- a/tests/versions/Unity6000.7/Assets/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 55389ca5794a47f59e526c937c4cd4c8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef deleted file mode 100644 index c6ff34a..0000000 --- a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Alchemy.Project.Tests", - "rootNamespace": "", - "references": [ - "Alchemy", - "Alchemy.Tests" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} diff --git a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta b/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta deleted file mode 100644 index d6c5473..0000000 --- a/tests/versions/Unity6000.7/Assets/Tests/Alchemy.Tests.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 153018fa65af4c0db6e4eaf4c1561b4d -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs deleted file mode 100644 index e4f0471..0000000 --- a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Alchemy.Project.Tests -{ - internal static class TestAssemblyReference - { - } -} diff --git a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta b/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta deleted file mode 100644 index 8b3e443..0000000 --- a/tests/versions/Unity6000.7/Assets/Tests/TestAssemblyReference.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 1be9b72d2a6b43f4a74c8f7f39aabf2f diff --git a/tests/versions/Unity6000.7/Packages/manifest.json b/tests/versions/Unity6000.7/Packages/manifest.json index 2a23697..c139113 100644 --- a/tests/versions/Unity6000.7/Packages/manifest.json +++ b/tests/versions/Unity6000.7/Packages/manifest.json @@ -1,12 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", + "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ + "com.annulusgames.alchemy.inspector-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.7/Packages/packages-lock.json b/tests/versions/Unity6000.7/Packages/packages-lock.json index 96b6b05..7da0cd7 100644 --- a/tests/versions/Unity6000.7/Packages/packages-lock.json +++ b/tests/versions/Unity6000.7/Packages/packages-lock.json @@ -6,6 +6,14 @@ "source": "local", "dependencies": {} }, + "com.annulusgames.alchemy.inspector-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.test-framework": "1.1.31" + } + }, "com.annulusgames.alchemy.test": { "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "depth": 0, From d560748104609a25b684dd1522ed31c974cf1de0 Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Thu, 30 Jul 2026 18:33:07 +0900 Subject: [PATCH 03/15] test: capture inspectors --- Alchemy/Assets/Scenes.meta | 8 + Alchemy/Assets/Scenes/SampleScene.unity | 407 ++++++++++ Alchemy/Assets/Scenes/SampleScene.unity.meta | 7 + tests/.gitignore | 1 + .../Alchemy.Tests.Inspector/Pipeline.meta | 8 + .../Pipeline/Alchemy.Tests.Pipeline.asmdef | 26 + .../Alchemy.Tests.Pipeline.asmdef.meta | 7 + .../Pipeline/InspectorCaptureCommands.cs | 733 ++++++++++++++++++ .../Pipeline/InspectorCaptureCommands.cs.meta | 11 + tests/UnityTestRunner/Exceptions.cs | 7 +- tests/UnityTestRunner/ProcessRunner.cs | 64 +- tests/UnityTestRunner/UnityCli.cs | 404 ++++++++++ tests/UnityTestRunner/UnityEditorLifecycle.cs | 223 ++++++ tests/UnityTestRunner/UnityInspectorTest.cs | 324 ++++++++ .../UnityInspectorVersionTests.cs | 83 ++ tests/UnityTestRunner/UnityTest.cs | 49 +- ...39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity | 341 ++++++++ ...49f-4d09-4f39-8198-9d1bb63e8d9c.unity.meta | 7 + tests/versions/Unity2022.3/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/versions/Unity6000.0/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/versions/Unity6000.3/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/versions/Unity6000.4/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/versions/Unity6000.5/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + tests/versions/Unity6000.7/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 407 ++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + 36 files changed, 5197 insertions(+), 45 deletions(-) create mode 100644 Alchemy/Assets/Scenes.meta create mode 100644 Alchemy/Assets/Scenes/SampleScene.unity create mode 100644 Alchemy/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/.gitignore create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta create mode 100644 tests/UnityTestRunner/UnityEditorLifecycle.cs create mode 100644 tests/UnityTestRunner/UnityInspectorTest.cs create mode 100644 tests/UnityTestRunner/UnityInspectorVersionTests.cs create mode 100644 tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity create mode 100644 tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity.meta create mode 100644 tests/versions/Unity2022.3/Assets/Scenes.meta create mode 100644 tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/versions/Unity6000.0/Assets/Scenes.meta create mode 100644 tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/versions/Unity6000.3/Assets/Scenes.meta create mode 100644 tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/versions/Unity6000.4/Assets/Scenes.meta create mode 100644 tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/versions/Unity6000.5/Assets/Scenes.meta create mode 100644 tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity.meta create mode 100644 tests/versions/Unity6000.7/Assets/Scenes.meta create mode 100644 tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity create mode 100644 tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity.meta diff --git a/Alchemy/Assets/Scenes.meta b/Alchemy/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/Alchemy/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Scenes/SampleScene.unity b/Alchemy/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/Alchemy/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Alchemy/Assets/Scenes/SampleScene.unity.meta b/Alchemy/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/Alchemy/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..c6e5ce0 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +/captures/ diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta new file mode 100644 index 0000000..e591b0c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3adacf95146445ce85dfb5e51442fdf4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef new file mode 100644 index 0000000..2c0bd0b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef @@ -0,0 +1,26 @@ +{ + "name": "Alchemy.Tests.Pipeline", + "rootNamespace": "Alchemy.Tests.Pipeline", + "references": [ + "GUID:71e9815631ba2574b92564e93b8efc9c" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [ + "ALCHEMY_SUPPORT_PIPELINE" + ], + "versionDefines": [ + { + "name": "com.unity.pipeline", + "expression": "", + "define": "ALCHEMY_SUPPORT_PIPELINE" + } + ], + "noEngineReferences": false +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta new file mode 100644 index 0000000..7bce141 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e91afd8bc7334bd2b0853eaa161d8d54 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs new file mode 100644 index 0000000..d66b0b1 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs @@ -0,0 +1,733 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using Unity.Pipeline.Commands; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using Object = UnityEngine.Object; + +namespace Alchemy.Tests.Pipeline +{ + [InitializeOnLoad] + internal static class InspectorCaptureCommands + { + const string InspectorTestPackage = + "Packages/com.annulusgames.alchemy.inspector-test"; + const double SettleSeconds = 1d; + const double PostRepaintSeconds = 0.25d; + const int MaximumDimension = 4096; + const float WindowX = 80f; + const float WindowY = 80f; + + static readonly object Gate = new object(); + + static CaptureOperation operation; + static InspectorCaptureResult lastResult = + InspectorCaptureResult.CreateIdle(); + + static InspectorCaptureCommands() + { + AssemblyReloadEvents.beforeAssemblyReload += CleanupBeforeReload; + } + + [CliCommand( + "alchemy_inspector_capture_start", + "Open an Inspector for a prefab, expand its contents, and capture it to a PNG.", + MainThreadRequired = true)] + static InspectorCaptureResult Start( + [CliArg( + "prefab", + "Inspector test prefab name or package asset path.", + Required = true)] + string prefab = "", + [CliArg( + "output", + "Output PNG path, absolute or relative to the Unity project.", + Required = true)] + string output = "", + [CliArg("width", "Capture width in pixels.")] + int width = 640, + [CliArg("height", "Capture height in pixels.")] + int height = 900) + { + if (operation != null) + { + return InspectorCaptureResult.CreateFailure( + operation.JobId, + "An Inspector capture is already running."); + } + + ValidateDimensions(width, height); + var prefabPath = ResolvePrefabPath(prefab); + var outputPath = ResolveOutputPath(output); + var prefabAsset = AssetDatabase.LoadAssetAtPath(prefabPath); + if (prefabAsset == null) + { + throw new FileNotFoundException( + $"Inspector test prefab was not found: {prefabPath}", + prefabPath); + } + + CaptureOperation pending = null; + GameObject root = null; + EditorWindow window = null; + var previousSelection = Selection.objects; + var previousActiveObject = Selection.activeObject; + try + { + root = PrefabUtility.LoadPrefabContents(prefabPath); + Selection.activeGameObject = root; + ExpandInspector(root, null); + + window = CreateInspectorWindow(width, height); + pending = new CaptureOperation( + Guid.NewGuid().ToString("N"), + prefabPath, + outputPath, + width, + height, + root, + window, + previousSelection, + previousActiveObject, + EditorApplication.timeSinceStartup + SettleSeconds); + operation = pending; + SetLastResult(InspectorCaptureResult.CreateRunning(pending)); + EditorApplication.update += UpdateCapture; + return SnapshotLastResult(); + } + catch + { + if (window != null) + { + window.Close(); + } + + Selection.activeObject = null; + if (root != null) + { + PrefabUtility.UnloadPrefabContents(root); + } + + Selection.objects = previousSelection; + if (previousActiveObject != null) + { + Selection.activeObject = previousActiveObject; + } + operation = null; + throw; + } + } + + [CliCommand( + "alchemy_inspector_capture_status", + "Return the current or most recent Inspector capture status.", + MainThreadRequired = false)] + static InspectorCaptureResult Status( + [CliArg("job_id", "Capture job identifier returned by start.")] + string jobId = "") + { + var result = SnapshotLastResult(); + if (!string.IsNullOrWhiteSpace(jobId) && + !string.Equals( + jobId, + result.JobId, + StringComparison.Ordinal)) + { + return InspectorCaptureResult.CreateFailure( + jobId, + $"Inspector capture job '{jobId}' was not found."); + } + + return result; + } + + [CliCommand( + "alchemy_inspector_capture_cancel", + "Cancel the active Inspector capture and restore the Editor state.", + MainThreadRequired = true)] + static InspectorCaptureResult Cancel( + [CliArg( + "job_id", + "Capture job identifier returned by start.", + Required = true)] + string jobId = "") + { + var current = operation; + if (current == null || + !string.Equals( + current.JobId, + jobId, + StringComparison.Ordinal)) + { + return InspectorCaptureResult.CreateFailure( + jobId, + $"Inspector capture job '{jobId}' is not running."); + } + + EditorApplication.update -= UpdateCapture; + operation = null; + try + { + Cleanup(current); + } + catch (Exception exception) + { + Debug.LogException(exception); + var failed = InspectorCaptureResult.CreateFailure( + current.JobId, + $"Inspector capture cancellation cleanup failed: {exception.Message}"); + SetLastResult(failed); + throw; + } + + var canceled = InspectorCaptureResult.CreateCanceled(current.JobId); + SetLastResult(canceled); + return canceled; + } + + [CliCommand( + "alchemy_inspector_capture_close", + "Close an automated Editor session.", + MainThreadRequired = true)] + static InspectorCaptureResult Close( + [CliArg( + "force", + "Allow closing an Editor not launched with --auto-quit.")] + bool force = false) + { + if (operation != null) + { + return InspectorCaptureResult.CreateFailure( + operation.JobId, + "The Editor cannot close while an Inspector capture is running."); + } + + if (!force && + !Environment.GetCommandLineArgs().Contains("--auto-quit")) + { + return InspectorCaptureResult.CreateFailure( + "", + "The Editor was not launched with --auto-quit."); + } + + EditorApplication.delayCall += () => EditorApplication.Exit(0); + return new InspectorCaptureResult + { + Status = "closing", + Success = true, + Message = "The automated Editor session is closing.", + }; + } + + static void UpdateCapture() + { + var current = operation; + if (current == null) + { + EditorApplication.update -= UpdateCapture; + return; + } + + try + { + if (EditorApplication.isCompiling || + EditorApplication.isUpdating) + { + current.CaptureAfter = + EditorApplication.timeSinceStartup + SettleSeconds; + current.CaptureReadyAfter = 0d; + return; + } + + if (EditorApplication.timeSinceStartup < current.CaptureAfter) + { + current.Window.position = new Rect( + WindowX, + WindowY, + current.Width, + current.Height); + ExpandInspector(current.Root, current.Window); + current.Window.titleContent = + new GUIContent("Inspector"); + current.Window.Focus(); + current.Window.Repaint(); + EditorApplication.QueuePlayerLoopUpdate(); + current.CaptureReadyAfter = 0d; + return; + } + + if (current.CaptureReadyAfter <= 0d) + { + current.Window.position = new Rect( + WindowX, + WindowY, + current.Width, + current.Height); + ExpandInspector(current.Root, current.Window); + current.Window.titleContent = + new GUIContent("Inspector"); + current.Window.Focus(); + current.Window.Repaint(); + EditorApplication.QueuePlayerLoopUpdate(); + current.CaptureReadyAfter = + EditorApplication.timeSinceStartup + + PostRepaintSeconds; + return; + } + + if (EditorApplication.timeSinceStartup < + current.CaptureReadyAfter) + { + return; + } + + var result = Capture(current); + Complete(current, result); + } + catch (Exception exception) + { + Fail(current, exception); + } + } + + static InspectorCaptureResult Capture(CaptureOperation current) + { + var rect = current.Window.position; + var width = Mathf.RoundToInt(rect.width); + var height = Mathf.RoundToInt(rect.height); + if (width != current.Width || height != current.Height) + { + throw new InvalidOperationException( + $"Inspector window size was {width}x{height}; " + + $"expected {current.Width}x{current.Height}."); + } + + var origin = new Vector2( + Mathf.Round(rect.x), + Mathf.Round(rect.y)); + var pixels = UnityEditorInternal.InternalEditorUtility.ReadScreenPixel( + origin, + width, + height); + if (pixels == null || pixels.Length != width * height) + { + throw new InvalidOperationException( + $"Expected {width * height} pixels but received " + + $"{(pixels == null ? 0 : pixels.Length)}."); + } + + var texture = new Texture2D( + width, + height, + TextureFormat.RGB24, + false); + try + { + texture.SetPixels(pixels); + texture.Apply(false, false); + var png = texture.EncodeToPNG(); + var directory = Path.GetDirectoryName(current.OutputPath); + if (string.IsNullOrWhiteSpace(directory)) + { + throw new InvalidOperationException( + $"Could not determine the output directory for " + + $"'{current.OutputPath}'."); + } + + Directory.CreateDirectory(directory); + File.WriteAllBytes(current.OutputPath, png); + return InspectorCaptureResult.CreateCompleted( + current, + png.Length); + } + finally + { + Object.DestroyImmediate(texture); + } + } + + static void Complete( + CaptureOperation current, + InspectorCaptureResult result) + { + EditorApplication.update -= UpdateCapture; + operation = null; + try + { + Cleanup(current); + SetLastResult(result); + } + catch (Exception exception) + { + Debug.LogException(exception); + SetLastResult(InspectorCaptureResult.CreateFailure( + current.JobId, + $"Inspector capture cleanup failed: {exception.Message}")); + } + } + + static void Fail( + CaptureOperation current, + Exception captureException) + { + EditorApplication.update -= UpdateCapture; + operation = null; + Debug.LogException(captureException); + + Exception cleanupException = null; + try + { + Cleanup(current); + } + catch (Exception exception) + { + cleanupException = exception; + Debug.LogException(exception); + } + + var message = cleanupException == null + ? captureException.Message + : $"{captureException.Message} Cleanup also failed: " + + cleanupException.Message; + SetLastResult(InspectorCaptureResult.CreateFailure( + current.JobId, + message)); + } + + static EditorWindow CreateInspectorWindow( + int width, + int height) + { + var inspectorType = typeof(EditorWindow).Assembly.GetType( + "UnityEditor.InspectorWindow", + true); + var window = (EditorWindow)ScriptableObject.CreateInstance( + inspectorType); + window.titleContent = new GUIContent("Inspector"); + var size = new Vector2(width, height); + window.minSize = size; + window.maxSize = size; + window.Show(); + window.position = new Rect( + WindowX, + WindowY, + width, + height); + + var lockProperty = inspectorType.GetProperty( + "isLocked", + BindingFlags.Instance | + BindingFlags.Public | + BindingFlags.NonPublic); + lockProperty?.SetValue(window, true); + window.titleContent = new GUIContent("Inspector"); + window.Focus(); + window.Repaint(); + return window; + } + + static void ExpandInspector( + GameObject root, + EditorWindow window) + { + foreach (var component in root.GetComponents()) + { + if (component == null) + { + continue; + } + + UnityEditorInternal.InternalEditorUtility + .SetIsInspectorExpanded(component, true); + var serializedObject = new SerializedObject(component); + var property = serializedObject.GetIterator(); + var hasProperty = property.NextVisible(true); + while (hasProperty) + { + property.isExpanded = true; + hasProperty = property.NextVisible(true); + } + } + + if (window == null) + { + return; + } + + var pending = new Stack(); + pending.Push(window.rootVisualElement); + while (pending.Count > 0) + { + var element = pending.Pop(); + if (element is Foldout foldout) + { + foldout.SetValueWithoutNotify(true); + } + + for (var index = 0; + index < element.hierarchy.childCount; + index++) + { + pending.Push(element.hierarchy[index]); + } + } + } + + static string ResolvePrefabPath(string prefab) + { + if (string.IsNullOrWhiteSpace(prefab)) + { + throw new ArgumentException( + "A prefab name or asset path is required.", + nameof(prefab)); + } + + var value = prefab.Replace('\\', '/'); + if (!value.EndsWith( + ".prefab", + StringComparison.OrdinalIgnoreCase)) + { + value += ".prefab"; + } + + return value.Contains("/") + ? value + : $"{InspectorTestPackage}/{value}"; + } + + static string ResolveOutputPath(string output) + { + if (string.IsNullOrWhiteSpace(output)) + { + throw new ArgumentException( + "An output PNG path is required.", + nameof(output)); + } + + var path = Path.IsPathRooted(output) + ? output + : Path.Combine( + Path.GetDirectoryName(Application.dataPath), + output); + path = Path.GetFullPath(path); + if (!string.Equals( + Path.GetExtension(path), + ".png", + StringComparison.OrdinalIgnoreCase)) + { + throw new ArgumentException( + $"Inspector capture output must be a PNG path: {path}", + nameof(output)); + } + + return path; + } + + static void ValidateDimensions(int width, int height) + { + if (width <= 0 || + height <= 0 || + width > MaximumDimension || + height > MaximumDimension) + { + throw new ArgumentOutOfRangeException( + nameof(width), + $"Inspector capture dimensions must be between 1 and " + + $"{MaximumDimension}: {width}x{height}."); + } + } + + static void Cleanup(CaptureOperation current) + { + if (current.Window != null) + { + current.Window.Close(); + } + + Selection.activeObject = null; + if (current.Root != null) + { + PrefabUtility.UnloadPrefabContents(current.Root); + } + + Selection.objects = current.PreviousSelection; + if (current.PreviousActiveObject != null) + { + Selection.activeObject = current.PreviousActiveObject; + } + } + + static void CleanupBeforeReload() + { + var current = operation; + if (current == null) + { + return; + } + + EditorApplication.update -= UpdateCapture; + operation = null; + Cleanup(current); + SetLastResult(InspectorCaptureResult.CreateFailure( + current.JobId, + "Inspector capture was interrupted by an assembly reload.")); + } + + static void SetLastResult(InspectorCaptureResult result) + { + lock (Gate) + { + lastResult = result; + } + } + + static InspectorCaptureResult SnapshotLastResult() + { + lock (Gate) + { + return lastResult.Copy(); + } + } + + sealed class CaptureOperation + { + public CaptureOperation( + string jobId, + string prefabPath, + string outputPath, + int width, + int height, + GameObject root, + EditorWindow window, + Object[] previousSelection, + Object previousActiveObject, + double captureAfter) + { + JobId = jobId; + PrefabPath = prefabPath; + OutputPath = outputPath; + Width = width; + Height = height; + Root = root; + Window = window; + PreviousSelection = previousSelection; + PreviousActiveObject = previousActiveObject; + CaptureAfter = captureAfter; + } + + public string JobId { get; } + public string PrefabPath { get; } + public string OutputPath { get; } + public int Width { get; } + public int Height { get; } + public GameObject Root { get; } + public EditorWindow Window { get; } + public Object[] PreviousSelection { get; } + public Object PreviousActiveObject { get; } + public double CaptureAfter { get; set; } + public double CaptureReadyAfter { get; set; } + } + + sealed class InspectorCaptureResult + { + public string JobId { get; set; } + public string Status { get; set; } + public bool Success { get; set; } + public string Message { get; set; } + public string PrefabPath { get; set; } + public string Path { get; set; } + public int Width { get; set; } + public int Height { get; set; } + public int Bytes { get; set; } + + public InspectorCaptureResult Copy() + { + return new InspectorCaptureResult + { + JobId = JobId, + Status = Status, + Success = Success, + Message = Message, + PrefabPath = PrefabPath, + Path = Path, + Width = Width, + Height = Height, + Bytes = Bytes, + }; + } + + public static InspectorCaptureResult CreateIdle() + { + return new InspectorCaptureResult + { + Status = "idle", + Success = true, + Message = "No Inspector capture has run.", + }; + } + + public static InspectorCaptureResult CreateRunning( + CaptureOperation current) + { + return new InspectorCaptureResult + { + JobId = current.JobId, + Status = "running", + Success = true, + Message = "Inspector capture is settling.", + PrefabPath = current.PrefabPath, + Path = current.OutputPath, + Width = current.Width, + Height = current.Height, + }; + } + + public static InspectorCaptureResult CreateCompleted( + CaptureOperation current, + int bytes) + { + return new InspectorCaptureResult + { + JobId = current.JobId, + Status = "completed", + Success = true, + Message = "Inspector capture completed.", + PrefabPath = current.PrefabPath, + Path = current.OutputPath, + Width = current.Width, + Height = current.Height, + Bytes = bytes, + }; + } + + public static InspectorCaptureResult CreateCanceled( + string jobId) + { + return new InspectorCaptureResult + { + JobId = jobId, + Status = "canceled", + Success = false, + Message = "Inspector capture was canceled.", + }; + } + + public static InspectorCaptureResult CreateFailure( + string jobId, + string message) + { + return new InspectorCaptureResult + { + JobId = jobId, + Status = "failed", + Success = false, + Message = message, + }; + } + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta new file mode 100644 index 0000000..84bbd71 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a7e197fb36dd4d1696e6754cf6d48ccc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/UnityTestRunner/Exceptions.cs b/tests/UnityTestRunner/Exceptions.cs index e160e55..754259f 100644 --- a/tests/UnityTestRunner/Exceptions.cs +++ b/tests/UnityTestRunner/Exceptions.cs @@ -22,6 +22,11 @@ public sealed class ReportException( Exception? innerException = null) : UnityTestException(message, innerException); -public sealed class ProcessExecutionException( +public class ProcessExecutionException( string message, Exception? innerException = null) : Exception(message, innerException); + +public sealed class ProcessStartException( + string message, + Exception? innerException = null) + : ProcessExecutionException(message, innerException); diff --git a/tests/UnityTestRunner/ProcessRunner.cs b/tests/UnityTestRunner/ProcessRunner.cs index 82d8f68..efca855 100644 --- a/tests/UnityTestRunner/ProcessRunner.cs +++ b/tests/UnityTestRunner/ProcessRunner.cs @@ -6,6 +6,8 @@ namespace Alchemy.UnityTestRunner; public interface IProcessRunner { Task RunAsync(ProcessSpec specification, CancellationToken cancellationToken); + + Process Start(ProcessSpec specification); } public sealed class ProcessRunner : IProcessRunner @@ -23,23 +25,11 @@ public async Task RunAsync(ProcessSpec specification, Cancellatio using var process = new Process { - StartInfo = CreateStartInfo(specification), + StartInfo = CreateStartInfo(specification, redirectOutput: true), EnableRaisingEvents = true, }; - try - { - if (!process.Start()) - { - throw new ProcessExecutionException($"Unable to start process '{specification.FileName}'."); - } - } - catch (Win32Exception exception) - { - throw new ProcessExecutionException( - $"Unable to start process '{specification.FileName}'.", - exception); - } + Start(process, specification.FileName); WindowsProcessJob? processJob; try @@ -64,6 +54,26 @@ public async Task RunAsync(ProcessSpec specification, Cancellatio } } + public Process Start(ProcessSpec specification) + { + var process = new Process + { + StartInfo = CreateStartInfo(specification, redirectOutput: false), + EnableRaisingEvents = true, + }; + + try + { + Start(process, specification.FileName); + return process; + } + catch + { + process.Dispose(); + throw; + } + } + private static async Task WaitForExitAsync( Process process, ProcessSpec specification, @@ -102,7 +112,9 @@ private static async Task WaitForExitAsync( await standardError); } - private static ProcessStartInfo CreateStartInfo(ProcessSpec specification) + private static ProcessStartInfo CreateStartInfo( + ProcessSpec specification, + bool redirectOutput) { var startInfo = new ProcessStartInfo { @@ -110,8 +122,8 @@ private static ProcessStartInfo CreateStartInfo(ProcessSpec specification) WorkingDirectory = specification.WorkingDirectory ?? Environment.CurrentDirectory, UseShellExecute = false, CreateNoWindow = true, - RedirectStandardOutput = true, - RedirectStandardError = true, + RedirectStandardOutput = redirectOutput, + RedirectStandardError = redirectOutput, }; // ArgumentList preserves argument boundaries across Windows, macOS, and Unix shells. @@ -123,6 +135,24 @@ private static ProcessStartInfo CreateStartInfo(ProcessSpec specification) return startInfo; } + private static void Start(Process process, string fileName) + { + try + { + if (!process.Start()) + { + throw new ProcessStartException( + $"Unable to start process '{fileName}'."); + } + } + catch (Win32Exception exception) + { + throw new ProcessStartException( + $"Unable to start process '{fileName}'.", + exception); + } + } + private static void TryKill(Process process) { if (!process.HasExited) diff --git a/tests/UnityTestRunner/UnityCli.cs b/tests/UnityTestRunner/UnityCli.cs index eefa56b..aa29d6b 100644 --- a/tests/UnityTestRunner/UnityCli.cs +++ b/tests/UnityTestRunner/UnityCli.cs @@ -4,6 +4,12 @@ namespace Alchemy.UnityTestRunner; public sealed class UnityCli { + private static readonly TimeSpan CommandTimeout = TimeSpan.FromMinutes(1); + private static readonly JsonSerializerOptions JsonOptions = new() + { + PropertyNameCaseInsensitive = true, + }; + private readonly IProcessRunner processRunner; public UnityCli(IProcessRunner processRunner) @@ -73,6 +79,385 @@ public async Task ResolveEditorPathAsync(UnityProject project, Cancellat return editorPath; } + internal async Task FindConnectedEditorAsync( + UnityProject project, + CancellationToken cancellationToken) + { + var result = await RunCliAsync( + [ + "--no-banner", + "status", + "--project-path", + project.ProjectPath, + "--format", + "json", + ], + cancellationToken); + if (result.ExitCode != 0) + { + if (HasErrorCode( + result.StandardOutput, + "STATUS_NO_INSTANCES") || + HasErrorCode( + result.StandardOutput, + "STATUS_ALL_UNREACHABLE")) + { + return null; + } + + throw new UnityExecutionException( + $"Could not query connected Unity Editors for " + + $"{project.EditorVersion}: {GetDiagnostic(result)}"); + } + + using var document = JsonDocument.Parse(result.StandardOutput); + var instances = document.RootElement + .GetProperty("data") + .GetProperty("instances"); + foreach (var instance in instances.EnumerateArray()) + { + var projectPath = instance.GetProperty("project").GetString(); + if (!PathsEqual(project.ProjectPath, projectPath)) + { + continue; + } + + return new ConnectedUnityEditor( + instance.GetProperty("pid").GetInt32(), + instance.GetProperty("state").GetString() ?? "", + instance.GetProperty("version").GetString() ?? ""); + } + + return null; + } + + internal async Task OpenEditorAsync( + UnityProject project, + string logPath, + CancellationToken cancellationToken) + { + var editorArguments = + $"-automated --auto-quit -logFile \"{logPath}\""; + using var launcher = processRunner.Start( + new ProcessSpec( + "unity", + [ + "--no-banner", + "--non-interactive", + "open", + project.ProjectPath, + "--editor-version", + project.EditorVersion, + "--args", + editorArguments, + "--format", + "json", + ], + project.ProjectPath)); + try + { + var deadline = DateTimeOffset.UtcNow + CommandTimeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + var editor = await FindConnectedEditorAsync( + project, + cancellationToken); + if (editor is not null) + { + return editor; + } + + if (launcher.HasExited && launcher.ExitCode != 0) + { + throw new UnityExecutionException( + $"Could not open Unity {project.EditorVersion}; " + + $"the Unity CLI exited with code {launcher.ExitCode}."); + } + + await Task.Delay( + TimeSpan.FromMilliseconds(500), + cancellationToken); + } + + throw new UnityExecutionException( + $"Unity {project.EditorVersion} did not start within " + + $"{CommandTimeout}."); + } + finally + { + if (!launcher.HasExited) + { + launcher.Kill(entireProcessTree: false); + await launcher.WaitForExitAsync(CancellationToken.None); + } + } + } + + internal async Task WaitUntilReadyAsync( + UnityProject project, + TimeSpan timeout, + CancellationToken cancellationToken) + { + var deadline = DateTimeOffset.UtcNow + timeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + var editor = await FindConnectedEditorAsync( + project, + cancellationToken); + if (editor is not null && + string.Equals( + editor.State, + "ready", + StringComparison.OrdinalIgnoreCase)) + { + return editor; + } + + await Task.Delay(TimeSpan.FromMilliseconds(500), cancellationToken); + } + + throw new UnityExecutionException( + $"Unity {project.EditorVersion} did not become ready within " + + $"{timeout}."); + } + + internal async Task WaitForCommandAsync( + UnityProject project, + string command, + TimeSpan timeout, + CancellationToken cancellationToken) + { + var deadline = DateTimeOffset.UtcNow + timeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + if (await HasCommandAsync( + project, + command, + cancellationToken)) + { + return; + } + + await Task.Delay(TimeSpan.FromMilliseconds(500), cancellationToken); + } + + throw new UnityExecutionException( + $"Unity {project.EditorVersion} did not register Pipeline command " + + $"'{command}' within {timeout}."); + } + + internal async Task FocusEditorAsync( + UnityProject project, + CancellationToken cancellationToken) + { + var result = await RunCommandAsync( + project, + "editor_focus", + [], + cancellationToken); + if (result.ValueKind == JsonValueKind.String && + result.GetString()?.StartsWith( + "Error:", + StringComparison.Ordinal) == true) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} could not be focused: " + + result.GetString()); + } + } + + internal async Task RunCommandAsync( + UnityProject project, + string command, + IReadOnlyList commandArguments, + CancellationToken cancellationToken) + { + var arguments = new List + { + "--no-banner", + "command", + command, + "--project-path", + project.ProjectPath, + "--timeout", + ((int)CommandTimeout.TotalSeconds).ToString( + System.Globalization.CultureInfo.InvariantCulture), + "--format", + "json", + }; + arguments.AddRange(commandArguments); + + var result = await RunCliAsync(arguments, cancellationToken); + if (result.ExitCode != 0) + { + throw new UnityExecutionException( + $"Unity Pipeline command '{command}' failed for " + + $"{project.EditorVersion}: {GetDiagnostic(result)}"); + } + + using var document = JsonDocument.Parse(result.StandardOutput); + var root = document.RootElement; + if (!root.GetProperty("success").GetBoolean()) + { + throw new UnityExecutionException( + $"Unity Pipeline command '{command}' failed for " + + $"{project.EditorVersion}: {GetErrors(root)}"); + } + + var data = root.GetProperty("data"); + if (!data.GetProperty("success").GetBoolean()) + { + throw new UnityExecutionException( + $"Unity Pipeline command '{command}' failed for " + + $"{project.EditorVersion}."); + } + + return data.GetProperty("result").Clone(); + } + + internal async Task ReadConsoleAsync( + UnityProject project, + string minimumLevel, + long since, + int tail, + CancellationToken cancellationToken) + { + var result = await RunCommandAsync( + project, + "console", + [ + "--level", + minimumLevel, + "--since", + since.ToString( + System.Globalization.CultureInfo.InvariantCulture), + "--tail", + tail.ToString( + System.Globalization.CultureInfo.InvariantCulture), + ], + cancellationToken); + return Deserialize(result); + } + + internal static T Deserialize(JsonElement element) + { + var value = element.Deserialize(JsonOptions); + if (value is null) + { + throw new UnityExecutionException( + $"Unity CLI returned an empty {typeof(T).Name}."); + } + + return value; + } + + private async Task HasCommandAsync( + UnityProject project, + string command, + CancellationToken cancellationToken) + { + var result = await RunCliAsync( + [ + "--no-banner", + "list", + "--project-path", + project.ProjectPath, + "--format", + "json", + ], + cancellationToken); + if (result.ExitCode != 0) + { + return false; + } + + using var document = JsonDocument.Parse(result.StandardOutput); + var tools = document.RootElement + .GetProperty("data") + .GetProperty("tools"); + return tools.EnumerateArray().Any(element => + string.Equals( + element.GetProperty("name").GetString(), + command, + StringComparison.Ordinal)); + } + + private async Task RunCliAsync( + IReadOnlyList arguments, + CancellationToken cancellationToken) + { + try + { + return await processRunner.RunAsync( + new ProcessSpec( + "unity", + arguments, + Timeout: CommandTimeout), + cancellationToken); + } + catch (ProcessStartException exception) + { + throw new UnityUnavailableException( + "The 'unity' command is required but was not found on PATH.", + exception); + } + } + + private static bool HasErrorCode(string output, string errorCode) + { + if (string.IsNullOrWhiteSpace(output)) + { + return false; + } + + using var document = JsonDocument.Parse(output); + if (!document.RootElement.TryGetProperty( + "errors", + out var errors)) + { + return false; + } + + return errors.EnumerateArray().Any(error => + string.Equals( + error.GetProperty("code").GetString(), + errorCode, + StringComparison.Ordinal)); + } + + private static string GetErrors(JsonElement root) + { + if (!root.TryGetProperty("errors", out var errors)) + { + return "No diagnostic was returned."; + } + + return string.Join( + Environment.NewLine, + errors.EnumerateArray().Select(error => + error.TryGetProperty("message", out var message) + ? message.GetString() + : error.ToString())); + } + + private static bool PathsEqual(string left, string? right) + { + if (string.IsNullOrWhiteSpace(right)) + { + return false; + } + + return string.Equals( + Path.TrimEndingDirectorySeparator(Path.GetFullPath(left)), + Path.TrimEndingDirectorySeparator(Path.GetFullPath(right)), + OperatingSystem.IsWindows() + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal); + } + private static string ReadEditorPath(string output, string editorVersion) { try @@ -107,3 +492,22 @@ private static string GetDiagnostic(ProcessResult result) return diagnostic.Trim(); } } + +internal sealed record ConnectedUnityEditor( + int ProcessId, + string State, + string EditorVersion); + +internal sealed class UnityConsoleSnapshot +{ + public List Entries { get; init; } = []; + public long Cursor { get; init; } +} + +internal sealed class UnityConsoleEntry +{ + public long Seq { get; init; } + public string Level { get; init; } = ""; + public string Message { get; init; } = ""; + public string StackTrace { get; init; } = ""; +} diff --git a/tests/UnityTestRunner/UnityEditorLifecycle.cs b/tests/UnityTestRunner/UnityEditorLifecycle.cs new file mode 100644 index 0000000..b572ab9 --- /dev/null +++ b/tests/UnityTestRunner/UnityEditorLifecycle.cs @@ -0,0 +1,223 @@ +using System.Diagnostics; + +namespace Alchemy.UnityTestRunner; + +internal sealed class UnityEditorLifecycle(UnityCli unityCli) +{ + private const string CloseCommand = "alchemy_inspector_capture_close"; + private static readonly TimeSpan ShutdownTimeout = + TimeSpan.FromSeconds(30); + + internal async Task CloseRunningAsync( + UnityProject project, + string editorPath, + Action writeProgress, + CancellationToken cancellationToken) + { + var connectedEditor = project.MajorVersion >= 6000 + ? await unityCli.FindConnectedEditorAsync( + project, + cancellationToken) + : null; + if (connectedEditor is not null) + { + writeProgress( + $"Preflight: closing existing Editor " + + $"{connectedEditor.ProcessId}..."); + await CloseProcessAsync( + connectedEditor.ProcessId, + writeProgress, + cancellationToken); + return; + } + + var processId = FindEditorProcess( + project, + GetEditorExecutable(editorPath)); + if (processId is null) + { + return; + } + + writeProgress($"Preflight: closing existing Editor {processId}..."); + await CloseProcessAsync( + processId.Value, + writeProgress, + cancellationToken); + } + + internal async Task CloseConnectedAsync( + UnityProject project, + int processId, + bool force, + Action writeProgress, + CancellationToken cancellationToken) + { + var close = UnityCli.Deserialize( + await unityCli.RunCommandAsync( + project, + CloseCommand, + force ? ["--force", "true"] : [], + cancellationToken)); + if (!close.Success || + !string.Equals( + close.Status, + "closing", + StringComparison.Ordinal)) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} refused to close: " + + close.Message); + } + + await WaitForExitOrTerminateAsync( + processId, + writeProgress, + cancellationToken); + } + + internal static string GetEditorExecutable(string editorPath) + { + if (OperatingSystem.IsWindows()) + { + return Path.Combine(editorPath, "Editor", "Unity.exe"); + } + + if (OperatingSystem.IsMacOS()) + { + return Path.Combine( + editorPath, + "Unity.app", + "Contents", + "MacOS", + "Unity"); + } + + return Path.Combine(editorPath, "Editor", "Unity"); + } + + internal static async Task CloseProcessAsync( + int processId, + Action writeProgress, + CancellationToken cancellationToken) + { + using var process = GetProcess(processId); + if (process is null) + { + return; + } + + if (!process.CloseMainWindow()) + { + process.Kill(entireProcessTree: true); + } + + await WaitForExitOrTerminateAsync( + process, + processId, + writeProgress, + cancellationToken); + } + + private static async Task WaitForExitOrTerminateAsync( + int processId, + Action writeProgress, + CancellationToken cancellationToken) + { + using var process = GetProcess(processId); + if (process is null) + { + writeProgress($"Preflight: Editor {processId} closed"); + return; + } + + await WaitForExitOrTerminateAsync( + process, + processId, + writeProgress, + cancellationToken); + } + + private static async Task WaitForExitOrTerminateAsync( + Process process, + int processId, + Action writeProgress, + CancellationToken cancellationToken) + { + using var timeoutCancellation = + CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + timeoutCancellation.CancelAfter(ShutdownTimeout); + try + { + await process.WaitForExitAsync(timeoutCancellation.Token); + writeProgress($"Preflight: Editor {processId} closed"); + } + catch (OperationCanceledException) when ( + !cancellationToken.IsCancellationRequested && + timeoutCancellation.IsCancellationRequested) + { + process.Kill(entireProcessTree: true); + await process.WaitForExitAsync(CancellationToken.None); + writeProgress( + $"Preflight: Editor {processId} did not close within " + + $"{ShutdownTimeout} and was terminated"); + } + } + + private static int? FindEditorProcess( + UnityProject project, + string executable) + { + var projectName = Path.GetFileName( + Path.TrimEndingDirectorySeparator(project.ProjectPath)); + var titlePrefix = $"{projectName} -"; + foreach (var process in Process.GetProcessesByName("Unity")) + { + using (process) + { + if (process.MainWindowHandle == IntPtr.Zero || + !process.MainWindowTitle.StartsWith( + titlePrefix, + StringComparison.Ordinal) || + process.MainModule?.FileName is not { } processPath || + !PathsEqual(executable, processPath)) + { + continue; + } + + return process.Id; + } + } + + return null; + } + + private static Process? GetProcess(int processId) + { + try + { + return Process.GetProcessById(processId); + } + catch (ArgumentException) + { + return null; + } + } + + private static bool PathsEqual(string left, string right) + { + return string.Equals( + Path.GetFullPath(left), + Path.GetFullPath(right), + OperatingSystem.IsWindows() + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal); + } + + private sealed class EditorCloseStatus + { + public string Status { get; init; } = ""; + public bool Success { get; init; } + public string Message { get; init; } = ""; + } +} diff --git a/tests/UnityTestRunner/UnityInspectorTest.cs b/tests/UnityTestRunner/UnityInspectorTest.cs new file mode 100644 index 0000000..0c3b935 --- /dev/null +++ b/tests/UnityTestRunner/UnityInspectorTest.cs @@ -0,0 +1,324 @@ +using System.Collections.Concurrent; +using System.Globalization; +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +internal static class UnityInspectorTest +{ + private const string StartCommand = "alchemy_inspector_capture_start"; + private const string StatusCommand = "alchemy_inspector_capture_status"; + private const int CaptureWidth = 640; + private const int CaptureHeight = 900; + + private static readonly TimeSpan EditorStartupTimeout = + TimeSpan.FromMinutes(5); + private static readonly TimeSpan CaptureTimeout = + TimeSpan.FromMinutes(1); + private static readonly IProcessRunner ProcessRunner = new ProcessRunner(); + private static readonly UnityCli UnityCli = new(ProcessRunner); + private static readonly UnityEditorLifecycle EditorLifecycle = + new(UnityCli); + private static readonly ConcurrentDictionary + Runs = new(StringComparer.OrdinalIgnoreCase); + private static readonly string RunId = + $"{DateTimeOffset.Now.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}-" + + Guid.NewGuid().ToString("N")[..8]; + + public static async Task StartAsync( + UnityProject project, + CancellationToken cancellationToken) + { + if (project.MajorVersion < 6000) + { + throw new InvalidConfigurationException( + $"Inspector capture requires Unity 6000 or later: " + + $"{project.EditorVersion}"); + } + + WriteProgress(project, "Inspector capture: checking Unity and Pipeline..."); + var editorPath = await UnityCli.ResolveEditorPathAsync( + project, + cancellationToken); + + var captureDirectory = Path.GetFullPath( + Path.Combine( + project.ProjectPath, + "..", + "..", + "captures", + RunId, + project.VersionLine)); + Directory.CreateDirectory(captureDirectory); + var editorLogPath = Path.Combine( + captureDirectory, + "InspectorCapture.Editor.log"); + + await EditorLifecycle.CloseRunningAsync( + project, + editorPath, + message => WriteProgress(project, message), + cancellationToken); + + WriteProgress(project, "Inspector capture: opening automated Editor..."); + ConnectedUnityEditor? editor = null; + UnityConsoleSnapshot console; + try + { + editor = await UnityCli.OpenEditorAsync( + project, + editorLogPath, + cancellationToken); + editor = await UnityCli.WaitUntilReadyAsync( + project, + EditorStartupTimeout, + cancellationToken); + await UnityCli.WaitForCommandAsync( + project, + StartCommand, + EditorStartupTimeout, + cancellationToken); + console = await UnityCli.ReadConsoleAsync( + project, + "log", + int.MaxValue, + 1, + cancellationToken); + } + catch (Exception startupException) + { + if (editor is null) + { + throw; + } + + try + { + await UnityEditorLifecycle.CloseProcessAsync( + editor.ProcessId, + message => WriteProgress(project, message), + CancellationToken.None); + } + catch (Exception cleanupException) + { + throw new AggregateException( + "Inspector Editor startup and cleanup both failed.", + startupException, + cleanupException); + } + + throw; + } + + var context = new InspectorRunContext( + captureDirectory, + editor.ProcessId, + console.Cursor); + if (!Runs.TryAdd(project.ProjectPath, context)) + { + throw new InvalidConfigurationException( + $"Inspector capture was initialized more than once for " + + $"{project.ProjectPath}."); + } + + WriteProgress( + project, + $"Inspector capture: Editor {editor.ProcessId} ready"); + } + + public static async Task CaptureAsync( + UnityProject project, + string testName, + CancellationToken cancellationToken) + { + if (!Runs.TryGetValue(project.ProjectPath, out var context)) + { + throw new InvalidConfigurationException( + $"Inspector capture was not initialized: {project.ProjectPath}"); + } + + var outputPath = Path.Combine( + context.CaptureDirectory, + $"{testName}.png"); + var prefabPath = + $"Packages/com.annulusgames.alchemy.inspector-test/{testName}.prefab"; + WriteProgress(project, $"Inspector {testName}: capturing..."); + + try + { + await UnityCli.FocusEditorAsync(project, cancellationToken); + var start = UnityCli.Deserialize( + await UnityCli.RunCommandAsync( + project, + StartCommand, + [ + "--prefab", + prefabPath, + "--output", + outputPath, + "--width", + CaptureWidth.ToString(CultureInfo.InvariantCulture), + "--height", + CaptureHeight.ToString(CultureInfo.InvariantCulture), + ], + cancellationToken)); + if (!start.Success || + !string.Equals( + start.Status, + "running", + StringComparison.Ordinal)) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} could not start Inspector " + + $"{testName}: {start.Message}"); + } + + var completed = await WaitForCaptureAsync( + project, + start.JobId, + cancellationToken); + if (!completed.Success || + !string.Equals( + completed.Status, + "completed", + StringComparison.Ordinal)) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} Inspector {testName} " + + $"capture failed: {completed.Message}"); + } + + EnsureCaptureExists(outputPath); + WriteProgress( + project, + $"Inspector {testName}: captured {CaptureWidth}x{CaptureHeight}"); + } + finally + { + if (File.Exists(outputPath)) + { + var testContext = TestContext.Current + ?? throw new InvalidOperationException( + "TUnit did not provide a test context."); + testContext.Output.AttachArtifact( + outputPath, + displayName: + $"{project.EditorVersion} {testName} Inspector", + description: + $"{CaptureWidth}x{CaptureHeight} Inspector capture"); + } + } + } + + public static async Task StopAsync( + UnityProject project, + CancellationToken cancellationToken) + { + if (!Runs.TryRemove(project.ProjectPath, out var context)) + { + return; + } + + var console = await UnityCli.ReadConsoleAsync( + project, + "warn", + context.ConsoleCursor, + 1000, + cancellationToken); + WriteConsoleDiagnostics(project, console.Entries); + + WriteProgress( + project, + $"Inspector capture: closing Editor {context.ProcessId}..."); + await EditorLifecycle.CloseConnectedAsync( + project, + context.ProcessId, + force: false, + message => WriteProgress(project, message), + cancellationToken); + } + + private static async Task WaitForCaptureAsync( + UnityProject project, + string jobId, + CancellationToken cancellationToken) + { + var deadline = DateTimeOffset.UtcNow + CaptureTimeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + var status = UnityCli.Deserialize( + await UnityCli.RunCommandAsync( + project, + StatusCommand, + ["--job_id", jobId], + cancellationToken)); + if (!string.Equals( + status.Status, + "running", + StringComparison.Ordinal)) + { + return status; + } + + await Task.Delay(TimeSpan.FromMilliseconds(200), cancellationToken); + } + + throw new UnityExecutionException( + $"Unity {project.EditorVersion} Inspector capture {jobId} " + + $"did not complete within {CaptureTimeout}."); + } + + private static void EnsureCaptureExists(string path) + { + if (!File.Exists(path)) + { + throw new UnityExecutionException( + $"Unity did not produce the expected Inspector capture: {path}"); + } + } + + private static void WriteProgress( + UnityProject project, + string message) + { + Console.Out.WriteLine($"[{project.VersionLine}] {message}"); + } + + private static void WriteConsoleDiagnostics( + UnityProject project, + IReadOnlyList entries) + { + if (entries.Count == 0) + { + return; + } + + Console.Out.WriteLine( + $"[{project.VersionLine}] Captured log entries " + + $"({entries.Count}):"); + foreach (var entry in entries) + { + Console.Out.WriteLine( + $"[{project.VersionLine}] [{entry.Level}] " + + entry.Message.Trim()); + } + } + + private sealed record InspectorRunContext( + string CaptureDirectory, + int ProcessId, + long ConsoleCursor); + + private sealed class InspectorCaptureStatus + { + public string JobId { get; init; } = ""; + public string Status { get; init; } = ""; + public bool Success { get; init; } + public string Message { get; init; } = ""; + public string Path { get; init; } = ""; + public int Width { get; init; } + public int Height { get; init; } + public int Bytes { get; init; } + } +} diff --git a/tests/UnityTestRunner/UnityInspectorVersionTests.cs b/tests/UnityTestRunner/UnityInspectorVersionTests.cs new file mode 100644 index 0000000..49bcd57 --- /dev/null +++ b/tests/UnityTestRunner/UnityInspectorVersionTests.cs @@ -0,0 +1,83 @@ +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +public interface IUnityInspectorTestProject +{ + static abstract UnityProject Project { get; } +} + +public abstract class UnityInspectorTests + where TProject : IUnityInspectorTestProject +{ + private static UnityProject Project => TProject.Project; + + [Before(HookType.Class)] + public static Task Start(CancellationToken cancellationToken) => + UnityInspectorTest.StartAsync(Project, cancellationToken); + + [After(HookType.Class)] + public static Task Stop(CancellationToken cancellationToken) => + UnityInspectorTest.StopAsync(Project, cancellationToken); + + [Test] + [Arguments("ButtonTest")] + [Arguments("DepthTest")] + [Arguments("InheritedSerializeTest")] + [Arguments("OnListViewChangedTest")] + [Arguments("PreviewTest")] + [Arguments("StringListTest")] + [Arguments("UnsignedTest")] + public Task Inspector( + string testName, + CancellationToken cancellationToken) => + UnityInspectorTest.CaptureAsync( + Project, + testName, + cancellationToken); +} + +[InheritsTests] +public sealed class Unity6000_0InspectorTests : + UnityInspectorTests, + IUnityInspectorTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.0"); +} + +[InheritsTests] +public sealed class Unity6000_3InspectorTests : + UnityInspectorTests, + IUnityInspectorTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.3"); +} + +[InheritsTests] +public sealed class Unity6000_4InspectorTests : + UnityInspectorTests, + IUnityInspectorTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.4"); +} + +[InheritsTests] +public sealed class Unity6000_5InspectorTests : + UnityInspectorTests, + IUnityInspectorTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.5"); +} + +[InheritsTests] +public sealed class Unity6000_7InspectorTests : + UnityInspectorTests, + IUnityInspectorTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.7"); +} diff --git a/tests/UnityTestRunner/UnityTest.cs b/tests/UnityTestRunner/UnityTest.cs index d60506b..c5faf94 100644 --- a/tests/UnityTestRunner/UnityTest.cs +++ b/tests/UnityTestRunner/UnityTest.cs @@ -9,6 +9,8 @@ internal static class UnityTest { private static readonly IProcessRunner ProcessRunner = new ProcessRunner(); private static readonly UnityCli UnityCli = new(ProcessRunner); + private static readonly UnityEditorLifecycle EditorLifecycle = + new(UnityCli); private static readonly TextWriter LiveOutput = TextWriter.Synchronized( new StreamWriter(Console.OpenStandardOutput()) { @@ -25,13 +27,19 @@ public static async Task RefreshAsync( var editorPath = await UnityCli.ResolveEditorPathAsync( project, cancellationToken); - var executable = GetEditorExecutable(editorPath); + var executable = UnityEditorLifecycle.GetEditorExecutable(editorPath); if (!File.Exists(executable)) { throw new UnityUnavailableException( $"The installed Unity editor executable does not exist: {executable}"); } + await EditorLifecycle.CloseRunningAsync( + project, + editorPath, + message => WriteProgress(project, message), + cancellationToken); + var logDirectory = CreateLogDirectory(project); var refreshLogPath = Path.Combine(logDirectory, "Refresh.log"); WriteProgress(project, "Library warmup: running..."); @@ -163,7 +171,7 @@ private static async Task RunUnityAsync( var useCli = project.MajorVersion >= 6000; var fileName = useCli ? "unity" - : GetEditorExecutable(editorPath); + : UnityEditorLifecycle.GetEditorExecutable(editorPath); if (!useCli && !File.Exists(fileName)) { throw new UnityUnavailableException( @@ -181,6 +189,7 @@ private static async Task RunUnityAsync( mode, reportPath, editorLogPath); + var workingDirectory = project.ProjectPath; try { @@ -188,7 +197,7 @@ private static async Task RunUnityAsync( new ProcessSpec( fileName, arguments, - project.ProjectPath, + workingDirectory, TerminateDescendantsOnExit: true), cancellationToken); if (useCli) @@ -245,7 +254,7 @@ private static IReadOnlyList BuildLibraryWarmupArguments( "-batchmode", "-nographics", "-projectPath", - project.ProjectPath, + ".", "-executeMethod", "Alchemy.Tests.TestCommands.Refresh", "--auto-quit", @@ -268,7 +277,7 @@ private static IReadOnlyList BuildBatchModeArguments( "-batchmode", "-nographics", "-projectPath", - project.ProjectPath, + ".", "-executeMethod", command, "-testResults", @@ -279,26 +288,6 @@ private static IReadOnlyList BuildBatchModeArguments( ]; } - private static string GetEditorExecutable(string editorPath) - { - if (OperatingSystem.IsWindows()) - { - return Path.Combine(editorPath, "Editor", "Unity.exe"); - } - - if (OperatingSystem.IsMacOS()) - { - return Path.Combine( - editorPath, - "Unity.app", - "Contents", - "MacOS", - "Unity"); - } - - return Path.Combine(editorPath, "Editor", "Unity"); - } - private static string CreateLogDirectory(UnityProject project) { var runId = @@ -359,7 +348,13 @@ private static void WriteLogDiagnostics( .OrderBy(value => value, StringComparer.Ordinal)) { var lineNumber = 0; - foreach (var line in File.ReadLines(path)) + using var stream = File.Open( + path, + FileMode.Open, + FileAccess.Read, + FileShare.ReadWrite | FileShare.Delete); + using var reader = new StreamReader(stream); + while (reader.ReadLine() is { } line) { lineNumber++; if (IsWarningOrHigher(line)) @@ -376,7 +371,7 @@ private static void WriteLogDiagnostics( } LiveOutput.WriteLine( - $"[{project.EditorVersion}] Warning-or-higher log entries " + + $"[{project.EditorVersion}] Captured log entries " + $"({diagnostics.Count}):"); foreach (var diagnostic in diagnostics) { diff --git a/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity b/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity new file mode 100644 index 0000000..64505bb --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity @@ -0,0 +1,341 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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 &515262808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 515262811} + - component: {fileID: 515262810} + - component: {fileID: 515262809} + m_Layer: 0 + m_Name: Code-based tests runner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &515262809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515262808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3cf5cb9e1ef590c48b1f919f2a7bd895, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &515262810 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515262808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 102e512f651ee834f951a2516c1ea3b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AssembliesWithTests: + - Alchemy.Tests.PlayMode.Serialization + - Unity.PerformanceTesting + - UnityEngine.TestRunner + testStartedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 515262809} + m_TargetAssemblyTypeName: UnityEngine.TestTools.TestRunner.Callbacks.PlayModeRunnerCallback, + UnityEngine.TestRunner + m_MethodName: TestStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 752422075} + m_TargetAssemblyTypeName: UnityEditor.TestTools.TestRunner.TestRunnerCallback, + UnityEditor.TestRunner + m_MethodName: TestStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + testFinishedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 515262809} + m_TargetAssemblyTypeName: UnityEngine.TestTools.TestRunner.Callbacks.PlayModeRunnerCallback, + UnityEngine.TestRunner + m_MethodName: TestFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 752422075} + m_TargetAssemblyTypeName: UnityEditor.TestTools.TestRunner.TestRunnerCallback, + UnityEditor.TestRunner + m_MethodName: TestFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + runStartedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 515262809} + m_TargetAssemblyTypeName: UnityEngine.TestTools.TestRunner.Callbacks.PlayModeRunnerCallback, + UnityEngine.TestRunner + m_MethodName: RunStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 752422075} + m_TargetAssemblyTypeName: UnityEditor.TestTools.TestRunner.TestRunnerCallback, + UnityEditor.TestRunner + m_MethodName: RunStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + runFinishedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 515262809} + m_TargetAssemblyTypeName: UnityEngine.TestTools.TestRunner.Callbacks.PlayModeRunnerCallback, + UnityEngine.TestRunner + m_MethodName: RunFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 752422075} + m_TargetAssemblyTypeName: UnityEditor.TestTools.TestRunner.TestRunnerCallback, + UnityEditor.TestRunner + m_MethodName: RunFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + settings: + filters: + - testMode: 4 + assemblyNames: [] + groupNames: [] + categoryNames: [] + testNames: [] + synchronousOnly: 0 + sceneBased: 0 + originalScene: + bootstrapScene: + runInBackgroundValue: 1 + consoleErrorPaused: 0 + orderedTestNames: [] + featureFlags: + fileCleanUpCheck: 0 + requiresSplashScreen: 0 + strictDomainReload: 0 + disableNestedEnumeratorBugfix: 0 + retryCount: 0 + repeatCount: 0 + automated: 0 + randomOrderSeed: 0 +--- !u!4 &515262811 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515262808} + 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!114 &752422075 +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: d44e6804bc58be84ea71a619b468f150, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 515262811} diff --git a/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity.meta b/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity.meta new file mode 100644 index 0000000..5e9efb6 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/InitTestScene39cb049f-4d09-4f39-8198-9d1bb63e8d9c.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c7c966be90f27dd419b8746ca2cb4158 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Scenes.meta b/tests/versions/Unity2022.3/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity b/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity2022.3/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.0/Assets/Scenes.meta b/tests/versions/Unity6000.0/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity6000.0/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.3/Assets/Scenes.meta b/tests/versions/Unity6000.3/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity6000.3/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Scenes.meta b/tests/versions/Unity6000.4/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Scenes.meta b/tests/versions/Unity6000.5/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity6000.5/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Scenes.meta b/tests/versions/Unity6000.7/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..89d7244 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity @@ -0,0 +1,407 @@ +%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: 9 + 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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + 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 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + 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: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + 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: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + 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_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/tests/versions/Unity6000.7/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From dd1dc7b407f33ed3d6bd5ef9f99ef9c71f421e7a Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Thu, 30 Jul 2026 22:01:24 +0900 Subject: [PATCH 04/15] test: add test harness for manual visual regression tests --- Alchemy/Packages/manifest.json | 4 +- Alchemy/Packages/packages-lock.json | 4 +- tests/.gitignore | 2 + ...ector.meta => Alchemy.Tests.EditorUI.meta} | 0 .../Alchemy.Tests.EditorUI.asmdef} | 6 +- .../Alchemy.Tests.EditorUI.asmdef.meta} | 0 .../ButtonTest.cs | 2 +- .../ButtonTest.cs.meta | 0 .../ButtonTest.prefab | 0 .../ButtonTest.prefab.meta | 0 .../DepthTest.cs | 2 +- .../DepthTest.cs.meta | 0 .../DepthTest.prefab | 0 .../DepthTest.prefab.meta | 0 .../InheritedSerializeTest.cs | 2 +- .../InheritedSerializeTest.cs.meta | 0 .../InheritedSerializeTest.prefab | 0 .../InheritedSerializeTest.prefab.meta | 0 .../InheritedSerializeTestBase.cs | 2 +- .../InheritedSerializeTestBase.cs.meta | 0 .../OnListViewChangedTest.cs | 2 +- .../OnListViewChangedTest.cs.meta | 0 .../OnListViewChangedTest.prefab | 0 .../OnListViewChangedTest.prefab.meta | 0 .../Pipeline.meta | 0 .../Pipeline/Alchemy.Tests.Pipeline.asmdef | 0 .../Alchemy.Tests.Pipeline.asmdef.meta | 0 .../Pipeline/EditorCaptureCommands.cs} | 22 +- .../Pipeline/EditorCaptureCommands.cs.meta} | 0 .../PreviewTest.cs | 2 +- .../PreviewTest.cs.meta | 0 .../PreviewTest.prefab | 0 .../PreviewTest.prefab.meta | 0 .../StringListTest.cs | 2 +- .../StringListTest.cs.meta | 0 .../StringListTest.prefab | 0 .../StringListTest.prefab.meta | 0 .../UnsignedTest.cs | 2 +- .../UnsignedTest.cs.meta | 0 .../UnsignedTest.prefab | 0 .../UnsignedTest.prefab.meta | 0 .../package.json | 4 +- .../package.json.meta | 0 .../Assets/Alchemy.Tests/TestCommands.cs | 3 +- tests/README.md | 9 + tests/UnityTestRunner/EditorCaptureReport.cs | 342 ++++++++ .../EditorCaptureReport.template.html | 675 +++++++++++++++ tests/UnityTestRunner/UnityCli.cs | 31 +- ...ectorTest.cs => UnityEditorCaptureTest.cs} | 67 +- .../UnityEditorCaptureVersionTests.cs | 73 ++ tests/UnityTestRunner/UnityEditorLifecycle.cs | 20 +- .../UnityInspectorVersionTests.cs | 83 -- tests/UnityTestRunner/UnityTest.cs | 229 +++-- tests/UnityTestRunner/UnityTestRunner.csproj | 6 + tests/UnityTestRunner/UnityVersionTests.cs | 18 - .../Unity2022.3/Packages/manifest.json | 4 +- .../Unity2022.3/Packages/packages-lock.json | 4 +- .../Unity6000.0/Packages/manifest.json | 4 +- .../Unity6000.0/Packages/packages-lock.json | 4 +- .../Unity6000.3/Packages/manifest.json | 4 +- .../Unity6000.3/Packages/packages-lock.json | 4 +- tests/versions/Unity6000.4/.gitignore | 78 -- tests/versions/Unity6000.4/Assets/Scenes.meta | 8 - .../Assets/Scenes/SampleScene.unity | 407 --------- .../Assets/Scenes/SampleScene.unity.meta | 7 - .../Unity6000.4/Packages/manifest.json | 15 - .../Unity6000.4/Packages/packages-lock.json | 184 ----- .../ProjectSettings/AlchemySettings.json | 32 - .../ProjectSettings/AudioManager.asset | 19 - .../ProjectSettings/ClusterInputManager.asset | 6 - .../ProjectSettings/DynamicsManager.asset | 34 - .../ProjectSettings/EditorBuildSettings.asset | 9 - .../ProjectSettings/EditorSettings.asset | 52 -- .../ProjectSettings/GraphicsSettings.asset | 63 -- .../ProjectSettings/InputManager.asset | 295 ------- .../ProjectSettings/MemorySettings.asset | 35 - .../ProjectSettings/MultiplayerManager.asset | 9 - .../ProjectSettings/NavMeshAreas.asset | 91 -- .../PackageManagerSettings.asset | 35 - .../Settings.json | 5 - .../ProjectSettings/Physics2DSettings.asset | 56 -- .../ProjectSettings/PresetManager.asset | 7 - .../ProjectSettings/ProjectSettings.asset | 780 ------------------ .../ProjectSettings/ProjectVersion.txt | 2 - .../ProjectSettings/QualitySettings.asset | 234 ------ .../SceneTemplateSettings.json | 121 --- .../ProjectSettings/TagManager.asset | 43 - .../ProjectSettings/TimeManager.asset | 9 - .../UnityConnectSettings.asset | 40 - .../ProjectSettings/VFXManager.asset | 12 - .../VersionControlSettings.asset | 8 - .../ProjectSettings/XRSettings.asset | 10 - .../Unity6000.5/Packages/manifest.json | 4 +- .../Unity6000.5/Packages/packages-lock.json | 4 +- .../Unity6000.7/Packages/manifest.json | 4 +- .../Unity6000.7/Packages/packages-lock.json | 4 +- 96 files changed, 1399 insertions(+), 2961 deletions(-) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector.meta => Alchemy.Tests.EditorUI.meta} (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef => Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef} (85%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta => Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef.meta} (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/ButtonTest.cs (87%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/ButtonTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/ButtonTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/ButtonTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/DepthTest.cs (93%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/DepthTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/DepthTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/DepthTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTest.cs (92%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTestBase.cs (92%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/InheritedSerializeTestBase.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/OnListViewChangedTest.cs (97%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/OnListViewChangedTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/OnListViewChangedTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/OnListViewChangedTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/Pipeline.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/Pipeline/Alchemy.Tests.Pipeline.asmdef (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs => Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs} (97%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta => Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs.meta} (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/PreviewTest.cs (90%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/PreviewTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/PreviewTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/PreviewTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/StringListTest.cs (89%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/StringListTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/StringListTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/StringListTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/UnsignedTest.cs (90%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/UnsignedTest.cs.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/UnsignedTest.prefab (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/UnsignedTest.prefab.meta (100%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/package.json (55%) rename tests/Alchemy.Tests/Assets/{Alchemy.Tests.Inspector => Alchemy.Tests.EditorUI}/package.json.meta (100%) create mode 100644 tests/UnityTestRunner/EditorCaptureReport.cs create mode 100644 tests/UnityTestRunner/EditorCaptureReport.template.html rename tests/UnityTestRunner/{UnityInspectorTest.cs => UnityEditorCaptureTest.cs} (86%) create mode 100644 tests/UnityTestRunner/UnityEditorCaptureVersionTests.cs delete mode 100644 tests/UnityTestRunner/UnityInspectorVersionTests.cs delete mode 100644 tests/versions/Unity6000.4/.gitignore delete mode 100644 tests/versions/Unity6000.4/Assets/Scenes.meta delete mode 100644 tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity delete mode 100644 tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta delete mode 100644 tests/versions/Unity6000.4/Packages/manifest.json delete mode 100644 tests/versions/Unity6000.4/Packages/packages-lock.json delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/InputManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/TagManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset delete mode 100644 tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset diff --git a/Alchemy/Packages/manifest.json b/Alchemy/Packages/manifest.json index 9f92bde..bf23395 100644 --- a/Alchemy/Packages/manifest.json +++ b/Alchemy/Packages/manifest.json @@ -1,6 +1,6 @@ { "dependencies": { - "com.annulusgames.alchemy.inspector-test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.collab-proxy": "2.12.4", "com.unity.feature.development": "1.0.2", @@ -47,7 +47,7 @@ "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/Alchemy/Packages/packages-lock.json b/Alchemy/Packages/packages-lock.json index 67fec38..6162805 100644 --- a/Alchemy/Packages/packages-lock.json +++ b/Alchemy/Packages/packages-lock.json @@ -1,7 +1,7 @@ { "dependencies": { - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { diff --git a/tests/.gitignore b/tests/.gitignore index c6e5ce0..b9e9b8f 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1 +1,3 @@ /captures/ +*InitTestScene*unity +*InitTestScene*unity.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef similarity index 85% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef index 4dfea05..2cda1da 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef @@ -1,6 +1,6 @@ { - "name": "Alchemy.Tests.Inspector", - "rootNamespace": "Alchemy.Tests.Inspector", + "name": "Alchemy.Tests.EditorUI", + "rootNamespace": "Alchemy.Tests.EditorUI", "references": [ "GUID:88be65f96b86746888c927a5c8ff3534" ], @@ -19,4 +19,4 @@ } ], "noEngineReferences": false -} \ No newline at end of file +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Alchemy.Tests.Inspector.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Alchemy.Tests.EditorUI.asmdef.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs similarity index 87% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs index b2c2d6c..ce58040 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs @@ -1,7 +1,7 @@ using Alchemy.Inspector; using UnityEngine; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class ButtonTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/ButtonTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.cs similarity index 93% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.cs index 73bc619..53d229d 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.cs @@ -2,7 +2,7 @@ using Alchemy.Inspector; using UnityEngine; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class DepthTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/DepthTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DepthTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.cs similarity index 92% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.cs index 4b49dac..9201346 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.cs @@ -3,7 +3,7 @@ using Alchemy.Serialization; #endif -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { #if ALCHEMY_SUPPORT_SERIALIZATION [ShowAlchemySerializationData] diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTestBase.cs similarity index 92% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTestBase.cs index 389c4ac..cd713de 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTestBase.cs @@ -5,7 +5,7 @@ #endif using UnityEngine; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { #if ALCHEMY_SUPPORT_SERIALIZATION [ShowAlchemySerializationData] diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTestBase.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/InheritedSerializeTestBase.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InheritedSerializeTestBase.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.cs similarity index 97% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.cs index 4df4220..4c0b0c5 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.cs @@ -2,7 +2,7 @@ using UnityEngine; using Alchemy.Inspector; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class OnListViewChangedTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/OnListViewChangedTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnListViewChangedTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs similarity index 97% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs index d66b0b1..adfb6b0 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs @@ -12,10 +12,10 @@ namespace Alchemy.Tests.Pipeline { [InitializeOnLoad] - internal static class InspectorCaptureCommands + internal static class EditorCaptureCommands { - const string InspectorTestPackage = - "Packages/com.annulusgames.alchemy.inspector-test"; + const string EditorUiTestPackage = + "Packages/com.annulusgames.alchemy.editor-ui-test"; const double SettleSeconds = 1d; const double PostRepaintSeconds = 0.25d; const int MaximumDimension = 4096; @@ -28,13 +28,13 @@ internal static class InspectorCaptureCommands static InspectorCaptureResult lastResult = InspectorCaptureResult.CreateIdle(); - static InspectorCaptureCommands() + static EditorCaptureCommands() { AssemblyReloadEvents.beforeAssemblyReload += CleanupBeforeReload; } [CliCommand( - "alchemy_inspector_capture_start", + "alchemy_editor_capture_inspector_start", "Open an Inspector for a prefab, expand its contents, and capture it to a PNG.", MainThreadRequired = true)] static InspectorCaptureResult Start( @@ -123,8 +123,8 @@ static InspectorCaptureResult Start( } [CliCommand( - "alchemy_inspector_capture_status", - "Return the current or most recent Inspector capture status.", + "alchemy_editor_capture_status", + "Return the current or most recent Editor UI capture status.", MainThreadRequired = false)] static InspectorCaptureResult Status( [CliArg("job_id", "Capture job identifier returned by start.")] @@ -146,8 +146,8 @@ static InspectorCaptureResult Status( } [CliCommand( - "alchemy_inspector_capture_cancel", - "Cancel the active Inspector capture and restore the Editor state.", + "alchemy_editor_capture_cancel", + "Cancel the active Editor UI capture and restore the Editor state.", MainThreadRequired = true)] static InspectorCaptureResult Cancel( [CliArg( @@ -190,7 +190,7 @@ static InspectorCaptureResult Cancel( } [CliCommand( - "alchemy_inspector_capture_close", + "alchemy_editor_capture_close", "Close an automated Editor session.", MainThreadRequired = true)] static InspectorCaptureResult Close( @@ -496,7 +496,7 @@ static string ResolvePrefabPath(string prefab) return value.Contains("/") ? value - : $"{InspectorTestPackage}/{value}"; + : $"{EditorUiTestPackage}/{value}"; } static string ResolveOutputPath(string output) diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/Pipeline/InspectorCaptureCommands.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.cs similarity index 90% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.cs index e0bfea1..ea6af49 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.cs @@ -2,7 +2,7 @@ using UnityEngine; using UnityEngine.UIElements; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class PreviewTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/PreviewTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/PreviewTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.cs similarity index 89% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.cs index 4494ed3..a2b5cea 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.cs @@ -2,7 +2,7 @@ using Alchemy.Inspector; using UnityEngine; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class StringListTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/StringListTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/StringListTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs similarity index 90% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs index 7aa00b8..6cd370f 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs @@ -1,7 +1,7 @@ using Alchemy.Inspector; using UnityEngine; -namespace Alchemy.Tests.Inspector +namespace Alchemy.Tests.EditorUI { public class UnsignedTest : MonoBehaviour { diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.cs.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/UnsignedTest.prefab.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/package.json similarity index 55% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/package.json index 7f6f1fb..f5531f6 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/package.json @@ -1,7 +1,7 @@ { - "name": "com.annulusgames.alchemy.inspector-test", + "name": "com.annulusgames.alchemy.editor-ui-test", "version": "0.1.0", - "displayName": "Alchemy Inspector Tests", + "displayName": "Alchemy Editor UI Tests", "unity": "2021.2", "dependencies": { "com.unity.test-framework": "1.1.31" diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/package.json.meta similarity index 100% rename from tests/Alchemy.Tests/Assets/Alchemy.Tests.Inspector/package.json.meta rename to tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/package.json.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs index 20b75c8..bc41a2b 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests/TestCommands.cs @@ -213,8 +213,7 @@ private static void FinishWithError(string message) } } - private static bool ShouldAutoQuit => - Application.isBatchMode && HasArgument(AutoQuitArgument); + private static bool ShouldAutoQuit => HasArgument(AutoQuitArgument); private static void WriteResult(ITestResultAdaptor result, RunState runState) { diff --git a/tests/README.md b/tests/README.md index aa7217a..ae317e2 100644 --- a/tests/README.md +++ b/tests/README.md @@ -5,13 +5,22 @@ This directory contains the Unity version projects and the TUnit integration tes Run all registered Unity versions and test modes from the repository root: ```sh +# Run all tests dotnet run --project tests/UnityTestRunner --configuration Release +# Run only EditMode tests +dotnet run --project tests/UnityTestRunner --configuration Release -- --treenode-filter "/*/Alchemy.UnityTestRunner/Unity*UnitTests/EditMode" +# Run only PlayMode tests +dotnet run --project tests/UnityTestRunner --configuration Release -- --treenode-filter "/*/Alchemy.UnityTestRunner/Unity*UnitTests/PlayMode" +# Run only Visual Regression Tests +dotnet run --project tests/UnityTestRunner --configuration Release -- --treenode-filter "/*/Alchemy.UnityTestRunner/Unity*EditorCaptureTests/*" ``` Unity versions are registered explicitly in `UnityTestRunner/UnityVersionTests.cs`. Each version has an EditMode test and a PlayMode test. Unity Editor logs are stored under each version project's `Logs/UnityTestRunner/` directory. Unity logs and NUnit reports are attached to their TUnit test, and warning-or-higher entries are written to stderr. +Visual regression testing is not automated; captures require manual review. + ### Requirements - .NET 10 SDK or later must be installed. diff --git a/tests/UnityTestRunner/EditorCaptureReport.cs b/tests/UnityTestRunner/EditorCaptureReport.cs new file mode 100644 index 0000000..52d4b67 --- /dev/null +++ b/tests/UnityTestRunner/EditorCaptureReport.cs @@ -0,0 +1,342 @@ +using System.Collections.Concurrent; +using System.Globalization; +using System.Net; +using System.Text; +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +internal static class EditorCaptureReport +{ + private const string TemplateResourceName = + "Alchemy.UnityTestRunner.EditorCaptureReport.template.html"; + + private static readonly object Gate = new(); + private static readonly ConcurrentDictionary Captures = + new(); + private static readonly Dictionary> + ExpectedTestsBySurface = new(StringComparer.Ordinal); + private static readonly HashSet RegisteredVersions = + new(StringComparer.Ordinal); + private static readonly string RunId = + $"{DateTimeOffset.Now.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}-" + + Guid.NewGuid().ToString("N")[..8]; + + private static string? captureRoot; + + public static string RegisterSurface( + UnityProject project, + string surface, + IReadOnlyList expectedTestNames) + { + var root = Path.GetFullPath( + Path.Combine( + project.ProjectPath, + "..", + "..", + "captures", + RunId)); + lock (Gate) + { + if (captureRoot is null) + { + captureRoot = root; + } + else if (!PathsEqual(captureRoot, root)) + { + throw new InvalidConfigurationException( + "Editor UI captures from one test session must share a " + + $"capture root. Expected '{captureRoot}', received '{root}'."); + } + + RegisteredVersions.Add(project.VersionLine); + if (!ExpectedTestsBySurface.TryGetValue( + surface, + out var registeredTests)) + { + registeredTests = []; + ExpectedTestsBySurface.Add(surface, registeredTests); + } + + foreach (var testName in expectedTestNames) + { + if (!registeredTests.Contains( + testName, + StringComparer.Ordinal)) + { + registeredTests.Add(testName); + } + } + } + + var surfaceDirectory = Path.Combine( + root, + project.VersionLine, + surface); + Directory.CreateDirectory(surfaceDirectory); + return surfaceDirectory; + } + + public static void RecordCapture( + UnityProject project, + string surface, + string testName, + string path) + { + Captures[new CaptureKey(surface, project.VersionLine, testName)] = + Path.GetFullPath(path); + } + + public static void GenerateAndAttach(TestSessionContext context) + { + string? root; + string[] registeredVersions; + Dictionary> expectedTestsBySurface; + lock (Gate) + { + root = captureRoot; + registeredVersions = RegisteredVersions.ToArray(); + expectedTestsBySurface = ExpectedTestsBySurface.ToDictionary( + pair => pair.Key, + pair => (IReadOnlyList)pair.Value.ToArray(), + StringComparer.Ordinal); + } + + if (root is null) + { + return; + } + + var captures = Captures.ToDictionary(); + var versions = registeredVersions + .Concat(captures.Keys.Select(key => key.VersionLine)) + .Distinct(StringComparer.Ordinal) + .OrderBy(ParseVersion) + .ToArray(); + var surfaces = expectedTestsBySurface.Keys + .Concat(captures.Keys.Select(key => key.Surface)) + .Distinct(StringComparer.Ordinal) + .Order(StringComparer.Ordinal) + .ToArray(); + var testNamesBySurface = surfaces.ToDictionary( + surface => surface, + surface => expectedTestsBySurface.GetValueOrDefault(surface, []) + .Concat( + captures.Keys + .Where(key => key.Surface == surface) + .Select(key => key.TestName)) + .Distinct(StringComparer.Ordinal) + .ToArray(), + StringComparer.Ordinal); + var reportPath = Path.Combine(root, "index.html"); + var html = BuildHtml(versions, testNamesBySurface, captures); + File.WriteAllText( + reportPath, + html, + new UTF8Encoding(encoderShouldEmitUTF8Identifier: false)); + + context.AddArtifact( + new Artifact + { + File = new FileInfo(reportPath), + DisplayName = "Editor UI capture matrix", + Description = + "Interactive Unity version-by-case Editor UI captures.", + }); + Console.Out.WriteLine($"[Editor UI] Capture matrix: {reportPath}"); + } + + private static string BuildHtml( + IReadOnlyList versions, + IReadOnlyDictionary testNamesBySurface, + IReadOnlyDictionary captures) + { + var capturedCount = captures.Count(pair => File.Exists(pair.Value)); + var testCaseCount = testNamesBySurface.Sum(pair => pair.Value.Length); + var totalCount = versions.Count * testCaseCount; + return LoadTemplate() + .Replace( + "{{CAPTURED_COUNT}}", + capturedCount.ToString(CultureInfo.InvariantCulture), + StringComparison.Ordinal) + .Replace( + "{{TOTAL_COUNT}}", + totalCount.ToString(CultureInfo.InvariantCulture), + StringComparison.Ordinal) + .Replace( + "{{VERSION_COUNT}}", + versions.Count.ToString(CultureInfo.InvariantCulture), + StringComparison.Ordinal) + .Replace( + "{{TEST_CASE_COUNT}}", + testCaseCount.ToString(CultureInfo.InvariantCulture), + StringComparison.Ordinal) + .Replace( + "{{MATRICES}}", + BuildMatrices(versions, testNamesBySurface, captures), + StringComparison.Ordinal); + } + + private static string BuildMatrices( + IReadOnlyList versions, + IReadOnlyDictionary testNamesBySurface, + IReadOnlyDictionary captures) + { + var html = new StringBuilder(64 * 1024); + foreach (var (surface, testNames) in testNamesBySurface) + { + html.AppendLine("
"); + html.Append("

") + .Append(Encode(surface)) + .AppendLine("

"); + html.AppendLine( + """ +
+ + + + + """); + + foreach (var version in versions) + { + html.Append(" "); + } + + html.AppendLine( + """ + + + + """); + + foreach (var testName in testNames) + { + html.AppendLine(" "); + html.Append(" "); + foreach (var version in versions) + { + AppendCaptureCell( + html, + surface, + version, + testName, + captures); + } + + html.AppendLine(" "); + } + + html.AppendLine( + """ + +
Test case") + .Append(Encode(version)) + .AppendLine("
") + .Append(Encode(testName)) + .AppendLine("
+
+
+ """); + } + + return html.ToString(); + } + + private static void AppendCaptureCell( + StringBuilder html, + string surface, + string version, + string testName, + IReadOnlyDictionary captures) + { + var key = new CaptureKey(surface, version, testName); + var label = $"{surface} {testName}, Unity {version}"; + html.AppendLine(" "); + if (captures.TryGetValue(key, out var path) && + File.Exists(path)) + { + html.Append(" "); + } + else + { + html.Append("
Not captured
"); + } + + html.AppendLine(" "); + } + + private static string LoadTemplate() + { + using var stream = typeof(EditorCaptureReport) + .Assembly + .GetManifestResourceStream(TemplateResourceName) + ?? throw new InvalidConfigurationException( + $"Embedded report template was not found: " + + $"{TemplateResourceName}"); + using var reader = new StreamReader( + stream, + Encoding.UTF8, + detectEncodingFromByteOrderMarks: true); + return reader.ReadToEnd(); + } + + private static string CreatePngDataUri(string path) + { + return "data:image/png;base64," + + Convert.ToBase64String(File.ReadAllBytes(path)); + } + + private static string Encode(string value) + { + return WebUtility.HtmlEncode(value); + } + + private static Version ParseVersion(string version) + { + return Version.TryParse(version, out var parsed) + ? parsed + : new Version(); + } + + private static bool PathsEqual(string left, string right) + { + return string.Equals( + Path.TrimEndingDirectorySeparator(Path.GetFullPath(left)), + Path.TrimEndingDirectorySeparator(Path.GetFullPath(right)), + OperatingSystem.IsWindows() + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal); + } + + private readonly record struct CaptureKey( + string Surface, + string VersionLine, + string TestName); +} + +public static class EditorCaptureReportHooks +{ + [After(HookType.TestSession)] + public static void Generate(TestSessionContext context) + { + EditorCaptureReport.GenerateAndAttach(context); + } +} diff --git a/tests/UnityTestRunner/EditorCaptureReport.template.html b/tests/UnityTestRunner/EditorCaptureReport.template.html new file mode 100644 index 0000000..67f1f9b --- /dev/null +++ b/tests/UnityTestRunner/EditorCaptureReport.template.html @@ -0,0 +1,675 @@ + + + + + + Alchemy Editor UI capture matrix + + + + + + +
+
+
+
Alchemy · Editor UI
+

Capture matrix

+

+ Cross-version Inspector snapshots. Pick a cell to inspect the full capture. +

+
+
+
+ {{CAPTURED_COUNT}} / {{TOTAL_COUNT}} + Captured +
+
+ {{VERSION_COUNT}} + Versions +
+
+ {{TEST_CASE_COUNT}} + Cases +
+
+
+ +
+
+ {{MATRICES}} +
+ +
+
+
+

No capture selected

+ Editor UI + Unity +
+

Select a captured cell from the matrix.

+
+
+ +
+
+
+ +
+ Captured + Missing + Click a thumbnail to inspect +
+
+ + + + diff --git a/tests/UnityTestRunner/UnityCli.cs b/tests/UnityTestRunner/UnityCli.cs index aa29d6b..f90f7ea 100644 --- a/tests/UnityTestRunner/UnityCli.cs +++ b/tests/UnityTestRunner/UnityCli.cs @@ -5,6 +5,8 @@ namespace Alchemy.UnityTestRunner; public sealed class UnityCli { private static readonly TimeSpan CommandTimeout = TimeSpan.FromMinutes(1); + private static readonly TimeSpan PipelineStartupGracePeriod = + TimeSpan.FromSeconds(5); private static readonly JsonSerializerOptions JsonOptions = new() { PropertyNameCaseInsensitive = true, @@ -136,8 +138,19 @@ internal async Task OpenEditorAsync( string logPath, CancellationToken cancellationToken) { - var editorArguments = - $"-automated --auto-quit -logFile \"{logPath}\""; + return await OpenEditorWithArgumentsAsync( + project, + $"-automated --auto-quit -logFile \"{logPath}\"", + cancellationToken); + } + + internal async Task OpenEditorWithArgumentsAsync( + UnityProject project, + string editorArguments, + CancellationToken cancellationToken, + bool waitForPipeline = true, + string? editorExecutable = null) + { using var launcher = processRunner.Start( new ProcessSpec( "unity", @@ -157,6 +170,8 @@ internal async Task OpenEditorAsync( try { var deadline = DateTimeOffset.UtcNow + CommandTimeout; + var pipelineGraceDeadline = + DateTimeOffset.UtcNow + PipelineStartupGracePeriod; while (DateTimeOffset.UtcNow < deadline) { cancellationToken.ThrowIfCancellationRequested(); @@ -175,6 +190,18 @@ internal async Task OpenEditorAsync( $"the Unity CLI exited with code {launcher.ExitCode}."); } + if (!waitForPipeline && + DateTimeOffset.UtcNow >= pipelineGraceDeadline) + { + return new ConnectedUnityEditor( + editorExecutable is null + ? 0 + : UnityEditorLifecycle.FindRunningEditorProcessId( + editorExecutable) ?? 0, + "started", + project.EditorVersion); + } + await Task.Delay( TimeSpan.FromMilliseconds(500), cancellationToken); diff --git a/tests/UnityTestRunner/UnityInspectorTest.cs b/tests/UnityTestRunner/UnityEditorCaptureTest.cs similarity index 86% rename from tests/UnityTestRunner/UnityInspectorTest.cs rename to tests/UnityTestRunner/UnityEditorCaptureTest.cs index 0c3b935..d59fc45 100644 --- a/tests/UnityTestRunner/UnityInspectorTest.cs +++ b/tests/UnityTestRunner/UnityEditorCaptureTest.cs @@ -4,10 +4,12 @@ namespace Alchemy.UnityTestRunner; -internal static class UnityInspectorTest +internal static class UnityEditorCaptureTest { - private const string StartCommand = "alchemy_inspector_capture_start"; - private const string StatusCommand = "alchemy_inspector_capture_status"; + private const string Surface = "Inspector"; + private const string StartCommand = + "alchemy_editor_capture_inspector_start"; + private const string StatusCommand = "alchemy_editor_capture_status"; private const int CaptureWidth = 640; private const int CaptureHeight = 900; @@ -21,9 +23,6 @@ internal static class UnityInspectorTest new(UnityCli); private static readonly ConcurrentDictionary Runs = new(StringComparer.OrdinalIgnoreCase); - private static readonly string RunId = - $"{DateTimeOffset.Now.ToString("yyyyMMdd-HHmmss", CultureInfo.InvariantCulture)}-" + - Guid.NewGuid().ToString("N")[..8]; public static async Task StartAsync( UnityProject project, @@ -41,18 +40,13 @@ public static async Task StartAsync( project, cancellationToken); - var captureDirectory = Path.GetFullPath( - Path.Combine( - project.ProjectPath, - "..", - "..", - "captures", - RunId, - project.VersionLine)); - Directory.CreateDirectory(captureDirectory); + var captureDirectory = EditorCaptureReport.RegisterSurface( + project, + Surface, + DiscoverInspectorTestNames(project)); var editorLogPath = Path.Combine( captureDirectory, - "InspectorCapture.Editor.log"); + "EditorCapture.Editor.log"); await EditorLifecycle.CloseRunningAsync( project, @@ -141,13 +135,13 @@ public static async Task CaptureAsync( context.CaptureDirectory, $"{testName}.png"); var prefabPath = - $"Packages/com.annulusgames.alchemy.inspector-test/{testName}.prefab"; + $"Packages/com.annulusgames.alchemy.editor-ui-test/{testName}.prefab"; WriteProgress(project, $"Inspector {testName}: capturing..."); try { await UnityCli.FocusEditorAsync(project, cancellationToken); - var start = UnityCli.Deserialize( + var start = UnityCli.Deserialize( await UnityCli.RunCommandAsync( project, StartCommand, @@ -189,6 +183,11 @@ await UnityCli.RunCommandAsync( } EnsureCaptureExists(outputPath); + EditorCaptureReport.RecordCapture( + project, + Surface, + testName, + outputPath); WriteProgress( project, $"Inspector {testName}: captured {CaptureWidth}x{CaptureHeight}"); @@ -210,6 +209,32 @@ await UnityCli.RunCommandAsync( } } + public static string[] DiscoverInspectorTestNames(UnityProject project) + { + var packageDirectory = Path.GetFullPath( + Path.Combine( + project.ProjectPath, + "..", + "..", + "Alchemy.Tests", + "Assets", + "Alchemy.Tests.EditorUI")); + if (!Directory.Exists(packageDirectory)) + { + return []; + } + + return Directory + .EnumerateFiles( + packageDirectory, + "*.prefab", + SearchOption.TopDirectoryOnly) + .Select(Path.GetFileNameWithoutExtension) + .OfType() + .Order(StringComparer.Ordinal) + .ToArray(); + } + public static async Task StopAsync( UnityProject project, CancellationToken cancellationToken) @@ -238,7 +263,7 @@ await EditorLifecycle.CloseConnectedAsync( cancellationToken); } - private static async Task WaitForCaptureAsync( + private static async Task WaitForCaptureAsync( UnityProject project, string jobId, CancellationToken cancellationToken) @@ -247,7 +272,7 @@ private static async Task WaitForCaptureAsync( while (DateTimeOffset.UtcNow < deadline) { cancellationToken.ThrowIfCancellationRequested(); - var status = UnityCli.Deserialize( + var status = UnityCli.Deserialize( await UnityCli.RunCommandAsync( project, StatusCommand, @@ -310,7 +335,7 @@ private sealed record InspectorRunContext( int ProcessId, long ConsoleCursor); - private sealed class InspectorCaptureStatus + private sealed class EditorCaptureStatus { public string JobId { get; init; } = ""; public string Status { get; init; } = ""; diff --git a/tests/UnityTestRunner/UnityEditorCaptureVersionTests.cs b/tests/UnityTestRunner/UnityEditorCaptureVersionTests.cs new file mode 100644 index 0000000..6eaefcc --- /dev/null +++ b/tests/UnityTestRunner/UnityEditorCaptureVersionTests.cs @@ -0,0 +1,73 @@ +using TUnit.Core; + +namespace Alchemy.UnityTestRunner; + +public interface IUnityEditorCaptureTestProject +{ + static abstract UnityProject Project { get; } +} + +public abstract class UnityEditorCaptureTests + where TProject : IUnityEditorCaptureTestProject +{ + private static UnityProject Project => TProject.Project; + + [Before(HookType.Class)] + public static Task Start(CancellationToken cancellationToken) => + UnityEditorCaptureTest.StartAsync(Project, cancellationToken); + + [After(HookType.Class)] + public static Task Stop(CancellationToken cancellationToken) => + UnityEditorCaptureTest.StopAsync(Project, cancellationToken); + + [Test] + [MethodDataSource(nameof(InspectorTestNames), SkipIfEmpty = true)] + public Task Inspector( + string testName, + CancellationToken cancellationToken) => + UnityEditorCaptureTest.CaptureAsync( + Project, + testName, + cancellationToken); + + public static IEnumerable InspectorTestNames() + { + return UnityEditorCaptureTest.DiscoverInspectorTestNames(Project); + } +} + +[InheritsTests] +public sealed class Unity6000_0EditorCaptureTests : + UnityEditorCaptureTests, + IUnityEditorCaptureTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.0"); +} + +[InheritsTests] +public sealed class Unity6000_3EditorCaptureTests : + UnityEditorCaptureTests, + IUnityEditorCaptureTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.3"); +} + +[InheritsTests] +public sealed class Unity6000_5EditorCaptureTests : + UnityEditorCaptureTests, + IUnityEditorCaptureTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.5"); +} + +[InheritsTests] +public sealed class Unity6000_7EditorCaptureTests : + UnityEditorCaptureTests, + IUnityEditorCaptureTestProject +{ + public static UnityProject Project { get; } = + UnityProject.Locate("../versions/Unity6000.7"); +} diff --git a/tests/UnityTestRunner/UnityEditorLifecycle.cs b/tests/UnityTestRunner/UnityEditorLifecycle.cs index b572ab9..17a76ab 100644 --- a/tests/UnityTestRunner/UnityEditorLifecycle.cs +++ b/tests/UnityTestRunner/UnityEditorLifecycle.cs @@ -4,7 +4,7 @@ namespace Alchemy.UnityTestRunner; internal sealed class UnityEditorLifecycle(UnityCli unityCli) { - private const string CloseCommand = "alchemy_inspector_capture_close"; + private const string CloseCommand = "alchemy_editor_capture_close"; private static readonly TimeSpan ShutdownTimeout = TimeSpan.FromSeconds(30); @@ -96,6 +96,24 @@ internal static string GetEditorExecutable(string editorPath) return Path.Combine(editorPath, "Editor", "Unity"); } + internal static int? FindRunningEditorProcessId(string executable) + { + var processName = Path.GetFileNameWithoutExtension(executable); + foreach (var process in Process.GetProcessesByName(processName)) + { + using (process) + { + if (process.MainModule?.FileName is { } processPath && + PathsEqual(executable, processPath)) + { + return process.Id; + } + } + } + + return null; + } + internal static async Task CloseProcessAsync( int processId, Action writeProgress, diff --git a/tests/UnityTestRunner/UnityInspectorVersionTests.cs b/tests/UnityTestRunner/UnityInspectorVersionTests.cs deleted file mode 100644 index 49bcd57..0000000 --- a/tests/UnityTestRunner/UnityInspectorVersionTests.cs +++ /dev/null @@ -1,83 +0,0 @@ -using TUnit.Core; - -namespace Alchemy.UnityTestRunner; - -public interface IUnityInspectorTestProject -{ - static abstract UnityProject Project { get; } -} - -public abstract class UnityInspectorTests - where TProject : IUnityInspectorTestProject -{ - private static UnityProject Project => TProject.Project; - - [Before(HookType.Class)] - public static Task Start(CancellationToken cancellationToken) => - UnityInspectorTest.StartAsync(Project, cancellationToken); - - [After(HookType.Class)] - public static Task Stop(CancellationToken cancellationToken) => - UnityInspectorTest.StopAsync(Project, cancellationToken); - - [Test] - [Arguments("ButtonTest")] - [Arguments("DepthTest")] - [Arguments("InheritedSerializeTest")] - [Arguments("OnListViewChangedTest")] - [Arguments("PreviewTest")] - [Arguments("StringListTest")] - [Arguments("UnsignedTest")] - public Task Inspector( - string testName, - CancellationToken cancellationToken) => - UnityInspectorTest.CaptureAsync( - Project, - testName, - cancellationToken); -} - -[InheritsTests] -public sealed class Unity6000_0InspectorTests : - UnityInspectorTests, - IUnityInspectorTestProject -{ - public static UnityProject Project { get; } = - UnityProject.Locate("../versions/Unity6000.0"); -} - -[InheritsTests] -public sealed class Unity6000_3InspectorTests : - UnityInspectorTests, - IUnityInspectorTestProject -{ - public static UnityProject Project { get; } = - UnityProject.Locate("../versions/Unity6000.3"); -} - -[InheritsTests] -public sealed class Unity6000_4InspectorTests : - UnityInspectorTests, - IUnityInspectorTestProject -{ - public static UnityProject Project { get; } = - UnityProject.Locate("../versions/Unity6000.4"); -} - -[InheritsTests] -public sealed class Unity6000_5InspectorTests : - UnityInspectorTests, - IUnityInspectorTestProject -{ - public static UnityProject Project { get; } = - UnityProject.Locate("../versions/Unity6000.5"); -} - -[InheritsTests] -public sealed class Unity6000_7InspectorTests : - UnityInspectorTests, - IUnityInspectorTestProject -{ - public static UnityProject Project { get; } = - UnityProject.Locate("../versions/Unity6000.7"); -} diff --git a/tests/UnityTestRunner/UnityTest.cs b/tests/UnityTestRunner/UnityTest.cs index c5faf94..659db46 100644 --- a/tests/UnityTestRunner/UnityTest.cs +++ b/tests/UnityTestRunner/UnityTest.cs @@ -1,6 +1,5 @@ using System.Collections.Concurrent; using System.Globalization; -using System.Text; using TUnit.Core; namespace Alchemy.UnityTestRunner; @@ -18,6 +17,10 @@ internal static class UnityTest }); private static readonly ConcurrentDictionary Runs = new(StringComparer.OrdinalIgnoreCase); + private static readonly ConcurrentDictionary ModeGates = + new(StringComparer.OrdinalIgnoreCase); + private static readonly TimeSpan RunTimeout = + TimeSpan.FromMinutes(15); public static async Task RefreshAsync( UnityProject project, @@ -99,44 +102,35 @@ public static async Task RunAsync( var reportPath = Path.Combine(context.LogDirectory, $"{mode}.xml"); var editorLogPath = Path.Combine(context.LogDirectory, $"{mode}.log"); - var cliLogPath = Path.Combine(context.LogDirectory, $"{mode}.cli.log"); + var cliLogPath = project.MajorVersion >= 6000 + ? string.Empty + : Path.Combine(context.LogDirectory, $"{mode}.cli.log"); + WriteProgress(project, $"{mode}: running..."); try { + if (project.MajorVersion >= 6000) + { + await RunUnityCliModeAsync( + project, + context, + mode, + reportPath, + editorLogPath, + cancellationToken); + ValidateReport(project, mode, reportPath); + return; + } + var result = await RunUnityAsync( project, context.EditorPath, mode, reportPath, editorLogPath, - cliLogPath, cancellationToken); - if (!File.Exists(reportPath)) - { - throw new UnityExecutionException( - $"Unity exited with code {result.ExitCode} without producing an " + - $"NUnit report. See {editorLogPath} and {cliLogPath} for details." + - FormatProcessDiagnostic(result)); - } - - var report = NUnitReport.Load(reportPath); - WriteModeSummary(project, mode, report.Summary); - if (report.Summary.Total == 0) - { - throw new UnityExecutionException( - $"Unity {project.EditorVersion} discovered no {mode} tests. " + - $"See {reportPath}."); - } - - if (report.Summary.HasFailures) - { - throw new UnityExecutionException( - $"Unity {project.EditorVersion} {mode} tests failed: " + - FormatSummary(report.Summary) + - $". See {reportPath}."); - } - + ValidateReport(project, mode, reportPath); if (result.ExitCode != 0) { throw new UnityExecutionException( @@ -159,36 +153,146 @@ public static async Task RunAsync( } } + private static async Task RunUnityCliModeAsync( + UnityProject project, + UnityRunContext context, + TestMode mode, + string reportPath, + string editorLogPath, + CancellationToken cancellationToken) + { + var gate = ModeGates.GetOrAdd( + project.ProjectPath, + _ => new SemaphoreSlim(1, 1)); + await gate.WaitAsync(cancellationToken); + ConnectedUnityEditor? editor = null; + try + { + var editorArguments = BuildEditorTestArguments( + mode, + reportPath, + editorLogPath); + WriteProgress( + project, + $"{mode}: opening one Unity Editor..."); + editor = await UnityCli.OpenEditorWithArgumentsAsync( + project, + editorArguments, + cancellationToken, + waitForPipeline: false, + editorExecutable: UnityEditorLifecycle.GetEditorExecutable( + context.EditorPath)); + WriteProgress( + project, + $"{mode}: Editor {editor.ProcessId} is running"); + + var deadline = DateTimeOffset.UtcNow + RunTimeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + var connectedEditor = await UnityCli.FindConnectedEditorAsync( + project, + cancellationToken); + if (connectedEditor is null && File.Exists(reportPath)) + { + WriteProgress( + project, + $"{mode}: Editor completed the selected mode"); + return; + } + + await Task.Delay( + TimeSpan.FromMilliseconds(500), + cancellationToken); + } + + throw new UnityExecutionException( + $"Unity {project.EditorVersion} {mode} did not complete " + + $"within {RunTimeout}. See {editorLogPath}."); + } + finally + { + var processId = editor?.ProcessId > 0 + ? editor.ProcessId + : UnityEditorLifecycle.FindRunningEditorProcessId( + UnityEditorLifecycle.GetEditorExecutable( + context.EditorPath)); + if (processId is not null) + { + await UnityEditorLifecycle.CloseProcessAsync( + processId.Value, + message => WriteProgress(project, message), + CancellationToken.None); + } + + gate.Release(); + } + } + + private static string BuildEditorTestArguments( + TestMode mode, + string reportPath, + string editorLogPath) + { + var command = mode == TestMode.EditMode + ? "Alchemy.Tests.TestCommands.RunAllEditModeTests" + : "Alchemy.Tests.TestCommands.RunAllPlayModeTests"; + return + $"-batchmode -nographics -automated -projectPath . " + + $"-executeMethod {command} " + + $"-testResults \"{reportPath}\" --auto-quit " + + $"-logFile \"{editorLogPath}\""; + } + + private static void ValidateReport( + UnityProject project, + TestMode mode, + string reportPath) + { + if (!File.Exists(reportPath)) + { + throw new UnityExecutionException( + $"Unity did not produce the {mode} NUnit report: {reportPath}."); + } + + var report = NUnitReport.Load(reportPath); + WriteModeSummary(project, mode, report.Summary); + if (report.Summary.Total == 0) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} discovered no {mode} tests. " + + $"See {reportPath}."); + } + + if (report.Summary.HasFailures) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} {mode} tests failed: " + + FormatSummary(report.Summary) + + $". See {reportPath}."); + } + } + private static async Task RunUnityAsync( UnityProject project, string editorPath, TestMode mode, string reportPath, string editorLogPath, - string cliLogPath, CancellationToken cancellationToken) { - var useCli = project.MajorVersion >= 6000; - var fileName = useCli - ? "unity" - : UnityEditorLifecycle.GetEditorExecutable(editorPath); - if (!useCli && !File.Exists(fileName)) + var fileName = UnityEditorLifecycle.GetEditorExecutable(editorPath); + if (!File.Exists(fileName)) { throw new UnityUnavailableException( $"The installed Unity editor executable does not exist: {fileName}"); } - var arguments = useCli - ? BuildUnityCliArguments( - project, - mode, - reportPath, - editorLogPath) - : BuildBatchModeArguments( - project, - mode, - reportPath, - editorLogPath); + var arguments = BuildBatchModeArguments( + project, + mode, + reportPath, + editorLogPath); var workingDirectory = project.ProjectPath; try @@ -200,17 +304,6 @@ private static async Task RunUnityAsync( workingDirectory, TerminateDescendantsOnExit: true), cancellationToken); - if (useCli) - { - await File.WriteAllTextAsync( - cliLogPath, - $"STDOUT{Environment.NewLine}{result.StandardOutput}" + - $"{Environment.NewLine}STDERR{Environment.NewLine}" + - result.StandardError, - Encoding.UTF8, - cancellationToken); - } - return result; } catch (ProcessExecutionException exception) @@ -221,30 +314,6 @@ await File.WriteAllTextAsync( } } - private static IReadOnlyList BuildUnityCliArguments( - UnityProject project, - TestMode mode, - string reportPath, - string logPath) - { - return - [ - "--no-banner", - "--non-interactive", - "test", - project.ProjectPath, - "--editor-version", - project.EditorVersion, - "--mode", - mode.ToString(), - "--output", - reportPath, - "--", - "-logFile", - logPath, - ]; - } - private static IReadOnlyList BuildLibraryWarmupArguments( UnityProject project, string logPath) diff --git a/tests/UnityTestRunner/UnityTestRunner.csproj b/tests/UnityTestRunner/UnityTestRunner.csproj index b36bd23..305906b 100644 --- a/tests/UnityTestRunner/UnityTestRunner.csproj +++ b/tests/UnityTestRunner/UnityTestRunner.csproj @@ -12,4 +12,10 @@ + + + + diff --git a/tests/UnityTestRunner/UnityVersionTests.cs b/tests/UnityTestRunner/UnityVersionTests.cs index 08a5ee9..1a37f86 100644 --- a/tests/UnityTestRunner/UnityVersionTests.cs +++ b/tests/UnityTestRunner/UnityVersionTests.cs @@ -56,24 +56,6 @@ public Task PlayMode(CancellationToken cancellationToken) => UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); } -public sealed class Unity6000_4UnitTests -{ - private static readonly UnityProject Project = - UnityProject.Locate("../versions/Unity6000.4"); - - [Before(HookType.Class)] - public static Task Refresh(CancellationToken cancellationToken) => - UnityTest.RefreshAsync(Project, cancellationToken); - - [Test] - public Task EditMode(CancellationToken cancellationToken) => - UnityTest.RunAsync(Project, TestMode.EditMode, cancellationToken); - - [Test] - public Task PlayMode(CancellationToken cancellationToken) => - UnityTest.RunAsync(Project, TestMode.PlayMode, cancellationToken); -} - public sealed class Unity6000_5UnitTests { private static readonly UnityProject Project = diff --git a/tests/versions/Unity2022.3/Packages/manifest.json b/tests/versions/Unity2022.3/Packages/manifest.json index d741cbe..ae042d1 100644 --- a/tests/versions/Unity2022.3/Packages/manifest.json +++ b/tests/versions/Unity2022.3/Packages/manifest.json @@ -1,13 +1,13 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity2022.3/Packages/packages-lock.json b/tests/versions/Unity2022.3/Packages/packages-lock.json index 12f6d58..a8e0f05 100644 --- a/tests/versions/Unity2022.3/Packages/packages-lock.json +++ b/tests/versions/Unity2022.3/Packages/packages-lock.json @@ -6,8 +6,8 @@ "source": "local", "dependencies": {} }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { diff --git a/tests/versions/Unity6000.0/Packages/manifest.json b/tests/versions/Unity6000.0/Packages/manifest.json index c139113..c04da22 100644 --- a/tests/versions/Unity6000.0/Packages/manifest.json +++ b/tests/versions/Unity6000.0/Packages/manifest.json @@ -1,14 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.0/Packages/packages-lock.json b/tests/versions/Unity6000.0/Packages/packages-lock.json index e73c9a3..bc49f90 100644 --- a/tests/versions/Unity6000.0/Packages/packages-lock.json +++ b/tests/versions/Unity6000.0/Packages/packages-lock.json @@ -6,8 +6,8 @@ "source": "local", "dependencies": {} }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { diff --git a/tests/versions/Unity6000.3/Packages/manifest.json b/tests/versions/Unity6000.3/Packages/manifest.json index c139113..c04da22 100644 --- a/tests/versions/Unity6000.3/Packages/manifest.json +++ b/tests/versions/Unity6000.3/Packages/manifest.json @@ -1,14 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.3/Packages/packages-lock.json b/tests/versions/Unity6000.3/Packages/packages-lock.json index 1b916e6..a4ca775 100644 --- a/tests/versions/Unity6000.3/Packages/packages-lock.json +++ b/tests/versions/Unity6000.3/Packages/packages-lock.json @@ -6,8 +6,8 @@ "source": "local", "dependencies": {} }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { diff --git a/tests/versions/Unity6000.4/.gitignore b/tests/versions/Unity6000.4/.gitignore deleted file mode 100644 index 2987666..0000000 --- a/tests/versions/Unity6000.4/.gitignore +++ /dev/null @@ -1,78 +0,0 @@ -# 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 -# -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Uu]ser[Ss]ettings/ - -# MemoryCaptures can get excessive in size. -# They also could contain extremely sensitive data -/[Mm]emoryCaptures/ - -# 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* - -# Visual Studio cache directory -.vs/ - -# Gradle cache directory -.gradle/ - -# Autogenerated VS/MD/Consulo solution and project files -ExportedObj/ -.consulo/ -*.csproj -*.unityproj -*.sln -*.suo -*.tmp -*.user -*.userprefs -*.pidb -*.booproj -*.svd -*.pdb -*.mdb -*.opendb -*.VC.db - -# Unity3D generated meta files -*.pidb.meta -*.pdb.meta -*.mdb.meta - -# Unity3D generated file on crash reports -sysinfo.txt - -# Builds -*.apk -*.aab -*.unitypackage -*.app - -# Crashlytics generated file -crashlytics-build.properties - -# Packed Addressables -/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* - -# Temporary auto-generated Android Assets -/[Aa]ssets/[Ss]treamingAssets/aa.meta -/[Aa]ssets/[Ss]treamingAssets/aa/* - -# Visual Studio Code -.vscode - -## DS_Store -*.DS_Store diff --git a/tests/versions/Unity6000.4/Assets/Scenes.meta b/tests/versions/Unity6000.4/Assets/Scenes.meta deleted file mode 100644 index e59fb45..0000000 --- a/tests/versions/Unity6000.4/Assets/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9c53962885c2c4f449125a979d6ad240 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity deleted file mode 100644 index 89d7244..0000000 --- a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity +++ /dev/null @@ -1,407 +0,0 @@ -%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: 9 - 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: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - 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_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - 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: 2 - 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 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &330585543 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 330585546} - - component: {fileID: 330585545} - - component: {fileID: 330585544} - - component: {fileID: 330585547} - 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 &330585544 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 ---- !u!20 &330585545 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - 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: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &330585546 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &330585547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - 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: 1 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!1 &410087039 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 410087041} - - component: {fileID: 410087040} - - component: {fileID: 410087042} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &410087040 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 2 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 5000 - m_UseColorTemperature: 1 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &410087041 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!114 &410087042 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 1 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} ---- !u!1 &832575517 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 832575519} - - component: {fileID: 832575518} - m_Layer: 0 - m_Name: Global Volume - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &832575518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IsGlobal: 1 - priority: 0 - blendDistance: 0 - weight: 1 - sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} ---- !u!4 &832575519 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - 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_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta b/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta deleted file mode 100644 index 9531828..0000000 --- a/tests/versions/Unity6000.4/Assets/Scenes/SampleScene.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 99c9720ab356a0642a771bea13969a05 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tests/versions/Unity6000.4/Packages/manifest.json b/tests/versions/Unity6000.4/Packages/manifest.json deleted file mode 100644 index 9b7e835..0000000 --- a/tests/versions/Unity6000.4/Packages/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "dependencies": { - "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", - "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", - "com.unity.inputsystem": "1.19.0", - "com.unity.serialization": "3.1.5", - "com.unity.modules.uielements": "1.0.0", - "com.unity.pipeline": "0.4.0-exp.1" - }, - "testables": [ - "com.annulusgames.alchemy.inspector-test", - "com.annulusgames.alchemy.test" - ] -} diff --git a/tests/versions/Unity6000.4/Packages/packages-lock.json b/tests/versions/Unity6000.4/Packages/packages-lock.json deleted file mode 100644 index 6cf622b..0000000 --- a/tests/versions/Unity6000.4/Packages/packages-lock.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "dependencies": { - "com.annulusgames.alchemy": { - "version": "file:../../../../Alchemy/Assets/Alchemy", - "depth": 0, - "source": "local", - "dependencies": {} - }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", - "depth": 0, - "source": "local", - "dependencies": { - "com.unity.test-framework": "1.1.31" - } - }, - "com.annulusgames.alchemy.test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", - "depth": 0, - "source": "local", - "dependencies": { - "com.unity.test-framework": "1.1.31" - } - }, - "com.unity.burst": { - "version": "1.8.29", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.mathematics": "1.2.1", - "com.unity.modules.jsonserialize": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.collections": { - "version": "6.4.0", - "depth": 1, - "source": "builtin", - "dependencies": { - "com.unity.burst": "1.8.23", - "com.unity.mathematics": "1.3.2", - "com.unity.nuget.mono-cecil": "1.11.5", - "com.unity.test-framework": "1.4.6", - "com.unity.test-framework.performance": "3.0.3" - } - }, - "com.unity.ext.nunit": { - "version": "2.0.5", - "depth": 2, - "source": "builtin", - "dependencies": {} - }, - "com.unity.inputsystem": { - "version": "1.19.0", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.modules.uielements": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.mathematics": { - "version": "1.3.3", - "depth": 2, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.nuget.mono-cecil": { - "version": "1.11.6", - "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.nuget.newtonsoft-json": { - "version": "3.2.2", - "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.pipeline": { - "version": "0.4.0-exp.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.test-framework": "1.1.33", - "com.unity.nuget.mono-cecil": "1.11.6", - "com.unity.modules.uielements": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.screencapture": "1.0.0", - "com.unity.nuget.newtonsoft-json": "3.0.2" - }, - "url": "https://packages.unity.com" - }, - "com.unity.serialization": { - "version": "3.1.5", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.burst": "1.8.13", - "com.unity.collections": "2.4.2" - }, - "url": "https://packages.unity.com" - }, - "com.unity.test-framework": { - "version": "1.6.0", - "depth": 1, - "source": "builtin", - "dependencies": { - "com.unity.ext.nunit": "2.0.3", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - } - }, - "com.unity.test-framework.performance": { - "version": "3.5.0", - "depth": 2, - "source": "registry", - "dependencies": { - "com.unity.test-framework": "1.1.33", - "com.unity.modules.jsonserialize": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.modules.hierarchycore": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.imageconversion": { - "version": "1.0.0", - "depth": 2, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.imgui": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.jsonserialize": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.physics": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.screencapture": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": { - "com.unity.modules.imageconversion": "1.0.0" - } - }, - "com.unity.modules.ui": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.uielements": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.hierarchycore": "1.0.0", - "com.unity.modules.physics": "1.0.0" - } - } - } -} diff --git a/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json b/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json deleted file mode 100644 index b8fd584..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/AlchemySettings.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "hierarchyObjectMode": 2, - "showHierarchyToggles": true, - "showComponentIcons": true, - "showTreeMap": false, - "treeMapColor": { - "r": 0.5299999713897705, - "g": 0.5299999713897705, - "b": 0.5299999713897705, - "a": 0.44999998807907107 - }, - "showSeparator": false, - "showRowShading": false, - "separatorColor": { - "r": 0.1899999976158142, - "g": 0.1899999976158142, - "b": 0.1899999976158142, - "a": 0.0 - }, - "evenRowColor": { - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.07000000029802323 - }, - "oddRowColor": { - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - } -} diff --git a/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset b/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset deleted file mode 100644 index 07ebfb0..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/AudioManager.asset +++ /dev/null @@ -1,19 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!11 &1 -AudioManager: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Volume: 1 - Rolloff Scale: 1 - Doppler Factor: 1 - Default Speaker Mode: 2 - m_SampleRate: 0 - m_DSPBufferSize: 1024 - m_VirtualVoiceCount: 512 - m_RealVoiceCount: 32 - m_SpatializerPlugin: - m_AmbisonicDecoderPlugin: - m_DisableAudio: 0 - m_VirtualizeEffects: 1 - m_RequestedDSPBufferSize: 1024 diff --git a/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset b/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset deleted file mode 100644 index e7886b2..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/ClusterInputManager.asset +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!236 &1 -ClusterInputManager: - m_ObjectHideFlags: 0 - m_Inputs: [] diff --git a/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset b/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset deleted file mode 100644 index cdc1f3e..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/DynamicsManager.asset +++ /dev/null @@ -1,34 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!55 &1 -PhysicsManager: - m_ObjectHideFlags: 0 - serializedVersion: 11 - m_Gravity: {x: 0, y: -9.81, z: 0} - m_DefaultMaterial: {fileID: 0} - m_BounceThreshold: 2 - m_SleepThreshold: 0.005 - m_DefaultContactOffset: 0.01 - m_DefaultSolverIterations: 6 - m_DefaultSolverVelocityIterations: 1 - m_QueriesHitBackfaces: 0 - m_QueriesHitTriggers: 1 - m_EnableAdaptiveForce: 0 - m_ClothInterCollisionDistance: 0 - m_ClothInterCollisionStiffness: 0 - m_ContactsGeneration: 1 - m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - m_AutoSimulation: 1 - m_AutoSyncTransforms: 0 - m_ReuseCollisionCallbacks: 1 - m_ClothInterCollisionSettingsToggle: 0 - m_ContactPairsMode: 0 - m_BroadphaseType: 0 - m_WorldBounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 250, y: 250, z: 250} - m_WorldSubdivisions: 8 - m_FrictionType: 0 - m_EnableEnhancedDeterminism: 0 - m_EnableUnifiedHeightmaps: 1 - m_DefaultMaxAngluarSpeed: 7 diff --git a/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset deleted file mode 100644 index fa63119..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/EditorBuildSettings.asset +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1045 &1 -EditorBuildSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Scenes: [] - m_configObjects: - com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 289c1b55c9541489481df5cc06664110, type: 3} diff --git a/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset deleted file mode 100644 index 226f2d0..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/EditorSettings.asset +++ /dev/null @@ -1,52 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!159 &1 -EditorSettings: - m_ObjectHideFlags: 0 - serializedVersion: 15 - m_SerializationMode: 2 - m_LineEndingsForNewScripts: 0 - m_DefaultBehaviorMode: 0 - m_PrefabRegularEnvironment: {fileID: 0} - m_PrefabUIEnvironment: {fileID: 0} - m_SpritePackerMode: 0 - m_SpritePackerCacheSize: 10 - m_SpritePackerPaddingPower: 1 - m_Bc7TextureCompressor: 0 - m_EtcTextureCompressorBehavior: 1 - m_EtcTextureFastCompressor: 1 - m_EtcTextureNormalCompressor: 2 - m_EtcTextureBestCompressor: 4 - m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref - m_ProjectGenerationRootNamespace: - m_EnableTextureStreamingInEditMode: 1 - m_EnableTextureStreamingInPlayMode: 1 - m_EnableEditorAsyncCPUTextureLoading: 0 - m_AsyncShaderCompilation: 1 - m_BlockShaders: 0 - m_UnlockBlockShaders: 0 - m_PrefabModeAllowAutoSave: 1 - m_EnterPlayModeOptionsEnabled: 1 - m_EnterPlayModeOptions: 0 - m_GameObjectNamingDigits: 1 - m_GameObjectNamingScheme: 0 - m_AssetNamingUsesSpace: 1 - m_InspectorUseIMGUIDefaultInspector: 0 - m_UseLegacyProbeSampleCount: 0 - m_SerializeInlineMappingsOnOneLine: 1 - m_DisableCookiesInLightmapper: 0 - m_ShadowmaskStitching: 0 - m_AssetPipelineMode: 1 - m_RefreshImportMode: 0 - m_CacheServerMode: 0 - m_CacheServerEndpoint: - m_CacheServerNamespacePrefix: default - m_CacheServerEnableDownload: 1 - m_CacheServerEnableUpload: 1 - m_CacheServerEnableTls: 0 - m_CacheServerValidationMode: 2 - m_CacheServerDownloadBatchSize: 128 - m_EnableEnlightenBakedGI: 0 - m_ReferencedClipsExactNaming: 1 - m_ForceAssetUnloadAndGCOnSceneLoad: 1 - m_HideBuildProfileClassicPlatforms: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset deleted file mode 100644 index 43369e3..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/GraphicsSettings.asset +++ /dev/null @@ -1,63 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!30 &1 -GraphicsSettings: - m_ObjectHideFlags: 0 - serializedVersion: 13 - m_Deferred: - m_Mode: 1 - m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} - m_DeferredReflections: - m_Mode: 1 - m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} - m_ScreenSpaceShadows: - m_Mode: 1 - m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} - m_LegacyDeferred: - m_Mode: 1 - m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} - m_DepthNormals: - m_Mode: 1 - m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} - m_MotionVectors: - m_Mode: 1 - m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} - m_LightHalo: - m_Mode: 1 - m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} - m_LensFlare: - m_Mode: 1 - m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} - m_AlwaysIncludedShaders: - - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - m_PreloadedShaders: [] - m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, - type: 0} - m_CustomRenderPipeline: {fileID: 0} - m_TransparencySortMode: 0 - m_TransparencySortAxis: {x: 0, y: 0, z: 1} - m_DefaultRenderingPath: 1 - m_DefaultMobileRenderingPath: 1 - m_TierSettings: [] - m_LightmapStripping: 0 - m_FogStripping: 0 - m_InstancingStripping: 0 - m_LightmapKeepPlain: 1 - m_LightmapKeepDirCombined: 1 - m_LightmapKeepDynamicPlain: 1 - m_LightmapKeepDynamicDirCombined: 1 - m_LightmapKeepShadowMask: 1 - m_LightmapKeepSubtractive: 1 - m_FogKeepLinear: 1 - m_FogKeepExp: 1 - m_FogKeepExp2: 1 - m_AlbedoSwatchInfos: [] - m_LightsUseLinearIntensity: 0 - m_LightsUseColorTemperature: 0 - m_LogWhenShaderIsCompiled: 0 - m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset b/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset deleted file mode 100644 index 17c8f53..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/InputManager.asset +++ /dev/null @@ -1,295 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!13 &1 -InputManager: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Axes: - - serializedVersion: 3 - m_Name: Horizontal - descriptiveName: - descriptiveNegativeName: - negativeButton: left - positiveButton: right - altNegativeButton: a - altPositiveButton: d - gravity: 3 - dead: 0.001 - sensitivity: 3 - snap: 1 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Vertical - descriptiveName: - descriptiveNegativeName: - negativeButton: down - positiveButton: up - altNegativeButton: s - altPositiveButton: w - gravity: 3 - dead: 0.001 - sensitivity: 3 - snap: 1 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire1 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left ctrl - altNegativeButton: - altPositiveButton: mouse 0 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire2 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left alt - altNegativeButton: - altPositiveButton: mouse 1 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire3 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: left shift - altNegativeButton: - altPositiveButton: mouse 2 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Jump - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: space - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse X - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse Y - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 1 - joyNum: 0 - - serializedVersion: 3 - m_Name: Mouse ScrollWheel - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0 - sensitivity: 0.1 - snap: 0 - invert: 0 - type: 1 - axis: 2 - joyNum: 0 - - serializedVersion: 3 - m_Name: Horizontal - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0.19 - sensitivity: 1 - snap: 0 - invert: 0 - type: 2 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Vertical - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: - altNegativeButton: - altPositiveButton: - gravity: 0 - dead: 0.19 - sensitivity: 1 - snap: 0 - invert: 1 - type: 2 - axis: 1 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire1 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 0 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire2 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 1 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Fire3 - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 2 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Jump - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: joystick button 3 - altNegativeButton: - altPositiveButton: - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Submit - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: return - altNegativeButton: - altPositiveButton: joystick button 0 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Submit - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: enter - altNegativeButton: - altPositiveButton: space - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 - - serializedVersion: 3 - m_Name: Cancel - descriptiveName: - descriptiveNegativeName: - negativeButton: - positiveButton: escape - altNegativeButton: - altPositiveButton: joystick button 1 - gravity: 1000 - dead: 0.001 - sensitivity: 1000 - snap: 0 - invert: 0 - type: 0 - axis: 0 - joyNum: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset b/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset deleted file mode 100644 index 5b5face..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/MemorySettings.asset +++ /dev/null @@ -1,35 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!387306366 &1 -MemorySettings: - m_ObjectHideFlags: 0 - m_EditorMemorySettings: - m_MainAllocatorBlockSize: -1 - m_ThreadAllocatorBlockSize: -1 - m_MainGfxBlockSize: -1 - m_ThreadGfxBlockSize: -1 - m_CacheBlockSize: -1 - m_TypetreeBlockSize: -1 - m_ProfilerBlockSize: -1 - m_ProfilerEditorBlockSize: -1 - m_BucketAllocatorGranularity: -1 - m_BucketAllocatorBucketsCount: -1 - m_BucketAllocatorBlockSize: -1 - m_BucketAllocatorBlockCount: -1 - m_ProfilerBucketAllocatorGranularity: -1 - m_ProfilerBucketAllocatorBucketsCount: -1 - m_ProfilerBucketAllocatorBlockSize: -1 - m_ProfilerBucketAllocatorBlockCount: -1 - m_TempAllocatorSizeMain: -1 - m_JobTempAllocatorBlockSize: -1 - m_BackgroundJobTempAllocatorBlockSize: -1 - m_JobTempAllocatorReducedBlockSize: -1 - m_TempAllocatorSizeGIBakingWorker: -1 - m_TempAllocatorSizeNavMeshWorker: -1 - m_TempAllocatorSizeAudioWorker: -1 - m_TempAllocatorSizeCloudWorker: -1 - m_TempAllocatorSizeGfx: -1 - m_TempAllocatorSizeJobWorker: -1 - m_TempAllocatorSizeBackgroundWorker: -1 - m_TempAllocatorSizePreloadManager: -1 - m_PlatformMemorySettings: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset b/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset deleted file mode 100644 index c19bcd7..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/MultiplayerManager.asset +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!655991488 &1 -MultiplayerManager: - m_ObjectHideFlags: 0 - m_EnableMultiplayerRoles: 0 - m_EnablePlayModeLocalDeployment: 0 - m_EnablePlayModeRemoteDeployment: 0 - m_StrippingTypes: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset b/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset deleted file mode 100644 index 3b0b7c3..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/NavMeshAreas.asset +++ /dev/null @@ -1,91 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!126 &1 -NavMeshProjectSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - areas: - - name: Walkable - cost: 1 - - name: Not Walkable - cost: 1 - - name: Jump - cost: 2 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - - name: - cost: 1 - m_LastAgentTypeID: -887442657 - m_Settings: - - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.75 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - debug: - m_Flags: 0 - m_SettingNames: - - Humanoid diff --git a/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset deleted file mode 100644 index 112a053..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/PackageManagerSettings.asset +++ /dev/null @@ -1,35 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &1 -MonoBehaviour: - m_ObjectHideFlags: 61 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_EnablePreReleasePackages: 0 - m_EnablePackageDependencies: 0 - m_AdvancedSettingsExpanded: 1 - m_ScopedRegistriesSettingsExpanded: 1 - m_SeeAllPackageVersions: 0 - oneTimeWarningShown: 0 - m_Registries: - - m_Id: main - m_Name: - m_Url: https://packages.unity.com - m_Scopes: [] - m_IsDefault: 1 - m_Capabilities: 7 - m_UserSelectedRegistryName: - m_UserAddingNewScopedRegistry: 0 - m_RegistryInfoDraft: - m_Modified: 0 - m_ErrorMessage: - m_UserModificationsInstanceId: -830 - m_OriginalInstanceId: -832 - m_LoadAssets: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json deleted file mode 100644 index 3c7b4c1..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "m_Dictionary": { - "m_DictionaryValues": [] - } -} \ No newline at end of file diff --git a/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset deleted file mode 100644 index 47880b1..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/Physics2DSettings.asset +++ /dev/null @@ -1,56 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!19 &1 -Physics2DSettings: - m_ObjectHideFlags: 0 - serializedVersion: 4 - m_Gravity: {x: 0, y: -9.81} - m_DefaultMaterial: {fileID: 0} - m_VelocityIterations: 8 - m_PositionIterations: 3 - m_VelocityThreshold: 1 - m_MaxLinearCorrection: 0.2 - m_MaxAngularCorrection: 8 - m_MaxTranslationSpeed: 100 - m_MaxRotationSpeed: 360 - m_BaumgarteScale: 0.2 - m_BaumgarteTimeOfImpactScale: 0.75 - m_TimeToSleep: 0.5 - m_LinearSleepTolerance: 0.01 - m_AngularSleepTolerance: 2 - m_DefaultContactOffset: 0.01 - m_JobOptions: - serializedVersion: 2 - useMultithreading: 0 - useConsistencySorting: 0 - m_InterpolationPosesPerJob: 100 - m_NewContactsPerJob: 30 - m_CollideContactsPerJob: 100 - m_ClearFlagsPerJob: 200 - m_ClearBodyForcesPerJob: 200 - m_SyncDiscreteFixturesPerJob: 50 - m_SyncContinuousFixturesPerJob: 50 - m_FindNearestContactsPerJob: 100 - m_UpdateTriggerContactsPerJob: 100 - m_IslandSolverCostThreshold: 100 - m_IslandSolverBodyCostScale: 1 - m_IslandSolverContactCostScale: 10 - m_IslandSolverJointCostScale: 10 - m_IslandSolverBodiesPerJob: 50 - m_IslandSolverContactsPerJob: 50 - m_AutoSimulation: 1 - m_QueriesHitTriggers: 1 - m_QueriesStartInColliders: 1 - m_CallbacksOnDisable: 1 - m_ReuseCollisionCallbacks: 1 - m_AutoSyncTransforms: 0 - m_AlwaysShowColliders: 0 - m_ShowColliderSleep: 1 - m_ShowColliderContacts: 0 - m_ShowColliderAABB: 0 - m_ContactArrowScale: 0.2 - m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} - m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} - m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} - m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} - m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset b/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset deleted file mode 100644 index 67a94da..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/PresetManager.asset +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1386491679 &1 -PresetManager: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_DefaultPresets: {} diff --git a/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset deleted file mode 100644 index cf1ade4..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/ProjectSettings.asset +++ /dev/null @@ -1,780 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!129 &1 -PlayerSettings: - m_ObjectHideFlags: 0 - serializedVersion: 28 - productGUID: db809e84cdb62c646b5fc27701189926 - AndroidProfiler: 0 - AndroidFilterTouchesWhenObscured: 0 - AndroidEnableSustainedPerformanceMode: 0 - defaultScreenOrientation: 4 - targetDevice: 2 - useOnDemandResources: 0 - accelerometerFrequency: 60 - companyName: DefaultCompany - productName: Unity6000.4 - defaultCursor: {fileID: 0} - cursorHotspot: {x: 0, y: 0} - m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} - m_ShowUnitySplashScreen: 1 - m_ShowUnitySplashLogo: 1 - m_SplashScreenOverlayOpacity: 1 - m_SplashScreenAnimation: 1 - m_SplashScreenLogoStyle: 1 - m_SplashScreenDrawMode: 0 - m_SplashScreenBackgroundAnimationZoom: 1 - m_SplashScreenLogoAnimationZoom: 1 - m_SplashScreenBackgroundLandscapeAspect: 1 - m_SplashScreenBackgroundPortraitAspect: 1 - m_SplashScreenBackgroundLandscapeUvs: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - m_SplashScreenBackgroundPortraitUvs: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - m_SplashScreenLogos: [] - m_VirtualRealitySplashScreen: {fileID: 0} - defaultScreenWidth: 1920 - defaultScreenHeight: 1080 - defaultScreenWidthWeb: 960 - defaultScreenHeightWeb: 600 - m_StereoRenderingPath: 0 - m_ActiveColorSpace: 1 - unsupportedMSAAFallback: 0 - m_SpriteBatchMaxVertexCount: 65535 - m_SpriteBatchVertexThreshold: 300 - m_MTRendering: 1 - mipStripping: 0 - numberOfMipsStripped: 0 - numberOfMipsStrippedPerMipmapLimitGroup: {} - m_StackTraceTypes: 010000000100000001000000010000000100000001000000 - iosShowActivityIndicatorOnLoading: -1 - androidShowActivityIndicatorOnLoading: -1 - iosUseCustomAppBackgroundBehavior: 0 - allowedAutorotateToPortrait: 1 - allowedAutorotateToPortraitUpsideDown: 1 - allowedAutorotateToLandscapeRight: 1 - allowedAutorotateToLandscapeLeft: 1 - useOSAutorotation: 1 - use32BitDisplayBuffer: 1 - preserveFramebufferAlpha: 0 - disableDepthAndStencilBuffers: 0 - androidStartInFullscreen: 1 - androidRenderOutsideSafeArea: 1 - androidUseSwappy: 1 - androidDisplayOptions: 1 - androidBlitType: 0 - androidResizeableActivity: 1 - androidDefaultWindowWidth: 1920 - androidDefaultWindowHeight: 1080 - androidMinimumWindowWidth: 400 - androidMinimumWindowHeight: 300 - androidFullscreenMode: 1 - androidAutoRotationBehavior: 1 - androidPredictiveBackSupport: 0 - androidApplicationEntry: 2 - defaultIsNativeResolution: 1 - macRetinaSupport: 1 - runInBackground: 1 - muteOtherAudioSources: 0 - Prepare IOS For Recording: 0 - Force IOS Speakers When Recording: 0 - audioSpatialExperience: 0 - deferSystemGesturesMode: 0 - hideHomeButton: 0 - submitAnalytics: 1 - usePlayerLog: 1 - dedicatedServerOptimizations: 1 - bakeCollisionMeshes: 0 - forceSingleInstance: 0 - useFlipModelSwapchain: 1 - resizableWindow: 0 - useMacAppStoreValidation: 0 - macAppStoreCategory: public.app-category.games - gpuSkinning: 1 - meshDeformation: 2 - xboxPIXTextureCapture: 0 - xboxEnableAvatar: 0 - xboxEnableKinect: 0 - xboxEnableKinectAutoTracking: 0 - xboxEnableFitness: 0 - visibleInBackground: 1 - allowFullscreenSwitch: 1 - fullscreenMode: 1 - xboxSpeechDB: 0 - xboxEnableHeadOrientation: 0 - xboxEnableGuest: 0 - xboxEnablePIXSampling: 0 - metalFramebufferOnly: 0 - metalUseMetalDisplayLink: 0 - xboxOneResolution: 0 - xboxOneSResolution: 0 - xboxOneXResolution: 3 - xboxOneMonoLoggingLevel: 0 - xboxOneLoggingLevel: 1 - xboxOneDisableEsram: 0 - xboxOneEnableTypeOptimization: 0 - xboxOnePresentImmediateThreshold: 0 - switchQueueCommandMemory: 0 - switchQueueControlMemory: 16384 - switchQueueComputeMemory: 262144 - switchNVNShaderPoolsGranularity: 33554432 - switchNVNDefaultPoolsGranularity: 16777216 - switchNVNOtherPoolsGranularity: 16777216 - switchGpuScratchPoolGranularity: 2097152 - switchAllowGpuScratchShrinking: 0 - switchNVNMaxPublicTextureIDCount: 0 - switchNVNMaxPublicSamplerIDCount: 0 - switchMaxWorkerMultiple: 8 - switchNVNGraphicsFirmwareMemory: 32 - switchGraphicsJobsSyncAfterKick: 1 - vulkanNumSwapchainBuffers: 3 - vulkanEnableSetSRGBWrite: 0 - vulkanEnablePreTransform: 1 - vulkanEnableLateAcquireNextImage: 0 - vulkanEnableCommandBufferRecycling: 1 - loadStoreDebugModeEnabled: 0 - visionOSBundleVersion: 1.0 - tvOSBundleVersion: 1.0 - bundleVersion: 0.1 - preloadedAssets: [] - metroInputSource: 0 - wsaTransparentSwapchain: 0 - xboxOneDisableKinectGpuReservation: 1 - xboxOneEnable7thCore: 1 - vrSettings: - enable360StereoCapture: 0 - enableFrameTimingStats: 0 - enableOpenGLProfilerGPURecorders: 1 - allowHDRDisplaySupport: 0 - useHDRDisplay: 0 - hdrBitDepth: 0 - m_ColorGamuts: 00000000 - targetPixelDensity: 30 - resolutionScalingMode: 0 - resetResolutionOnWindowResize: 0 - androidSupportedAspectRatio: 1 - androidMaxAspectRatio: 2.4 - androidMinAspectRatio: 1 - applicationIdentifier: - Standalone: com.DefaultCompany.3D-Project - buildNumber: - Standalone: 0 - VisionOS: 0 - iPhone: 0 - tvOS: 0 - overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 25 - AndroidTargetSdkVersion: 0 - AndroidPreferredInstallLocation: 1 - AndroidPreferredDataLocation: 1 - aotOptions: - stripEngineCode: 1 - iPhoneStrippingLevel: 0 - iPhoneScriptCallOptimization: 0 - ForceInternetPermission: 0 - ForceSDCardPermission: 0 - CreateWallpaper: 0 - androidSplitApplicationBinary: 0 - keepLoadedShadersAlive: 0 - StripUnusedMeshComponents: 1 - strictShaderVariantMatching: 0 - VertexChannelCompressionMask: 4054 - iPhoneSdkVersion: 988 - iOSSimulatorArchitecture: 0 - iOSTargetOSVersionString: 15.0 - tvOSSdkVersion: 0 - tvOSSimulatorArchitecture: 0 - tvOSRequireExtendedGameController: 0 - tvOSTargetOSVersionString: 15.0 - VisionOSSdkVersion: 0 - VisionOSTargetOSVersionString: 1.0 - uIPrerenderedIcon: 0 - uIRequiresPersistentWiFi: 0 - uIRequiresFullScreen: 1 - uIStatusBarHidden: 1 - uIExitOnSuspend: 0 - uIStatusBarStyle: 0 - appleTVSplashScreen: {fileID: 0} - appleTVSplashScreen2x: {fileID: 0} - tvOSSmallIconLayers: [] - tvOSSmallIconLayers2x: [] - tvOSLargeIconLayers: [] - tvOSLargeIconLayers2x: [] - tvOSTopShelfImageLayers: [] - tvOSTopShelfImageLayers2x: [] - tvOSTopShelfImageWideLayers: [] - tvOSTopShelfImageWideLayers2x: [] - iOSLaunchScreenType: 0 - iOSLaunchScreenPortrait: {fileID: 0} - iOSLaunchScreenLandscape: {fileID: 0} - iOSLaunchScreenBackgroundColor: - serializedVersion: 2 - rgba: 0 - iOSLaunchScreenFillPct: 100 - iOSLaunchScreenSize: 100 - iOSLaunchScreeniPadType: 0 - iOSLaunchScreeniPadImage: {fileID: 0} - iOSLaunchScreeniPadBackgroundColor: - serializedVersion: 2 - rgba: 0 - iOSLaunchScreeniPadFillPct: 100 - iOSLaunchScreeniPadSize: 100 - iOSLaunchScreenCustomStoryboardPath: - iOSLaunchScreeniPadCustomStoryboardPath: - iOSDeviceRequirements: [] - iOSURLSchemes: [] - macOSURLSchemes: [] - iOSBackgroundModes: 0 - iOSMetalForceHardShadows: 0 - metalEditorSupport: 1 - metalAPIValidation: 1 - metalCompileShaderBinary: 0 - iOSRenderExtraFrameOnPause: 0 - iosCopyPluginsCodeInsteadOfSymlink: 0 - appleDeveloperTeamID: - iOSManualSigningProvisioningProfileID: - tvOSManualSigningProvisioningProfileID: - VisionOSManualSigningProvisioningProfileID: - iOSManualSigningProvisioningProfileType: 0 - tvOSManualSigningProvisioningProfileType: 0 - VisionOSManualSigningProvisioningProfileType: 0 - appleEnableAutomaticSigning: 0 - iOSRequireARKit: 0 - iOSAutomaticallyDetectAndAddCapabilities: 1 - appleEnableProMotion: 0 - shaderPrecisionModel: 0 - clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea - templatePackageId: com.unity.template.3d@9.1.0 - templateDefaultScene: Assets/Scenes/SampleScene.unity - useCustomMainManifest: 0 - useCustomLauncherManifest: 0 - useCustomMainGradleTemplate: 0 - useCustomLauncherGradleManifest: 0 - useCustomBaseGradleTemplate: 0 - useCustomGradlePropertiesTemplate: 0 - useCustomGradleSettingsTemplate: 0 - useCustomProguardFile: 0 - AndroidTargetArchitectures: 2 - AndroidAllowedArchitectures: -13 - AndroidSplashScreenScale: 0 - androidSplashScreen: {fileID: 0} - AndroidKeystoreName: - AndroidKeyaliasName: - AndroidEnableArmv9SecurityFeatures: 0 - AndroidEnableArm64MTE: 0 - AndroidBuildApkPerCpuArchitecture: 0 - AndroidTVCompatibility: 0 - AndroidIsGame: 1 - androidAppCategory: 3 - useAndroidAppCategory: 1 - androidAppCategoryOther: - AndroidEnableTango: 0 - androidEnableBanner: 1 - androidUseLowAccuracyLocation: 0 - androidUseCustomKeystore: 0 - m_AndroidBanners: - - width: 320 - height: 180 - banner: {fileID: 0} - androidGamepadSupportLevel: 0 - AndroidMinifyRelease: 0 - AndroidMinifyDebug: 0 - AndroidValidateAppBundleSize: 1 - AndroidAppBundleSizeToValidate: 150 - AndroidReportGooglePlayAppDependencies: 1 - androidSymbolsSizeThreshold: 800 - m_BuildTargetIcons: [] - m_BuildTargetPlatformIcons: [] - m_BuildTargetBatching: - - m_BuildTarget: Standalone - m_StaticBatching: 1 - m_DynamicBatching: 0 - - m_BuildTarget: tvOS - m_StaticBatching: 1 - m_DynamicBatching: 0 - - m_BuildTarget: Android - m_StaticBatching: 1 - m_DynamicBatching: 0 - - m_BuildTarget: iPhone - m_StaticBatching: 1 - m_DynamicBatching: 0 - - m_BuildTarget: WebGL - m_StaticBatching: 0 - m_DynamicBatching: 0 - m_BuildTargetShaderSettings: [] - m_BuildTargetGraphicsJobs: - - m_BuildTarget: MacStandaloneSupport - m_GraphicsJobs: 0 - - m_BuildTarget: Switch - m_GraphicsJobs: 1 - - m_BuildTarget: MetroSupport - m_GraphicsJobs: 1 - - m_BuildTarget: AppleTVSupport - m_GraphicsJobs: 0 - - m_BuildTarget: BJMSupport - m_GraphicsJobs: 1 - - m_BuildTarget: LinuxStandaloneSupport - m_GraphicsJobs: 1 - - m_BuildTarget: PS4Player - m_GraphicsJobs: 1 - - m_BuildTarget: iOSSupport - m_GraphicsJobs: 0 - - m_BuildTarget: WindowsStandaloneSupport - m_GraphicsJobs: 1 - - m_BuildTarget: XboxOnePlayer - m_GraphicsJobs: 1 - - m_BuildTarget: LuminSupport - m_GraphicsJobs: 0 - - m_BuildTarget: AndroidPlayer - m_GraphicsJobs: 0 - - m_BuildTarget: WebGLSupport - m_GraphicsJobs: 0 - m_BuildTargetGraphicsJobMode: - - m_BuildTarget: PS4Player - m_GraphicsJobMode: 0 - - m_BuildTarget: XboxOnePlayer - m_GraphicsJobMode: 0 - m_BuildTargetGraphicsAPIs: - - m_BuildTarget: AndroidPlayer - m_APIs: 150000000b000000 - m_Automatic: 1 - - m_BuildTarget: iOSSupport - m_APIs: 10000000 - m_Automatic: 1 - - m_BuildTarget: AppleTVSupport - m_APIs: 10000000 - m_Automatic: 1 - - m_BuildTarget: WebGLSupport - m_APIs: 0b000000 - m_Automatic: 1 - m_BuildTargetVRSettings: - - m_BuildTarget: Standalone - m_Enabled: 0 - m_Devices: - - Oculus - - OpenVR - m_DefaultShaderChunkSizeInMB: 16 - m_DefaultShaderChunkCount: 0 - openGLRequireES31: 0 - openGLRequireES31AEP: 0 - openGLRequireES32: 0 - m_TemplateCustomTags: {} - mobileMTRendering: - Android: 1 - iPhone: 1 - tvOS: 1 - m_BuildTargetGroupLightmapEncodingQuality: - - serializedVersion: 2 - m_BuildTarget: Android - m_EncodingQuality: 1 - - serializedVersion: 2 - m_BuildTarget: iPhone - m_EncodingQuality: 1 - - serializedVersion: 2 - m_BuildTarget: tvOS - m_EncodingQuality: 1 - m_BuildTargetGroupHDRCubemapEncodingQuality: [] - m_BuildTargetGroupLightmapSettings: [] - m_BuildTargetGroupLoadStoreDebugModeSettings: [] - m_BuildTargetNormalMapEncoding: - - m_BuildTarget: Android - m_Encoding: 1 - - m_BuildTarget: iPhone - m_Encoding: 1 - - m_BuildTarget: tvOS - m_Encoding: 1 - m_BuildTargetDefaultTextureCompressionFormat: - - serializedVersion: 3 - m_BuildTarget: Android - m_Formats: 03000000 - playModeTestRunnerEnabled: 0 - runPlayModeTestAsEditModeTest: 0 - actionOnDotNetUnhandledException: 1 - editorGfxJobOverride: 1 - enableInternalProfiler: 0 - logObjCUncaughtExceptions: 1 - enableCrashReportAPI: 0 - cameraUsageDescription: - locationUsageDescription: - microphoneUsageDescription: - bluetoothUsageDescription: - macOSTargetOSVersion: 12.0 - switchNMETAOverride: - switchNetLibKey: - switchSocketMemoryPoolSize: 6144 - switchSocketAllocatorPoolSize: 128 - switchSocketConcurrencyLimit: 14 - switchScreenResolutionBehavior: 2 - switchUseCPUProfiler: 0 - switchEnableFileSystemTrace: 0 - switchLTOSetting: 0 - switchApplicationID: 0x01004b9000490000 - switchNSODependencies: - switchCompilerFlags: - switchTitleNames_0: - switchTitleNames_1: - switchTitleNames_2: - switchTitleNames_3: - switchTitleNames_4: - switchTitleNames_5: - switchTitleNames_6: - switchTitleNames_7: - switchTitleNames_8: - switchTitleNames_9: - switchTitleNames_10: - switchTitleNames_11: - switchTitleNames_12: - switchTitleNames_13: - switchTitleNames_14: - switchTitleNames_15: - switchPublisherNames_0: - switchPublisherNames_1: - switchPublisherNames_2: - switchPublisherNames_3: - switchPublisherNames_4: - switchPublisherNames_5: - switchPublisherNames_6: - switchPublisherNames_7: - switchPublisherNames_8: - switchPublisherNames_9: - switchPublisherNames_10: - switchPublisherNames_11: - switchPublisherNames_12: - switchPublisherNames_13: - switchPublisherNames_14: - switchPublisherNames_15: - switchIcons_0: {fileID: 0} - switchIcons_1: {fileID: 0} - switchIcons_2: {fileID: 0} - switchIcons_3: {fileID: 0} - switchIcons_4: {fileID: 0} - switchIcons_5: {fileID: 0} - switchIcons_6: {fileID: 0} - switchIcons_7: {fileID: 0} - switchIcons_8: {fileID: 0} - switchIcons_9: {fileID: 0} - switchIcons_10: {fileID: 0} - switchIcons_11: {fileID: 0} - switchIcons_12: {fileID: 0} - switchIcons_13: {fileID: 0} - switchIcons_14: {fileID: 0} - switchIcons_15: {fileID: 0} - switchSmallIcons_0: {fileID: 0} - switchSmallIcons_1: {fileID: 0} - switchSmallIcons_2: {fileID: 0} - switchSmallIcons_3: {fileID: 0} - switchSmallIcons_4: {fileID: 0} - switchSmallIcons_5: {fileID: 0} - switchSmallIcons_6: {fileID: 0} - switchSmallIcons_7: {fileID: 0} - switchSmallIcons_8: {fileID: 0} - switchSmallIcons_9: {fileID: 0} - switchSmallIcons_10: {fileID: 0} - switchSmallIcons_11: {fileID: 0} - switchSmallIcons_12: {fileID: 0} - switchSmallIcons_13: {fileID: 0} - switchSmallIcons_14: {fileID: 0} - switchSmallIcons_15: {fileID: 0} - switchManualHTML: - switchAccessibleURLs: - switchLegalInformation: - switchMainThreadStackSize: 1048576 - switchPresenceGroupId: - switchLogoHandling: 0 - switchReleaseVersion: 0 - switchDisplayVersion: 1.0.0 - switchStartupUserAccount: 0 - switchSupportedLanguagesMask: 0 - switchLogoType: 0 - switchApplicationErrorCodeCategory: - switchUserAccountSaveDataSize: 0 - switchUserAccountSaveDataJournalSize: 0 - switchApplicationAttribute: 0 - switchCardSpecSize: -1 - switchCardSpecClock: -1 - switchRatingsMask: 0 - switchRatingsInt_0: 0 - switchRatingsInt_1: 0 - switchRatingsInt_2: 0 - switchRatingsInt_3: 0 - switchRatingsInt_4: 0 - switchRatingsInt_5: 0 - switchRatingsInt_6: 0 - switchRatingsInt_7: 0 - switchRatingsInt_8: 0 - switchRatingsInt_9: 0 - switchRatingsInt_10: 0 - switchRatingsInt_11: 0 - switchRatingsInt_12: 0 - switchLocalCommunicationIds_0: - switchLocalCommunicationIds_1: - switchLocalCommunicationIds_2: - switchLocalCommunicationIds_3: - switchLocalCommunicationIds_4: - switchLocalCommunicationIds_5: - switchLocalCommunicationIds_6: - switchLocalCommunicationIds_7: - switchParentalControl: 0 - switchAllowsScreenshot: 1 - switchAllowsVideoCapturing: 1 - switchAllowsRuntimeAddOnContentInstall: 0 - switchDataLossConfirmation: 0 - switchUserAccountLockEnabled: 0 - switchSystemResourceMemory: 16777216 - switchSupportedNpadStyles: 22 - switchNativeFsCacheSize: 32 - switchIsHoldTypeHorizontal: 0 - switchSupportedNpadCount: 8 - switchEnableTouchScreen: 1 - switchSocketConfigEnabled: 0 - switchTcpInitialSendBufferSize: 32 - switchTcpInitialReceiveBufferSize: 64 - switchTcpAutoSendBufferSizeMax: 256 - switchTcpAutoReceiveBufferSizeMax: 256 - switchUdpSendBufferSize: 9 - switchUdpReceiveBufferSize: 42 - switchSocketBufferEfficiency: 4 - switchSocketInitializeEnabled: 1 - switchNetworkInterfaceManagerInitializeEnabled: 1 - switchDisableHTCSPlayerConnection: 0 - switchUseNewStyleFilepaths: 1 - switchUseLegacyFmodPriorities: 0 - switchUseMicroSleepForYield: 1 - switchEnableRamDiskSupport: 0 - switchMicroSleepForYieldTime: 25 - switchRamDiskSpaceSize: 12 - switchUpgradedPlayerSettingsToNMETA: 0 - ps4NPAgeRating: 12 - ps4NPTitleSecret: - ps4NPTrophyPackPath: - ps4ParentalLevel: 11 - ps4ContentID: - ps4Category: 0 - ps4MasterVersion: 01.00 - ps4AppVersion: 01.00 - ps4AppType: 0 - ps4ParamSfxPath: - ps4VideoOutPixelFormat: 0 - ps4VideoOutInitialWidth: 1920 - ps4VideoOutBaseModeInitialWidth: 1920 - ps4VideoOutReprojectionRate: 60 - ps4PronunciationXMLPath: - ps4PronunciationSIGPath: - ps4BackgroundImagePath: - ps4StartupImagePath: - ps4StartupImagesFolder: - ps4IconImagesFolder: - ps4SaveDataImagePath: - ps4SdkOverride: - ps4BGMPath: - ps4ShareFilePath: - ps4ShareOverlayImagePath: - ps4PrivacyGuardImagePath: - ps4ExtraSceSysFile: - ps4NPtitleDatPath: - ps4RemotePlayKeyAssignment: -1 - ps4RemotePlayKeyMappingDir: - ps4PlayTogetherPlayerCount: 0 - ps4EnterButtonAssignment: 1 - ps4ApplicationParam1: 0 - ps4ApplicationParam2: 0 - ps4ApplicationParam3: 0 - ps4ApplicationParam4: 0 - ps4DownloadDataSize: 0 - ps4GarlicHeapSize: 2048 - ps4ProGarlicHeapSize: 2560 - playerPrefsMaxSize: 32768 - ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ - ps4pnSessions: 1 - ps4pnPresence: 1 - ps4pnFriends: 1 - ps4pnGameCustomData: 1 - playerPrefsSupport: 0 - enableApplicationExit: 0 - resetTempFolder: 1 - restrictedAudioUsageRights: 0 - ps4UseResolutionFallback: 0 - ps4ReprojectionSupport: 0 - ps4UseAudio3dBackend: 0 - ps4UseLowGarlicFragmentationMode: 1 - ps4SocialScreenEnabled: 0 - ps4ScriptOptimizationLevel: 0 - ps4Audio3dVirtualSpeakerCount: 14 - ps4attribCpuUsage: 0 - ps4PatchPkgPath: - ps4PatchLatestPkgPath: - ps4PatchChangeinfoPath: - ps4PatchDayOne: 0 - ps4attribUserManagement: 0 - ps4attribMoveSupport: 0 - ps4attrib3DSupport: 0 - ps4attribShareSupport: 0 - ps4attribExclusiveVR: 0 - ps4disableAutoHideSplash: 0 - ps4videoRecordingFeaturesUsed: 0 - ps4contentSearchFeaturesUsed: 0 - ps4CompatibilityPS5: 0 - ps4AllowPS5Detection: 0 - ps4GPU800MHz: 1 - ps4attribEyeToEyeDistanceSettingVR: 0 - ps4IncludedModules: [] - ps4attribVROutputEnabled: 0 - monoEnv: - splashScreenBackgroundSourceLandscape: {fileID: 0} - splashScreenBackgroundSourcePortrait: {fileID: 0} - blurSplashScreenBackground: 1 - spritePackerPolicy: - webGLMemorySize: 16 - webGLExceptionSupport: 1 - webGLNameFilesAsHashes: 0 - webGLShowDiagnostics: 0 - webGLDataCaching: 1 - webGLDebugSymbols: 0 - webGLEmscriptenArgs: - webGLModulesDirectory: - webGLTemplate: APPLICATION:Default - webGLAnalyzeBuildSize: 0 - webGLUseEmbeddedResources: 0 - webGLCompressionFormat: 1 - webGLWasmArithmeticExceptions: 0 - webGLLinkerTarget: 1 - webGLThreadsSupport: 0 - webGLDecompressionFallback: 0 - webGLInitialMemorySize: 32 - webGLMaximumMemorySize: 2048 - webGLMemoryGrowthMode: 2 - webGLMemoryLinearGrowthStep: 16 - webGLMemoryGeometricGrowthStep: 0.2 - webGLMemoryGeometricGrowthCap: 96 - webGLPowerPreference: 2 - webGLWebAssemblyTable: 0 - webGLWebAssemblyBigInt: 0 - webGLCloseOnQuit: 0 - webWasm2023: 0 - webEnableSubmoduleStrippingCompatibility: 0 - scriptingDefineSymbols: {} - additionalCompilerArguments: {} - platformArchitecture: {} - scriptingBackend: - Android: 1 - il2cppCompilerConfiguration: {} - il2cppCodeGeneration: {} - il2cppStacktraceInformation: {} - managedStrippingLevel: {} - incrementalIl2cppBuild: {} - suppressCommonWarnings: 1 - allowUnsafeCode: 0 - useDeterministicCompilation: 1 - additionalIl2CppArgs: - scriptingRuntimeVersion: 1 - gcIncremental: 1 - gcWBarrierValidation: 0 - apiCompatibilityLevelPerPlatform: {} - editorAssembliesCompatibilityLevel: 1 - m_RenderingPath: 1 - m_MobileRenderingPath: 1 - metroPackageName: Unity6000.4 - metroPackageVersion: - metroCertificatePath: - metroCertificatePassword: - metroCertificateSubject: - metroCertificateIssuer: - metroCertificateNotAfter: 0000000000000000 - metroApplicationDescription: Unity6000.4 - wsaImages: {} - metroTileShortName: - metroTileShowName: 0 - metroMediumTileShowName: 0 - metroLargeTileShowName: 0 - metroWideTileShowName: 0 - metroSupportStreamingInstall: 0 - metroLastRequiredScene: 0 - metroDefaultTileSize: 1 - metroTileForegroundText: 2 - metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} - metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} - metroSplashScreenUseBackgroundColor: 0 - syncCapabilities: 0 - platformCapabilities: {} - metroTargetDeviceFamilies: {} - metroFTAName: - metroFTAFileTypes: [] - metroProtocolName: - vcxProjDefaultLanguage: - XboxOneProductId: - XboxOneUpdateKey: - XboxOneSandboxId: - XboxOneContentId: - XboxOneTitleId: - XboxOneSCId: - XboxOneGameOsOverridePath: - XboxOnePackagingOverridePath: - XboxOneAppManifestOverridePath: - XboxOneVersion: 1.0.0.0 - XboxOnePackageEncryption: 0 - XboxOnePackageUpdateGranularity: 2 - XboxOneDescription: - XboxOneLanguage: - - enus - XboxOneCapability: [] - XboxOneGameRating: {} - XboxOneIsContentPackage: 0 - XboxOneEnhancedXboxCompatibilityMode: 0 - XboxOneEnableGPUVariability: 1 - XboxOneSockets: {} - XboxOneSplashScreen: {fileID: 0} - XboxOneAllowedProductIds: [] - XboxOnePersistentLocalStorageSize: 0 - XboxOneXTitleMemory: 8 - XboxOneOverrideIdentityName: - XboxOneOverrideIdentityPublisher: - vrEditorSettings: {} - cloudServicesEnabled: - UNet: 1 - luminIcon: - m_Name: - m_ModelFolderPath: - m_PortalFolderPath: - luminCert: - m_CertPath: - m_SignPackage: 1 - luminIsChannelApp: 0 - luminVersion: - m_VersionCode: 1 - m_VersionName: - hmiPlayerDataPath: - hmiForceSRGBBlit: 0 - embeddedLinuxEnableGamepadInput: 0 - hmiCpuConfiguration: - hmiLogStartupTiming: 0 - qnxGraphicConfPath: - apiCompatibilityLevel: 6 - captureStartupLogs: {} - activeInputHandler: 1 - windowsGamepadBackendHint: 0 - enableDirectStorage: 0 - cloudProjectId: - framebufferDepthMemorylessMode: 0 - qualitySettingsNames: [] - projectName: - organizationId: - cloudEnabled: 0 - legacyClampBlendShapeWeights: 0 - hmiLoadingImage: {fileID: 0} - platformRequiresReadableAssets: 0 - virtualTexturingSupportEnabled: 0 - insecureHttpOption: 0 - androidVulkanDenyFilterList: [] - androidVulkanAllowFilterList: [] - androidVulkanDeviceFilterListAsset: {fileID: 0} - d3d12DeviceFilterListAsset: {fileID: 0} - allowedHttpConnections: 3 diff --git a/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt b/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt deleted file mode 100644 index c341670..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/ProjectVersion.txt +++ /dev/null @@ -1,2 +0,0 @@ -m_EditorVersion: 6000.4.12f1 -m_EditorVersionWithRevision: 6000.4.12f1 (3ca267ce8005) diff --git a/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset b/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset deleted file mode 100644 index 36c0dad..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/QualitySettings.asset +++ /dev/null @@ -1,234 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!47 &1 -QualitySettings: - m_ObjectHideFlags: 0 - serializedVersion: 5 - m_CurrentQuality: 5 - m_QualitySettings: - - serializedVersion: 2 - name: Very Low - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 15 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - blendWeights: 1 - textureQuality: 1 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 0 - lodBias: 0.3 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 4 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Low - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 0 - lodBias: 0.4 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 16 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Medium - pixelLightCount: 1 - shadows: 1 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 1 - lodBias: 0.7 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 64 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: High - pixelLightCount: 2 - shadows: 2 - shadowResolution: 1 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 40 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 1 - blendWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 - vSyncCount: 1 - lodBias: 1 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 256 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Very High - pixelLightCount: 3 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 70 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 1 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 - vSyncCount: 1 - lodBias: 1.5 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 1024 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Ultra - pixelLightCount: 4 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 4 - shadowDistance: 150 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 1 - blendWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 - vSyncCount: 1 - lodBias: 2 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 4096 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - excludedTargetPlatforms: [] - m_PerPlatformDefaultQuality: - Android: 2 - Lumin: 5 - GameCoreScarlett: 5 - GameCoreXboxOne: 5 - Nintendo 3DS: 5 - Nintendo Switch: 5 - PS4: 5 - PS5: 5 - Stadia: 5 - Standalone: 5 - WebGL: 3 - Windows Store Apps: 5 - XboxOne: 5 - iPhone: 2 - tvOS: 2 diff --git a/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json b/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json deleted file mode 100644 index ede5887..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/SceneTemplateSettings.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "templatePinStates": [], - "dependencyTypeInfos": [ - { - "userAdded": false, - "type": "UnityEngine.AnimationClip", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEditor.Animations.AnimatorController", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.AnimatorOverrideController", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEditor.Audio.AudioMixerController", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.ComputeShader", - "defaultInstantiationMode": 1 - }, - { - "userAdded": false, - "type": "UnityEngine.Cubemap", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.GameObject", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEditor.LightingDataAsset", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.LightingSettings", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Material", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEditor.MonoScript", - "defaultInstantiationMode": 1 - }, - { - "userAdded": false, - "type": "UnityEngine.PhysicsMaterial", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.PhysicsMaterial2D", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Rendering.VolumeProfile", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEditor.SceneAsset", - "defaultInstantiationMode": 1 - }, - { - "userAdded": false, - "type": "UnityEngine.Shader", - "defaultInstantiationMode": 1 - }, - { - "userAdded": false, - "type": "UnityEngine.ShaderVariantCollection", - "defaultInstantiationMode": 1 - }, - { - "userAdded": false, - "type": "UnityEngine.Texture", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Texture2D", - "defaultInstantiationMode": 0 - }, - { - "userAdded": false, - "type": "UnityEngine.Timeline.TimelineAsset", - "defaultInstantiationMode": 0 - } - ], - "defaultDependencyTypeInfo": { - "userAdded": false, - "type": "", - "defaultInstantiationMode": 1 - }, - "newSceneOverride": 0 -} \ No newline at end of file diff --git a/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset b/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset deleted file mode 100644 index 1c92a78..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/TagManager.asset +++ /dev/null @@ -1,43 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!78 &1 -TagManager: - serializedVersion: 2 - tags: [] - layers: - - Default - - TransparentFX - - Ignore Raycast - - - - Water - - UI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_SortingLayers: - - name: Default - uniqueID: 0 - locked: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset b/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset deleted file mode 100644 index 558a017..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/TimeManager.asset +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!5 &1 -TimeManager: - m_ObjectHideFlags: 0 - Fixed Timestep: 0.02 - Maximum Allowed Timestep: 0.33333334 - m_TimeScale: 1 - Maximum Particle Timestep: 0.03 diff --git a/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset deleted file mode 100644 index 029ad8b..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/UnityConnectSettings.asset +++ /dev/null @@ -1,40 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!310 &1 -UnityConnectSettings: - m_ObjectHideFlags: 0 - serializedVersion: 1 - m_Enabled: 0 - m_TestMode: 0 - m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events - m_EventUrl: https://cdp.cloud.unity3d.com/v1/events - m_ConfigUrl: https://config.uca.cloud.unity3d.com - m_DashboardUrl: https://dashboard.unity3d.com - m_TestInitMode: 0 - InsightsSettings: - m_EngineDiagnosticsEnabled: 1 - m_Enabled: 0 - CrashReportingSettings: - serializedVersion: 2 - m_EventUrl: https://perf-events.cloud.unity3d.com - m_EnableCloudDiagnosticsReporting: 0 - m_LogBufferSize: 10 - m_CaptureEditorExceptions: 1 - UnityPurchasingSettings: - m_Enabled: 0 - m_TestMode: 0 - UnityAnalyticsSettings: - m_Enabled: 0 - m_TestMode: 0 - m_InitializeOnStartup: 1 - m_PackageRequiringCoreStatsPresent: 0 - UnityAdsSettings: - m_Enabled: 0 - m_InitializeOnStartup: 1 - m_TestMode: 0 - m_IosGameId: - m_AndroidGameId: - m_GameIds: {} - m_GameId: - PerformanceReportingSettings: - m_Enabled: 0 diff --git a/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset b/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset deleted file mode 100644 index 3a95c98..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/VFXManager.asset +++ /dev/null @@ -1,12 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!937362698 &1 -VFXManager: - m_ObjectHideFlags: 0 - m_IndirectShader: {fileID: 0} - m_CopyBufferShader: {fileID: 0} - m_SortShader: {fileID: 0} - m_StripUpdateShader: {fileID: 0} - m_RenderPipeSettingsPath: - m_FixedTimeStep: 0.016666668 - m_MaxDeltaTime: 0.05 diff --git a/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset deleted file mode 100644 index dca2881..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/VersionControlSettings.asset +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!890905787 &1 -VersionControlSettings: - m_ObjectHideFlags: 0 - m_Mode: Visible Meta Files - m_CollabEditorSettings: - inProgressEnabled: 1 diff --git a/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset b/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset deleted file mode 100644 index 482590c..0000000 --- a/tests/versions/Unity6000.4/ProjectSettings/XRSettings.asset +++ /dev/null @@ -1,10 +0,0 @@ -{ - "m_SettingKeys": [ - "VR Device Disabled", - "VR Device User Alert" - ], - "m_SettingValues": [ - "False", - "False" - ] -} \ No newline at end of file diff --git a/tests/versions/Unity6000.5/Packages/manifest.json b/tests/versions/Unity6000.5/Packages/manifest.json index c139113..c04da22 100644 --- a/tests/versions/Unity6000.5/Packages/manifest.json +++ b/tests/versions/Unity6000.5/Packages/manifest.json @@ -1,14 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.5/Packages/packages-lock.json b/tests/versions/Unity6000.5/Packages/packages-lock.json index a815005..c2519fd 100644 --- a/tests/versions/Unity6000.5/Packages/packages-lock.json +++ b/tests/versions/Unity6000.5/Packages/packages-lock.json @@ -6,8 +6,8 @@ "source": "local", "dependencies": {} }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { diff --git a/tests/versions/Unity6000.7/Packages/manifest.json b/tests/versions/Unity6000.7/Packages/manifest.json index c139113..c04da22 100644 --- a/tests/versions/Unity6000.7/Packages/manifest.json +++ b/tests/versions/Unity6000.7/Packages/manifest.json @@ -1,14 +1,14 @@ { "dependencies": { "com.annulusgames.alchemy": "file:../../../../Alchemy/Assets/Alchemy", - "com.annulusgames.alchemy.inspector-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "com.annulusgames.alchemy.test": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests", "com.unity.serialization": "3.1.5", "com.unity.modules.uielements": "1.0.0", "com.unity.pipeline": "0.4.0-exp.1" }, "testables": [ - "com.annulusgames.alchemy.inspector-test", + "com.annulusgames.alchemy.editor-ui-test", "com.annulusgames.alchemy.test" ] } diff --git a/tests/versions/Unity6000.7/Packages/packages-lock.json b/tests/versions/Unity6000.7/Packages/packages-lock.json index 7da0cd7..9c6e766 100644 --- a/tests/versions/Unity6000.7/Packages/packages-lock.json +++ b/tests/versions/Unity6000.7/Packages/packages-lock.json @@ -6,8 +6,8 @@ "source": "local", "dependencies": {} }, - "com.annulusgames.alchemy.inspector-test": { - "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.Inspector", + "com.annulusgames.alchemy.editor-ui-test": { + "version": "file:../../../Alchemy.Tests/Assets/Alchemy.Tests.EditorUI", "depth": 0, "source": "local", "dependencies": { From 9ea9faf59f75b756280f03a25a616a729220cfa4 Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Fri, 31 Jul 2026 08:10:55 +0900 Subject: [PATCH 05/15] test: remove UnsignedTest since it should be combined to ButtonTest --- .../Alchemy.Tests.EditorUI/UnsignedTest.cs | 20 -------- .../UnsignedTest.cs.meta | 3 -- .../UnsignedTest.prefab | 46 ------------------- .../UnsignedTest.prefab.meta | 7 --- 4 files changed, 76 deletions(-) delete mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs delete mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta delete mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab delete mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs deleted file mode 100644 index 6cd370f..0000000 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Alchemy.Inspector; -using UnityEngine; - -namespace Alchemy.Tests.EditorUI -{ - public class UnsignedTest : MonoBehaviour - { - [Button] - public void TestUint(uint value) - { - Debug.Log("TestLong"); - } - - [Button] - public void TestULong(ulong value) - { - Debug.Log("TestULong"); - } - } -} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta deleted file mode 100644 index e9904c2..0000000 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8b9202060cef47b8a30b53a9f413fbcb -timeCreated: 1708998502 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab deleted file mode 100644 index 46f4113..0000000 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab +++ /dev/null @@ -1,46 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &438843158376338664 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6259870180075704690} - - component: {fileID: 719592113703195252} - m_Layer: 0 - m_Name: UnsignedTest - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6259870180075704690 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 438843158376338664} - 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!114 &719592113703195252 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 438843158376338664} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b9202060cef47b8a30b53a9f413fbcb, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta deleted file mode 100644 index 11b9fd0..0000000 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/UnsignedTest.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 17766bc05d2ded548a95ea458f9fc771 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From 711e48ea5ff293e42a03ddb28f4a4f1bdd5484e1 Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Fri, 31 Jul 2026 08:12:18 +0900 Subject: [PATCH 06/15] test: Faster capture sequence --- .../Pipeline/Alchemy.Tests.Pipeline.asmdef | 3 +- .../Pipeline/EditorCaptureCommands.cs | 350 +++++++++++++----- .../UnityTestRunner/UnityEditorCaptureTest.cs | 49 ++- 3 files changed, 311 insertions(+), 91 deletions(-) diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef index 2c0bd0b..6ce64cf 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/Alchemy.Tests.Pipeline.asmdef @@ -2,7 +2,8 @@ "name": "Alchemy.Tests.Pipeline", "rootNamespace": "Alchemy.Tests.Pipeline", "references": [ - "GUID:71e9815631ba2574b92564e93b8efc9c" + "GUID:71e9815631ba2574b92564e93b8efc9c", + "GUID:9b64a2fc1d4b46d2bb1c83d6bc7287ff" ], "includePlatforms": [ "Editor" diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs index adfb6b0..420b6a0 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/EditorCaptureCommands.cs @@ -16,7 +16,8 @@ internal static class EditorCaptureCommands { const string EditorUiTestPackage = "Packages/com.annulusgames.alchemy.editor-ui-test"; - const double SettleSeconds = 1d; + const double InitialSettleSeconds = 1d; + const double ReusedInspectorSettleSeconds = 0.25d; const double PostRepaintSeconds = 0.25d; const int MaximumDimension = 4096; const float WindowX = 80f; @@ -24,6 +25,7 @@ internal static class EditorCaptureCommands static readonly object Gate = new object(); + static InspectorSession inspectorSession; static CaptureOperation operation; static InspectorCaptureResult lastResult = InspectorCaptureResult.CreateIdle(); @@ -33,9 +35,67 @@ static EditorCaptureCommands() AssemblyReloadEvents.beforeAssemblyReload += CleanupBeforeReload; } + [CliCommand( + "alchemy_editor_capture_inspector_open", + "Open the Inspector window used by the capture session.", + MainThreadRequired = true)] + static InspectorCaptureResult OpenInspector( + [CliArg("width", "Capture width in pixels.")] + int width = 640, + [CliArg("height", "Capture height in pixels.")] + int height = 900) + { + if (operation != null) + { + return InspectorCaptureResult.CreateFailure( + operation.JobId, + "The Inspector cannot open while a capture is running."); + } + + if (inspectorSession != null) + { + return InspectorCaptureResult.CreateFailure( + "", + "An Inspector capture session is already open."); + } + + ValidateDimensions(width, height); + var previousSelection = Selection.objects; + var previousActiveObject = Selection.activeObject; + EditorWindow window = null; + try + { + window = CreateInspectorWindow(width, height); + inspectorSession = new InspectorSession( + window, + width, + height, + previousSelection, + previousActiveObject); + var result = InspectorCaptureResult.CreateReady( + width, + height); + SetLastResult(result); + return result; + } + catch + { + if (window != null) + { + window.Close(); + } + + RestoreSelection( + previousSelection, + previousActiveObject); + inspectorSession = null; + throw; + } + } + [CliCommand( "alchemy_editor_capture_inspector_start", - "Open an Inspector for a prefab, expand its contents, and capture it to a PNG.", + "Display a prefab in the open Inspector and capture it to a PNG.", MainThreadRequired = true)] static InspectorCaptureResult Start( [CliArg( @@ -47,11 +107,7 @@ static InspectorCaptureResult Start( "output", "Output PNG path, absolute or relative to the Unity project.", Required = true)] - string output = "", - [CliArg("width", "Capture width in pixels.")] - int width = 640, - [CliArg("height", "Capture height in pixels.")] - int height = 900) + string output = "") { if (operation != null) { @@ -60,7 +116,14 @@ static InspectorCaptureResult Start( "An Inspector capture is already running."); } - ValidateDimensions(width, height); + var currentSession = inspectorSession; + if (currentSession == null) + { + return InspectorCaptureResult.CreateFailure( + "", + "The Inspector capture session is not open."); + } + var prefabPath = ResolvePrefabPath(prefab); var outputPath = ResolveOutputPath(output); var prefabAsset = AssetDatabase.LoadAssetAtPath(prefabPath); @@ -73,27 +136,24 @@ static InspectorCaptureResult Start( CaptureOperation pending = null; GameObject root = null; - EditorWindow window = null; - var previousSelection = Selection.objects; - var previousActiveObject = Selection.activeObject; try { root = PrefabUtility.LoadPrefabContents(prefabPath); - Selection.activeGameObject = root; - ExpandInspector(root, null); - - window = CreateInspectorWindow(width, height); + SetInspectorTarget(currentSession.Window, root); + ExpandInspector(root, currentSession.Window); pending = new CaptureOperation( Guid.NewGuid().ToString("N"), prefabPath, outputPath, - width, - height, + currentSession.Width, + currentSession.Height, root, - window, - previousSelection, - previousActiveObject, - EditorApplication.timeSinceStartup + SettleSeconds); + currentSession.Window, + currentSession, + EditorApplication.timeSinceStartup + + (currentSession.CaptureCount == 0 + ? InitialSettleSeconds + : ReusedInspectorSettleSeconds)); operation = pending; SetLastResult(InspectorCaptureResult.CreateRunning(pending)); EditorApplication.update += UpdateCapture; @@ -101,22 +161,13 @@ static InspectorCaptureResult Start( } catch { - if (window != null) - { - window.Close(); - } - - Selection.activeObject = null; if (root != null) { + SetInspectorLocked(currentSession.Window, false); + Selection.activeObject = null; PrefabUtility.UnloadPrefabContents(root); } - Selection.objects = previousSelection; - if (previousActiveObject != null) - { - Selection.activeObject = previousActiveObject; - } operation = null; throw; } @@ -189,6 +240,34 @@ static InspectorCaptureResult Cancel( return canceled; } + [CliCommand( + "alchemy_editor_capture_inspector_close", + "Close the Inspector window used by the capture session.", + MainThreadRequired = true)] + static InspectorCaptureResult CloseInspector() + { + if (operation != null) + { + return InspectorCaptureResult.CreateFailure( + operation.JobId, + "The Inspector cannot close while a capture is running."); + } + + var currentSession = inspectorSession; + if (currentSession == null) + { + return InspectorCaptureResult.CreateFailure( + "", + "The Inspector capture session is not open."); + } + + inspectorSession = null; + CloseInspectorSession(currentSession); + var result = InspectorCaptureResult.CreateClosed(); + SetLastResult(result); + return result; + } + [CliCommand( "alchemy_editor_capture_close", "Close an automated Editor session.", @@ -206,6 +285,13 @@ static InspectorCaptureResult Close( "The Editor cannot close while an Inspector capture is running."); } + if (inspectorSession != null) + { + return InspectorCaptureResult.CreateFailure( + "", + "Close the Inspector capture session before closing the Editor."); + } + if (!force && !Environment.GetCommandLineArgs().Contains("--auto-quit")) { @@ -238,41 +324,22 @@ static void UpdateCapture() EditorApplication.isUpdating) { current.CaptureAfter = - EditorApplication.timeSinceStartup + SettleSeconds; + EditorApplication.timeSinceStartup + + InitialSettleSeconds; current.CaptureReadyAfter = 0d; return; } if (EditorApplication.timeSinceStartup < current.CaptureAfter) { - current.Window.position = new Rect( - WindowX, - WindowY, - current.Width, - current.Height); - ExpandInspector(current.Root, current.Window); - current.Window.titleContent = - new GUIContent("Inspector"); - current.Window.Focus(); - current.Window.Repaint(); - EditorApplication.QueuePlayerLoopUpdate(); + PrepareInspectorWindow(current); current.CaptureReadyAfter = 0d; return; } if (current.CaptureReadyAfter <= 0d) { - current.Window.position = new Rect( - WindowX, - WindowY, - current.Width, - current.Height); - ExpandInspector(current.Root, current.Window); - current.Window.titleContent = - new GUIContent("Inspector"); - current.Window.Focus(); - current.Window.Repaint(); - EditorApplication.QueuePlayerLoopUpdate(); + PrepareInspectorWindow(current); current.CaptureReadyAfter = EditorApplication.timeSinceStartup + PostRepaintSeconds; @@ -294,6 +361,19 @@ static void UpdateCapture() } } + static void PrepareInspectorWindow(CaptureOperation current) + { + PositionInspectorWindow( + current.Window, + current.Width, + current.Height); + ExpandInspector(current.Root, current.Window); + current.Window.titleContent = new GUIContent("Inspector"); + current.Window.Focus(); + current.Window.Repaint(); + EditorApplication.QueuePlayerLoopUpdate(); + } + static InspectorCaptureResult Capture(CaptureOperation current) { var rect = current.Window.position; @@ -359,6 +439,7 @@ static void Complete( try { Cleanup(current); + current.Session.CaptureCount++; SetLastResult(result); } catch (Exception exception) @@ -411,23 +492,54 @@ static EditorWindow CreateInspectorWindow( var size = new Vector2(width, height); window.minSize = size; window.maxSize = size; - window.Show(); - window.position = new Rect( - WindowX, - WindowY, - width, - height); + window.ShowUtility(); + PositionInspectorWindow(window, width, height); + SetInspectorLocked(window, false); + window.Focus(); + window.Repaint(); + return window; + } + + static void SetInspectorTarget( + EditorWindow window, + GameObject root) + { + SetInspectorLocked(window, false); + Selection.activeGameObject = root; + SetInspectorLocked(window, true); + window.Focus(); + window.Repaint(); + } - var lockProperty = inspectorType.GetProperty( + static void SetInspectorLocked( + EditorWindow window, + bool value) + { + var lockProperty = window.GetType().GetProperty( "isLocked", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - lockProperty?.SetValue(window, true); - window.titleContent = new GUIContent("Inspector"); - window.Focus(); - window.Repaint(); - return window; + if (lockProperty == null) + { + throw new MissingMemberException( + window.GetType().FullName, + "isLocked"); + } + + lockProperty.SetValue(window, value); + } + + static void PositionInspectorWindow( + EditorWindow window, + int width, + int height) + { + window.position = new Rect( + WindowX, + WindowY, + width, + height); } static void ExpandInspector( @@ -545,7 +657,7 @@ static void Cleanup(CaptureOperation current) { if (current.Window != null) { - current.Window.Close(); + SetInspectorLocked(current.Window, false); } Selection.activeObject = null; @@ -553,28 +665,51 @@ static void Cleanup(CaptureOperation current) { PrefabUtility.UnloadPrefabContents(current.Root); } + } + + static void CloseInspectorSession(InspectorSession current) + { + if (current.Window != null) + { + SetInspectorLocked(current.Window, false); + current.Window.Close(); + } + + RestoreSelection( + current.PreviousSelection, + current.PreviousActiveObject); + } - Selection.objects = current.PreviousSelection; - if (current.PreviousActiveObject != null) + static void RestoreSelection( + Object[] previousSelection, + Object previousActiveObject) + { + Selection.objects = previousSelection; + if (previousActiveObject != null) { - Selection.activeObject = current.PreviousActiveObject; + Selection.activeObject = previousActiveObject; } } static void CleanupBeforeReload() { var current = operation; - if (current == null) + if (current != null) { - return; + EditorApplication.update -= UpdateCapture; + operation = null; + Cleanup(current); + SetLastResult(InspectorCaptureResult.CreateFailure( + current.JobId, + "Inspector capture was interrupted by an assembly reload.")); } - EditorApplication.update -= UpdateCapture; - operation = null; - Cleanup(current); - SetLastResult(InspectorCaptureResult.CreateFailure( - current.JobId, - "Inspector capture was interrupted by an assembly reload.")); + var currentSession = inspectorSession; + if (currentSession != null) + { + inspectorSession = null; + CloseInspectorSession(currentSession); + } } static void SetLastResult(InspectorCaptureResult result) @@ -603,8 +738,7 @@ public CaptureOperation( int height, GameObject root, EditorWindow window, - Object[] previousSelection, - Object previousActiveObject, + InspectorSession session, double captureAfter) { JobId = jobId; @@ -614,8 +748,7 @@ public CaptureOperation( Height = height; Root = root; Window = window; - PreviousSelection = previousSelection; - PreviousActiveObject = previousActiveObject; + Session = session; CaptureAfter = captureAfter; } @@ -626,12 +759,35 @@ public CaptureOperation( public int Height { get; } public GameObject Root { get; } public EditorWindow Window { get; } - public Object[] PreviousSelection { get; } - public Object PreviousActiveObject { get; } + public InspectorSession Session { get; } public double CaptureAfter { get; set; } public double CaptureReadyAfter { get; set; } } + sealed class InspectorSession + { + public InspectorSession( + EditorWindow window, + int width, + int height, + Object[] previousSelection, + Object previousActiveObject) + { + Window = window; + Width = width; + Height = height; + PreviousSelection = previousSelection; + PreviousActiveObject = previousActiveObject; + } + + public EditorWindow Window { get; } + public int Width { get; } + public int Height { get; } + public Object[] PreviousSelection { get; } + public Object PreviousActiveObject { get; } + public int CaptureCount { get; set; } + } + sealed class InspectorCaptureResult { public string JobId { get; set; } @@ -670,6 +826,30 @@ public static InspectorCaptureResult CreateIdle() }; } + public static InspectorCaptureResult CreateReady( + int width, + int height) + { + return new InspectorCaptureResult + { + Status = "ready", + Success = true, + Message = "The Inspector capture session is ready.", + Width = width, + Height = height, + }; + } + + public static InspectorCaptureResult CreateClosed() + { + return new InspectorCaptureResult + { + Status = "closed", + Success = true, + Message = "The Inspector capture session is closed.", + }; + } + public static InspectorCaptureResult CreateRunning( CaptureOperation current) { diff --git a/tests/UnityTestRunner/UnityEditorCaptureTest.cs b/tests/UnityTestRunner/UnityEditorCaptureTest.cs index d59fc45..e69e96f 100644 --- a/tests/UnityTestRunner/UnityEditorCaptureTest.cs +++ b/tests/UnityTestRunner/UnityEditorCaptureTest.cs @@ -7,9 +7,13 @@ namespace Alchemy.UnityTestRunner; internal static class UnityEditorCaptureTest { private const string Surface = "Inspector"; + private const string OpenCommand = + "alchemy_editor_capture_inspector_open"; private const string StartCommand = "alchemy_editor_capture_inspector_start"; private const string StatusCommand = "alchemy_editor_capture_status"; + private const string CloseCommand = + "alchemy_editor_capture_inspector_close"; private const int CaptureWidth = 640; private const int CaptureHeight = 900; @@ -69,7 +73,7 @@ await EditorLifecycle.CloseRunningAsync( cancellationToken); await UnityCli.WaitForCommandAsync( project, - StartCommand, + OpenCommand, EditorStartupTimeout, cancellationToken); console = await UnityCli.ReadConsoleAsync( @@ -78,6 +82,28 @@ await UnityCli.WaitForCommandAsync( int.MaxValue, 1, cancellationToken); + await UnityCli.FocusEditorAsync(project, cancellationToken); + var open = UnityCli.Deserialize( + await UnityCli.RunCommandAsync( + project, + OpenCommand, + [ + "--width", + CaptureWidth.ToString(CultureInfo.InvariantCulture), + "--height", + CaptureHeight.ToString(CultureInfo.InvariantCulture), + ], + cancellationToken)); + if (!open.Success || + !string.Equals( + open.Status, + "ready", + StringComparison.Ordinal)) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} could not open the " + + $"Inspector capture session: {open.Message}"); + } } catch (Exception startupException) { @@ -150,10 +176,6 @@ await UnityCli.RunCommandAsync( prefabPath, "--output", outputPath, - "--width", - CaptureWidth.ToString(CultureInfo.InvariantCulture), - "--height", - CaptureHeight.ToString(CultureInfo.InvariantCulture), ], cancellationToken)); if (!start.Success || @@ -244,6 +266,23 @@ public static async Task StopAsync( return; } + var close = UnityCli.Deserialize( + await UnityCli.RunCommandAsync( + project, + CloseCommand, + [], + cancellationToken)); + if (!close.Success || + !string.Equals( + close.Status, + "closed", + StringComparison.Ordinal)) + { + throw new UnityExecutionException( + $"Unity {project.EditorVersion} could not close the " + + $"Inspector capture session: {close.Message}"); + } + var console = await UnityCli.ReadConsoleAsync( project, "warn", From c5364d4f0ab4a452cabca90367f740312b366263 Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Fri, 31 Jul 2026 08:38:37 +0900 Subject: [PATCH 07/15] test: Foreground Unity editor during test --- tests/UnityTestRunner/UnityCli.cs | 20 -- .../UnityTestRunner/UnityEditorCaptureTest.cs | 14 +- .../UnityTestRunner/UnityEditorForeground.cs | 274 ++++++++++++++++++ 3 files changed, 286 insertions(+), 22 deletions(-) create mode 100644 tests/UnityTestRunner/UnityEditorForeground.cs diff --git a/tests/UnityTestRunner/UnityCli.cs b/tests/UnityTestRunner/UnityCli.cs index f90f7ea..cc248bb 100644 --- a/tests/UnityTestRunner/UnityCli.cs +++ b/tests/UnityTestRunner/UnityCli.cs @@ -276,26 +276,6 @@ internal async Task WaitForCommandAsync( $"'{command}' within {timeout}."); } - internal async Task FocusEditorAsync( - UnityProject project, - CancellationToken cancellationToken) - { - var result = await RunCommandAsync( - project, - "editor_focus", - [], - cancellationToken); - if (result.ValueKind == JsonValueKind.String && - result.GetString()?.StartsWith( - "Error:", - StringComparison.Ordinal) == true) - { - throw new UnityExecutionException( - $"Unity {project.EditorVersion} could not be focused: " + - result.GetString()); - } - } - internal async Task RunCommandAsync( UnityProject project, string command, diff --git a/tests/UnityTestRunner/UnityEditorCaptureTest.cs b/tests/UnityTestRunner/UnityEditorCaptureTest.cs index e69e96f..919449e 100644 --- a/tests/UnityTestRunner/UnityEditorCaptureTest.cs +++ b/tests/UnityTestRunner/UnityEditorCaptureTest.cs @@ -23,6 +23,8 @@ internal static class UnityEditorCaptureTest TimeSpan.FromMinutes(1); private static readonly IProcessRunner ProcessRunner = new ProcessRunner(); private static readonly UnityCli UnityCli = new(ProcessRunner); + private static readonly UnityEditorForeground EditorForeground = + new(ProcessRunner); private static readonly UnityEditorLifecycle EditorLifecycle = new(UnityCli); private static readonly ConcurrentDictionary @@ -82,7 +84,9 @@ await UnityCli.WaitForCommandAsync( int.MaxValue, 1, cancellationToken); - await UnityCli.FocusEditorAsync(project, cancellationToken); + await EditorForeground.ActivateAsync( + editor.ProcessId, + cancellationToken); var open = UnityCli.Deserialize( await UnityCli.RunCommandAsync( project, @@ -104,6 +108,10 @@ await UnityCli.RunCommandAsync( $"Unity {project.EditorVersion} could not open the " + $"Inspector capture session: {open.Message}"); } + + await EditorForeground.ActivateAsync( + editor.ProcessId, + cancellationToken); } catch (Exception startupException) { @@ -166,7 +174,9 @@ public static async Task CaptureAsync( try { - await UnityCli.FocusEditorAsync(project, cancellationToken); + await EditorForeground.ActivateAsync( + context.ProcessId, + cancellationToken); var start = UnityCli.Deserialize( await UnityCli.RunCommandAsync( project, diff --git a/tests/UnityTestRunner/UnityEditorForeground.cs b/tests/UnityTestRunner/UnityEditorForeground.cs new file mode 100644 index 0000000..fda91a2 --- /dev/null +++ b/tests/UnityTestRunner/UnityEditorForeground.cs @@ -0,0 +1,274 @@ +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace Alchemy.UnityTestRunner; + +internal sealed class UnityEditorForeground(IProcessRunner processRunner) +{ + private const int SwShow = 5; + private const int SwRestore = 9; + + private static readonly TimeSpan WindowsActivationTimeout = + TimeSpan.FromSeconds(2); + private static readonly TimeSpan MacOSActivationTimeout = + TimeSpan.FromSeconds(10); + + internal async Task ActivateAsync( + int processId, + CancellationToken cancellationToken) + { + if (OperatingSystem.IsWindows()) + { + await ActivateWindowsAsync(processId, cancellationToken); + return; + } + + if (OperatingSystem.IsMacOS()) + { + await ActivateMacOSAsync(processId, cancellationToken); + return; + } + + throw new InvalidConfigurationException( + "Editor capture foreground activation is supported only on " + + "Windows and macOS."); + } + + private static async Task ActivateWindowsAsync( + int processId, + CancellationToken cancellationToken) + { + var deadline = DateTimeOffset.UtcNow + WindowsActivationTimeout; + while (DateTimeOffset.UtcNow < deadline) + { + cancellationToken.ThrowIfCancellationRequested(); + if (IsForegroundProcess(processId) || + TryActivateWindowsEditor(processId)) + { + return; + } + + await Task.Delay( + TimeSpan.FromMilliseconds(50), + cancellationToken); + } + + throw new UnityExecutionException( + $"Could not bring Unity Editor process {processId} to the " + + "foreground."); + } + + private async Task ActivateMacOSAsync( + int processId, + CancellationToken cancellationToken) + { + var script = + $"tell application \"System Events\"{Environment.NewLine}" + + $"set unityProcess to first application process whose unix id " + + $"is {processId}{Environment.NewLine}" + + $"set frontmost of unityProcess to true{Environment.NewLine}" + + $"if (count of windows of unityProcess) > 0 then{Environment.NewLine}" + + $"perform action \"AXRaise\" of window 1 of unityProcess" + + $"{Environment.NewLine}" + + $"end if{Environment.NewLine}" + + $"delay 0.1{Environment.NewLine}" + + $"return frontmost of unityProcess{Environment.NewLine}" + + "end tell"; + var result = await processRunner.RunAsync( + new ProcessSpec( + "osascript", + ["-e", script], + Timeout: MacOSActivationTimeout), + cancellationToken); + if (result.ExitCode == 0 && + string.Equals( + result.StandardOutput.Trim(), + "true", + StringComparison.OrdinalIgnoreCase)) + { + return; + } + + var diagnostic = string.IsNullOrWhiteSpace(result.StandardError) + ? result.StandardOutput + : result.StandardError; + throw new UnityExecutionException( + $"Could not bring Unity Editor process {processId} to the " + + $"foreground with AppleScript: {diagnostic.Trim()}"); + } + + private static bool TryActivateWindowsEditor(int processId) + { + var window = FindEditorWindow(processId); + if (window == IntPtr.Zero) + { + return false; + } + + var popup = GetLastActivePopup(window); + if (popup != IntPtr.Zero && + IsWindowVisible(popup) && + WindowBelongsToProcess(popup, processId)) + { + window = popup; + } + + _ = ShowWindowAsync( + window, + IsIconic(window) ? SwRestore : SwShow); + + var currentThreadId = GetCurrentThreadId(); + var foregroundThreadId = GetWindowThreadProcessId( + GetForegroundWindow(), + out _); + var targetThreadId = GetWindowThreadProcessId(window, out _); + var attachedToForeground = + foregroundThreadId != 0 && + foregroundThreadId != currentThreadId && + AttachThreadInput( + currentThreadId, + foregroundThreadId, + true); + var attachedToTarget = + targetThreadId != 0 && + targetThreadId != currentThreadId && + targetThreadId != foregroundThreadId && + AttachThreadInput( + currentThreadId, + targetThreadId, + true); + try + { + _ = BringWindowToTop(window); + _ = SetActiveWindow(window); + _ = SetForegroundWindow(window); + _ = SetFocus(window); + } + finally + { + if (attachedToTarget) + { + _ = AttachThreadInput( + currentThreadId, + targetThreadId, + false); + } + + if (attachedToForeground) + { + _ = AttachThreadInput( + currentThreadId, + foregroundThreadId, + false); + } + } + + return IsForegroundProcess(processId); + } + + private static IntPtr FindEditorWindow(int processId) + { + using var process = Process.GetProcessById(processId); + process.Refresh(); + if (process.MainWindowHandle != IntPtr.Zero && + IsWindowVisible(process.MainWindowHandle)) + { + return process.MainWindowHandle; + } + + var result = IntPtr.Zero; + _ = EnumWindows( + (window, _) => + { + if (!IsWindowVisible(window) || + !WindowBelongsToProcess(window, processId)) + { + return true; + } + + result = window; + return false; + }, + IntPtr.Zero); + return result; + } + + private static bool IsForegroundProcess(int processId) + { + return WindowBelongsToProcess( + GetForegroundWindow(), + processId); + } + + private static bool WindowBelongsToProcess( + IntPtr window, + int processId) + { + if (window == IntPtr.Zero) + { + return false; + } + + _ = GetWindowThreadProcessId(window, out var windowProcessId); + return windowProcessId == (uint)processId; + } + + private delegate bool EnumWindowsCallback( + IntPtr window, + IntPtr parameter); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool EnumWindows( + EnumWindowsCallback callback, + IntPtr parameter); + + [DllImport("user32.dll")] + private static extern IntPtr GetForegroundWindow(); + + [DllImport("user32.dll")] + private static extern IntPtr GetLastActivePopup(IntPtr window); + + [DllImport("user32.dll")] + private static extern uint GetWindowThreadProcessId( + IntPtr window, + out uint processId); + + [DllImport("kernel32.dll")] + private static extern uint GetCurrentThreadId(); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool IsIconic(IntPtr window); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool IsWindowVisible(IntPtr window); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool ShowWindowAsync( + IntPtr window, + int command); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool AttachThreadInput( + uint idAttach, + uint idAttachTo, + [MarshalAs(UnmanagedType.Bool)] bool attach); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool BringWindowToTop(IntPtr window); + + [DllImport("user32.dll")] + private static extern IntPtr SetActiveWindow(IntPtr window); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool SetForegroundWindow(IntPtr window); + + [DllImport("user32.dll")] + private static extern IntPtr SetFocus(IntPtr window); +} From ab55c4f13203ab1414f7d8263c41c79eefad89bc Mon Sep 17 00:00:00 2001 From: paq <89paku@gmail.com> Date: Fri, 31 Jul 2026 08:38:53 +0900 Subject: [PATCH 08/15] test: add editor ui tests for each attribute --- .../AlchemySerializationTest.prefab | 60 +++++++ .../AlchemySerializationTest.prefab.meta | 7 + .../AssetsOnlyTest.prefab | 48 +++++ .../AssetsOnlyTest.prefab.meta | 7 + .../AttributesTest.prefab | 50 ++++++ .../AttributesTest.prefab.meta | 7 + .../BlockquoteTest.prefab | 47 +++++ .../BlockquoteTest.prefab.meta | 7 + .../BoxGroupTest.prefab | 52 ++++++ .../BoxGroupTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/ButtonTest.cs | 25 ++- .../DisableAlchemyEditorTest.prefab | 49 +++++ .../DisableAlchemyEditorTest.prefab.meta | 7 + .../DisableIfTest.prefab | 50 ++++++ .../DisableIfTest.prefab.meta | 7 + .../DisableInEditModeTest.prefab | 47 +++++ .../DisableInEditModeTest.prefab.meta | 7 + .../DisableInPlayModeTest.prefab | 47 +++++ .../DisableInPlayModeTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/Documentation.meta | 8 + .../Documentation/AlchemySerializationTest.cs | 30 ++++ .../AlchemySerializationTest.cs.meta | 2 + .../Documentation/AssetsOnlyTest.cs | 15 ++ .../Documentation/AssetsOnlyTest.cs.meta | 2 + .../Documentation/AttributesTest.cs | 24 +++ .../Documentation/AttributesTest.cs.meta | 2 + .../Documentation/BlockquoteTest.cs | 12 ++ .../Documentation/BlockquoteTest.cs.meta | 2 + .../Documentation/BoxGroupTest.cs | 27 +++ .../Documentation/BoxGroupTest.cs.meta | 2 + .../Documentation/DisableAlchemyEditorTest.cs | 14 ++ .../DisableAlchemyEditorTest.cs.meta | 2 + .../Documentation/DisableIfTest.cs | 23 +++ .../Documentation/DisableIfTest.cs.meta | 2 + .../Documentation/DisableInEditModeTest.cs | 12 ++ .../DisableInEditModeTest.cs.meta | 2 + .../Documentation/DisableInPlayModeTest.cs | 12 ++ .../DisableInPlayModeTest.cs.meta | 2 + .../DocumentationSampleAttribute.cs | 7 + .../DocumentationSampleAttribute.cs.meta | 2 + .../Documentation/DocumentationSampleClass.cs | 13 ++ .../DocumentationSampleClass.cs.meta | 2 + .../DocumentationSampleScriptableObject.asset | 17 ++ ...mentationSampleScriptableObject.asset.meta | 8 + .../DocumentationSampleScriptableObject.cs | 11 ++ ...ocumentationSampleScriptableObject.cs.meta | 2 + .../Documentation/EnableIfTest.cs | 23 +++ .../Documentation/EnableIfTest.cs.meta | 2 + .../Documentation/FoldoutGroupTest.cs | 27 +++ .../Documentation/FoldoutGroupTest.cs.meta | 2 + .../Documentation/GroupAttributesTest.cs | 27 +++ .../Documentation/GroupAttributesTest.cs.meta | 2 + .../Documentation/GroupTest.cs | 27 +++ .../Documentation/GroupTest.cs.meta | 2 + .../Documentation/HelpBoxTest.cs | 19 ++ .../Documentation/HelpBoxTest.cs.meta | 2 + .../Documentation/HideIfTest.cs | 23 +++ .../Documentation/HideIfTest.cs.meta | 2 + .../Documentation/HideInEditModeTest.cs | 12 ++ .../Documentation/HideInEditModeTest.cs.meta | 2 + .../Documentation/HideInPlayModeTest.cs | 12 ++ .../Documentation/HideInPlayModeTest.cs.meta | 2 + .../Documentation/HideLabelTest.cs | 18 ++ .../Documentation/HideLabelTest.cs.meta | 2 + .../Documentation/HideScriptFieldTest.cs | 14 ++ .../Documentation/HideScriptFieldTest.cs.meta | 2 + .../Documentation/HorizontalGroupTest.cs | 42 +++++ .../Documentation/HorizontalGroupTest.cs.meta | 2 + .../Documentation/HorizontalLineTest.cs | 18 ++ .../Documentation/HorizontalLineTest.cs.meta | 2 + .../Documentation/IndentTest.cs | 18 ++ .../Documentation/IndentTest.cs.meta | 2 + .../Documentation/InlineEditorTest.cs | 12 ++ .../Documentation/InlineEditorTest.cs.meta | 2 + .../Documentation/LabelTextTest.cs | 28 +++ .../Documentation/LabelTextTest.cs.meta | 2 + .../Documentation/ListViewSettingsTest.cs | 26 +++ .../ListViewSettingsTest.cs.meta | 2 + .../NestedGroupAttributesTest.cs | 27 +++ .../NestedGroupAttributesTest.cs.meta | 2 + .../Documentation/OnInspectorDestroyTest.cs | 15 ++ .../OnInspectorDestroyTest.cs.meta | 2 + .../Documentation/OnInspectorDisableTest.cs | 15 ++ .../OnInspectorDisableTest.cs.meta | 2 + .../Documentation/OnInspectorEnableTest.cs | 15 ++ .../OnInspectorEnableTest.cs.meta | 2 + .../Documentation/OnValueChangedTest.cs | 17 ++ .../Documentation/OnValueChangedTest.cs.meta | 2 + .../Documentation/OrderTest.cs | 18 ++ .../Documentation/OrderTest.cs.meta | 2 + .../Documentation/ReadOnlyTest.cs | 21 +++ .../Documentation/ReadOnlyTest.cs.meta | 2 + .../Documentation/RequiredTest.cs | 15 ++ .../Documentation/RequiredTest.cs.meta | 2 + .../SerializableGroupAttributeTest.cs | 21 +++ .../SerializableGroupAttributeTest.cs.meta | 2 + .../SerializationCallbackTest.cs | 30 ++++ .../SerializationCallbackTest.cs.meta | 2 + .../Documentation/SerializeReferenceTest.cs | 35 ++++ .../SerializeReferenceTest.cs.meta | 2 + .../ShowAlchemySerializationDataTest.cs | 22 +++ .../ShowAlchemySerializationDataTest.cs.meta | 2 + .../Documentation/ShowIfTest.cs | 23 +++ .../Documentation/ShowIfTest.cs.meta | 2 + .../Documentation/ShowInInspectorTest.cs | 22 +++ .../Documentation/ShowInInspectorTest.cs.meta | 2 + .../Documentation/TabGroupTest.cs | 27 +++ .../Documentation/TabGroupTest.cs.meta | 2 + .../Documentation/TitleTest.cs | 19 ++ .../Documentation/TitleTest.cs.meta | 2 + .../Documentation/ValidateInputTest.cs | 25 +++ .../Documentation/ValidateInputTest.cs.meta | 2 + .../Assets/Alchemy.Tests.EditorUI/Editor.meta | 8 + .../Alchemy.Tests.EditorUI.Editor.asmdef | 32 ++++ .../Alchemy.Tests.EditorUI.Editor.asmdef.meta | 7 + .../Editor/DocumentationEditorSamples.cs | 170 ++++++++++++++++++ .../Editor/DocumentationEditorSamples.cs.meta | 2 + .../Editor/DocumentationEditorSamplesTest.cs | 158 ++++++++++++++++ .../DocumentationEditorSamplesTest.cs.meta | 2 + .../EnableIfTest.prefab | 50 ++++++ .../EnableIfTest.prefab.meta | 7 + .../FoldoutGroupTest.prefab | 52 ++++++ .../FoldoutGroupTest.prefab.meta | 7 + .../GroupAttributesTest.prefab | 52 ++++++ .../GroupAttributesTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/GroupTest.prefab | 52 ++++++ .../GroupTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/HelpBoxTest.prefab | 49 +++++ .../HelpBoxTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/HideIfTest.prefab | 50 ++++++ .../HideIfTest.prefab.meta | 7 + .../HideInEditModeTest.prefab | 47 +++++ .../HideInEditModeTest.prefab.meta | 7 + .../HideInPlayModeTest.prefab | 47 +++++ .../HideInPlayModeTest.prefab.meta | 7 + .../HideLabelTest.prefab | 49 +++++ .../HideLabelTest.prefab.meta | 7 + .../HideScriptFieldTest.prefab | 49 +++++ .../HideScriptFieldTest.prefab.meta | 7 + .../HorizontalGroupTest.prefab | 55 ++++++ .../HorizontalGroupTest.prefab.meta | 7 + .../HorizontalLineTest.prefab | 49 +++++ .../HorizontalLineTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/IndentTest.prefab | 49 +++++ .../IndentTest.prefab.meta | 7 + .../InlineEditorTest.prefab | 47 +++++ .../InlineEditorTest.prefab.meta | 7 + .../LabelTextTest.prefab | 52 ++++++ .../LabelTextTest.prefab.meta | 7 + .../ListViewSettingsTest.prefab | 50 ++++++ .../ListViewSettingsTest.prefab.meta | 7 + .../NestedGroupAttributesTest.prefab | 52 ++++++ .../NestedGroupAttributesTest.prefab.meta | 7 + .../OnInspectorDestroyTest.prefab | 46 +++++ .../OnInspectorDestroyTest.prefab.meta | 7 + .../OnInspectorDisableTest.prefab | 46 +++++ .../OnInspectorDisableTest.prefab.meta | 7 + .../OnInspectorEnableTest.prefab | 46 +++++ .../OnInspectorEnableTest.prefab.meta | 7 + .../OnListViewChangedTest.cs | 7 + .../OnValueChangedTest.prefab | 47 +++++ .../OnValueChangedTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/OrderTest.prefab | 49 +++++ .../OrderTest.prefab.meta | 7 + .../Pipeline/DocumentationPrefabCommands.cs | 103 +++++++++++ .../DocumentationPrefabCommands.cs.meta | 2 + .../ReadOnlyTest.prefab | 62 +++++++ .../ReadOnlyTest.prefab.meta | 7 + .../RequiredTest.prefab | 48 +++++ .../RequiredTest.prefab.meta | 7 + .../SerializableGroupAttributeTest.prefab | 50 ++++++ ...SerializableGroupAttributeTest.prefab.meta | 7 + .../SerializationCallbackTest.prefab | 50 ++++++ .../SerializationCallbackTest.prefab.meta | 7 + .../SerializeReferenceTest.prefab | 54 ++++++ .../SerializeReferenceTest.prefab.meta | 7 + .../ShowAlchemySerializationDataTest.prefab | 51 ++++++ ...owAlchemySerializationDataTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/ShowIfTest.prefab | 50 ++++++ .../ShowIfTest.prefab.meta | 7 + .../ShowInInspectorTest.prefab | 46 +++++ .../ShowInInspectorTest.prefab.meta | 7 + .../TabGroupTest.prefab | 52 ++++++ .../TabGroupTest.prefab.meta | 7 + .../Alchemy.Tests.EditorUI/TitleTest.prefab | 52 ++++++ .../TitleTest.prefab.meta | 7 + .../ValidateInputTest.prefab | 48 +++++ .../ValidateInputTest.prefab.meta | 7 + 188 files changed, 3941 insertions(+), 3 deletions(-) create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamplesTest.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamplesTest.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/EnableIfTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/EnableIfTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/FoldoutGroupTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/FoldoutGroupTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/GroupAttributesTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/GroupAttributesTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/GroupTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/GroupTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HelpBoxTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HelpBoxTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideIfTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideIfTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideInEditModeTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideInEditModeTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideInPlayModeTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideInPlayModeTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideLabelTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideLabelTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideScriptFieldTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HideScriptFieldTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HorizontalGroupTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HorizontalGroupTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HorizontalLineTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/HorizontalLineTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/IndentTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/IndentTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InlineEditorTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/InlineEditorTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/LabelTextTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/LabelTextTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ListViewSettingsTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ListViewSettingsTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/NestedGroupAttributesTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/NestedGroupAttributesTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorDestroyTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorDestroyTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorDisableTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorDisableTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorEnableTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnInspectorEnableTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnValueChangedTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OnValueChangedTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OrderTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/OrderTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/DocumentationPrefabCommands.cs create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Pipeline/DocumentationPrefabCommands.cs.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ReadOnlyTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ReadOnlyTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/RequiredTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/RequiredTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializableGroupAttributeTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializableGroupAttributeTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializationCallbackTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializationCallbackTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializeReferenceTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/SerializeReferenceTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowAlchemySerializationDataTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowAlchemySerializationDataTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowIfTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowIfTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowInInspectorTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ShowInInspectorTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/TabGroupTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/TabGroupTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/TitleTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/TitleTest.prefab.meta create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ValidateInputTest.prefab create mode 100644 tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ValidateInputTest.prefab.meta diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab new file mode 100644 index 0000000..437d687 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab @@ -0,0 +1,60 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4833983410175030248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 434683812672026496} + - component: {fileID: 1010792116841971272} + m_Layer: 0 + m_Name: AlchemySerializationTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &434683812672026496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4833983410175030248} + 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!114 &1010792116841971272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4833983410175030248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77075c0e66bc8764988804c617c8cfdb, type: 3} + m_Name: + m_EditorClassIdentifier: + __alchemySerializationData_Alchemy_Tests_EditorUI_AlchemySerializationTest: + hashSet: + isCreated: 1 + data: '[]' + dictionary: + isCreated: 1 + data: '{}' + tuple: + isCreated: 1 + data: "{\n \"Item1\": 0,\n \"Item2\": 0\n}" + nullable: + isCreated: 1 + data: + unityObjectReferences: [] diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab.meta new file mode 100644 index 0000000..2efdc8a --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AlchemySerializationTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9927ba2e10cd90f4891a2ff12bde95fa +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab new file mode 100644 index 0000000..3dd1f74 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7969595789695929025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6199107358970691834} + - component: {fileID: 6108789537771921315} + m_Layer: 0 + m_Name: AssetsOnlyTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6199107358970691834 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7969595789695929025} + 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!114 &6108789537771921315 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7969595789695929025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0f3b58f2efe0c214ab78b856104afd21, type: 3} + m_Name: + m_EditorClassIdentifier: + asset1: {fileID: 0} + asset2: {fileID: 0} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab.meta new file mode 100644 index 0000000..8927061 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AssetsOnlyTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37a7330c8323b984fb7c505e3fe172ec +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab new file mode 100644 index 0000000..ff0fcc4 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7913499614039050792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5937117087531992288} + - component: {fileID: 1025768183220970783} + m_Layer: 0 + m_Name: AttributesTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5937117087531992288 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7913499614039050792} + 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!114 &1025768183220970783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7913499614039050792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abdc1805567748846acb09cff7a308d2, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 + bar: {x: 0, y: 0, z: 0} + baz: {fileID: 0} + message: Read Only diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab.meta new file mode 100644 index 0000000..43b52eb --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/AttributesTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e48730a34785a4b4cb35a7537a596d6a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab new file mode 100644 index 0000000..33addee --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2548316035028445025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5154590914219048083} + - component: {fileID: 2022481192647348577} + m_Layer: 0 + m_Name: BlockquoteTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5154590914219048083 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2548316035028445025} + 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!114 &2022481192647348577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2548316035028445025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 13d8f0751f4404741b4a9cf4d18d3153, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab.meta new file mode 100644 index 0000000..3f4b14b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BlockquoteTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9bb9463b6a5d038449b3a7ccb4922ddd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab new file mode 100644 index 0000000..c1b081f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6730420857538552519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4949250687325513962} + - component: {fileID: 5041209240165784187} + m_Layer: 0 + m_Name: BoxGroupTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4949250687325513962 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6730420857538552519} + 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!114 &5041209240165784187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6730420857538552519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93db8569e8242b44f8f11a99d6c47b9a, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 + bar: {x: 0, y: 0, z: 0} + baz: {fileID: 0} + alpha: 0 + beta: {x: 0, y: 0, z: 0} + gamma: {fileID: 0} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab.meta new file mode 100644 index 0000000..c3b7f83 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/BoxGroupTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9ec9ad1b158049244b1bfaf2ad373abf +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs index ce58040..6fe363c 100644 --- a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/ButtonTest.cs @@ -1,15 +1,34 @@ +using System.Text; using Alchemy.Inspector; using UnityEngine; namespace Alchemy.Tests.EditorUI { + [DocumentationSample] public class ButtonTest : MonoBehaviour { [Button] - public void Foo() { } + public void Foo() + { + Debug.Log("Foo"); + } [Button] - [LabelText("Bar!!!")] - public void Bar() { } + public void Foo(int parameter) + { + Debug.Log("Foo: " + parameter); + } + + [Button] + public void Foo(DocumentationSampleClass parameter) + { + var builder = new StringBuilder(); + builder.AppendLine(); + builder.Append("foo = ").AppendLine(parameter.foo.ToString()); + builder.Append("bar = ").AppendLine(parameter.bar.ToString()); + builder.Append("baz = ").Append( + parameter.baz == null ? "Null" : parameter.baz.ToString()); + Debug.Log("Foo: " + builder.ToString()); + } } } diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab new file mode 100644 index 0000000..6b7babb --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab @@ -0,0 +1,49 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1172175665213812500 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8158895626135062598} + - component: {fileID: 1193352434301807421} + m_Layer: 0 + m_Name: DisableAlchemyEditorTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8158895626135062598 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172175665213812500} + 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!114 &1193352434301807421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172175665213812500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb405fa0828b0c14f86189e783905d05, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 + bar: {x: 0, y: 0, z: 0} + baz: {fileID: 0} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab.meta new file mode 100644 index 0000000..d32ec03 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableAlchemyEditorTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ecddfc7b0f871e468c65374e292d95c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab new file mode 100644 index 0000000..aa6c9bc --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4805384577913966904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3083928228992038853} + - component: {fileID: 5373796601430060530} + m_Layer: 0 + m_Name: DisableIfTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3083928228992038853 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4805384577913966904} + 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!114 &5373796601430060530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4805384577913966904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93beae88bee548443809f798f76dd14a, type: 3} + m_Name: + m_EditorClassIdentifier: + isDisabled: 0 + disableIfField: 0 + disableIfProperty: 0 + disableIfMethod: 0 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab.meta new file mode 100644 index 0000000..bb7c781 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableIfTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18bdec2b56998cc4eae93d025538aaa1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab new file mode 100644 index 0000000..9d2df2a --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6626959707458978970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8201732400587953372} + - component: {fileID: 94429191721525758} + m_Layer: 0 + m_Name: DisableInEditModeTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8201732400587953372 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6626959707458978970} + 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!114 &94429191721525758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6626959707458978970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6ed26fc1ca232c4ead0f963adac7e6e, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab.meta new file mode 100644 index 0000000..7ddee59 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInEditModeTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c5b60e621390ff743b274136d26aace3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab new file mode 100644 index 0000000..e0234bd --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2165278591452731329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6462516772649586905} + - component: {fileID: 3915162951331793057} + m_Layer: 0 + m_Name: DisableInPlayModeTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6462516772649586905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2165278591452731329} + 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!114 &3915162951331793057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2165278591452731329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65743d77fd1959141878dd2f70211254, type: 3} + m_Name: + m_EditorClassIdentifier: + foo: 0 diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab.meta new file mode 100644 index 0000000..70aa1ab --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/DisableInPlayModeTest.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eab6e87f3949f654180e9b5e38965639 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation.meta new file mode 100644 index 0000000..ca87b26 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d763d07dcb9ac346ac22f9652e9da8d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs new file mode 100644 index 0000000..84e64a3 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +#if ALCHEMY_SUPPORT_SERIALIZATION +using Alchemy.Serialization; +#endif + +namespace Alchemy.Tests.EditorUI +{ +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerialize] +#endif + [DocumentationSample] + public partial class AlchemySerializationTest : MonoBehaviour + { +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerializeField, NonSerialized] + public HashSet hashSet = new(); + + [AlchemySerializeField, NonSerialized] + public Dictionary dictionary = new(); + + [AlchemySerializeField, NonSerialized] + public (int, int) tuple; + + [AlchemySerializeField, NonSerialized] + public Vector3? nullable; +#endif + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs.meta new file mode 100644 index 0000000..02dc27e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AlchemySerializationTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 77075c0e66bc8764988804c617c8cfdb \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs new file mode 100644 index 0000000..0429544 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class AssetsOnlyTest : MonoBehaviour + { + [AssetsOnly] + public Object asset1; + + [AssetsOnly] + public GameObject asset2; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs.meta new file mode 100644 index 0000000..20310c3 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AssetsOnlyTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0f3b58f2efe0c214ab78b856104afd21 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs new file mode 100644 index 0000000..7ff27e5 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs @@ -0,0 +1,24 @@ +using Alchemy.Inspector; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class AttributesTest : MonoBehaviour + { + [LabelText("Custom Label")] + public float foo; + + [HideLabel] + public Vector3 bar; + + [AssetsOnly] + public GameObject baz; + + [Title("Title")] + [HelpBox("HelpBox", HelpBoxMessageType.Info)] + [ReadOnly] + public string message = "Read Only"; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs.meta new file mode 100644 index 0000000..392b21f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/AttributesTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: abdc1805567748846acb09cff7a308d2 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs new file mode 100644 index 0000000..68be811 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class BlockquoteTest : MonoBehaviour + { + [Blockquote("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")] + public float foo; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs.meta new file mode 100644 index 0000000..ba9e27b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BlockquoteTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 13d8f0751f4404741b4a9cf4d18d3153 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs new file mode 100644 index 0000000..c44d19a --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class BoxGroupTest : MonoBehaviour + { + [BoxGroup("Group1")] + public float foo; + + [BoxGroup("Group1")] + public Vector3 bar; + + [BoxGroup("Group1")] + public GameObject baz; + + [BoxGroup("Group1/Group2")] + public float alpha; + + [BoxGroup("Group1/Group2")] + public Vector3 beta; + + [BoxGroup("Group1/Group2")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs.meta new file mode 100644 index 0000000..6a2618b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/BoxGroupTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 93db8569e8242b44f8f11a99d6c47b9a \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs new file mode 100644 index 0000000..f11f21b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs @@ -0,0 +1,14 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + [DisableAlchemyEditor] + public class DisableAlchemyEditorTest : MonoBehaviour + { + public float foo; + public Vector3 bar; + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs.meta new file mode 100644 index 0000000..2cc2aa9 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableAlchemyEditorTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cb405fa0828b0c14f86189e783905d05 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs new file mode 100644 index 0000000..ee5052b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs @@ -0,0 +1,23 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class DisableIfTest : MonoBehaviour + { + public bool isDisabled; + + public bool IsDisabled => isDisabled; + public bool IsDisabledMethod() => isDisabled; + + [DisableIf("isDisabled")] + public int disableIfField; + + [DisableIf("IsDisabled")] + public int disableIfProperty; + + [DisableIf("IsDisabledMethod")] + public int disableIfMethod; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs.meta new file mode 100644 index 0000000..9d1bcf3 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableIfTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 93beae88bee548443809f798f76dd14a \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs new file mode 100644 index 0000000..398bc15 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class DisableInEditModeTest : MonoBehaviour + { + [DisableInEditMode] + public float foo; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs.meta new file mode 100644 index 0000000..e81c5e2 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInEditModeTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c6ed26fc1ca232c4ead0f963adac7e6e \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs new file mode 100644 index 0000000..e170432 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class DisableInPlayModeTest : MonoBehaviour + { + [DisableInPlayMode] + public float foo; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs.meta new file mode 100644 index 0000000..796fd44 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DisableInPlayModeTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 65743d77fd1959141878dd2f70211254 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs new file mode 100644 index 0000000..d36d53e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs @@ -0,0 +1,7 @@ +using System; + +namespace Alchemy.Tests.EditorUI +{ + [AttributeUsage(AttributeTargets.Class, Inherited = false)] + public sealed class DocumentationSampleAttribute : Attribute { } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs.meta new file mode 100644 index 0000000..fa4a302 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleAttribute.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8e6e690796f6fbf4189ce043159fcb1c \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs new file mode 100644 index 0000000..55da5fc --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs @@ -0,0 +1,13 @@ +using System; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [Serializable] + public sealed class DocumentationSampleClass + { + public float foo; + public Vector3 bar; + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs.meta new file mode 100644 index 0000000..58aee1e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleClass.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3c13fe89f13578342b79c85b8d3cd447 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset new file mode 100644 index 0000000..89bd465 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 774fb1b65ef2e3840a356b750f9573d1, type: 3} + m_Name: DocumentationSampleScriptableObject + m_EditorClassIdentifier: + foo: 0 + bar: {x: 0, y: 0} + baz: {fileID: 0} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset.meta new file mode 100644 index 0000000..f55dcdf --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2890fe6d99b584140bb99483062c9acd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs new file mode 100644 index 0000000..3a8881c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + public sealed class DocumentationSampleScriptableObject : ScriptableObject + { + public float foo; + public Vector2 bar; + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs.meta new file mode 100644 index 0000000..5e8c02f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/DocumentationSampleScriptableObject.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 774fb1b65ef2e3840a356b750f9573d1 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs new file mode 100644 index 0000000..95d54cd --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs @@ -0,0 +1,23 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class EnableIfTest : MonoBehaviour + { + public bool isEnabled; + + public bool IsEnabled => isEnabled; + public bool IsEnabledMethod() => isEnabled; + + [EnableIf("isEnabled")] + public int enableIfField; + + [EnableIf("IsEnabled")] + public int enableIfProperty; + + [EnableIf("IsEnabledMethod")] + public int enableIfMethod; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs.meta new file mode 100644 index 0000000..fe57447 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/EnableIfTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ebae36ed67ecbd14fac401fff6247c7f \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs new file mode 100644 index 0000000..9d12493 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class FoldoutGroupTest : MonoBehaviour + { + [FoldoutGroup("Group1")] + public float foo; + + [FoldoutGroup("Group1")] + public Vector3 bar; + + [FoldoutGroup("Group1")] + public GameObject baz; + + [FoldoutGroup("Group2")] + public float alpha; + + [FoldoutGroup("Group2")] + public Vector3 beta; + + [FoldoutGroup("Group2")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs.meta new file mode 100644 index 0000000..42f4263 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/FoldoutGroupTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8b87c36d32cb77f488b01bf70e5568b7 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs new file mode 100644 index 0000000..387bf5f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class GroupAttributesTest : MonoBehaviour + { + [FoldoutGroup("Foldout")] + public int a; + + [FoldoutGroup("Foldout")] + public int b; + + [FoldoutGroup("Foldout")] + public int c; + + [TabGroup("Tab", "Tab1")] + public int x; + + [TabGroup("Tab", "Tab2")] + public string y; + + [TabGroup("Tab", "Tab3")] + public Vector3 z; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs.meta new file mode 100644 index 0000000..2cec66e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupAttributesTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f2b238371546a554699237eb07f741b0 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs new file mode 100644 index 0000000..44545b8 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class GroupTest : MonoBehaviour + { + [Group("Group1")] + public float foo; + + [Group("Group1")] + public Vector3 bar; + + [Group("Group1")] + public GameObject baz; + + [Group("Group2")] + public float alpha; + + [Group("Group2")] + public Vector3 beta; + + [Group("Group2")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs.meta new file mode 100644 index 0000000..4dd966b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/GroupTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f9e20e01701975d4d8bf9d1461f41e58 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs new file mode 100644 index 0000000..41eaf3c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs @@ -0,0 +1,19 @@ +using Alchemy.Inspector; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HelpBoxTest : MonoBehaviour + { + [HelpBox("Custom Info")] + public float foo; + + [HelpBox("Custom Warning", HelpBoxMessageType.Warning)] + public Vector2 bar; + + [HelpBox("Custom Error", HelpBoxMessageType.Error)] + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs.meta new file mode 100644 index 0000000..5d29af1 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HelpBoxTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 77449ad9bfbc03e40b8a0e27f1d4b5b4 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs new file mode 100644 index 0000000..5dad1a9 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs @@ -0,0 +1,23 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HideIfTest : MonoBehaviour + { + public bool hide; + + public bool Hide => hide; + public bool IsHideTrue() => hide; + + [HideIf("hide")] + public int hideIfField; + + [HideIf("Hide")] + public int hideIfProperty; + + [HideIf("IsHideTrue")] + public int hideIfMethod; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs.meta new file mode 100644 index 0000000..e43fd4e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideIfTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8b9d0bab9056e304281aa7b3b249d967 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs new file mode 100644 index 0000000..6724fc5 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HideInEditModeTest : MonoBehaviour + { + [HideInEditMode] + public float foo; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs.meta new file mode 100644 index 0000000..5ca3cbb --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInEditModeTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cb800accafe165e438501a68b519c53b \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs new file mode 100644 index 0000000..f58b80e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HideInPlayModeTest : MonoBehaviour + { + [HideInPlayMode] + public float foo; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs.meta new file mode 100644 index 0000000..2e9a462 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideInPlayModeTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 073599357161fc74e85a827c118ee115 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs new file mode 100644 index 0000000..41c9421 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs @@ -0,0 +1,18 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HideLabelTest : MonoBehaviour + { + [HideLabel] + public float foo; + + [HideLabel] + public Vector3 bar; + + [HideLabel] + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs.meta new file mode 100644 index 0000000..e576896 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideLabelTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d49e09563e588804e870538179bca6fd \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs new file mode 100644 index 0000000..05cc872 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs @@ -0,0 +1,14 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + [HideScriptField] + public class HideScriptFieldTest : MonoBehaviour + { + public float foo; + public Vector3 bar; + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs.meta new file mode 100644 index 0000000..e803a29 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HideScriptFieldTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fceb240f22f38f94da953e67aa95d664 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs new file mode 100644 index 0000000..8e0a541 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs @@ -0,0 +1,42 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HorizontalGroupTest : MonoBehaviour + { + [HorizontalGroup("Group1")] + public int a; + + [HorizontalGroup("Group1")] + public int b; + + [HorizontalGroup("Group1")] + public int c; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box1")] + public float foo; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box1")] + public Vector3 bar; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box1")] + public GameObject baz; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box2")] + public float alpha; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box2")] + public Vector3 beta; + + [HorizontalGroup("Group2")] + [BoxGroup("Group2/Box2")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs.meta new file mode 100644 index 0000000..a552265 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalGroupTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: dc7d34c06d7368c45b84e456a45fb365 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs new file mode 100644 index 0000000..59b1788 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs @@ -0,0 +1,18 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class HorizontalLineTest : MonoBehaviour + { + [HorizontalLine] + public float foo; + + [HorizontalLine(1f, 0f, 0f)] + public Vector2 bar; + + [HorizontalLine(1f, 0.5f, 0f, 0.5f)] + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs.meta new file mode 100644 index 0000000..15d4490 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/HorizontalLineTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6512d60f6befb054cb5df832cb1037ea \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs new file mode 100644 index 0000000..eeac039 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs @@ -0,0 +1,18 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class IndentTest : MonoBehaviour + { + [Indent] + public float foo; + + [Indent(2)] + public Vector2 bar; + + [Indent(3)] + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs.meta new file mode 100644 index 0000000..70d3ecd --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/IndentTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 260bb8bcbd262d148aedb4f49f1e1319 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs new file mode 100644 index 0000000..312f75c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs @@ -0,0 +1,12 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class InlineEditorTest : MonoBehaviour + { + [InlineEditor] + public DocumentationSampleScriptableObject sample; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs.meta new file mode 100644 index 0000000..0d7f13f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/InlineEditorTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 83d10c53098f8f146a8502a748d269b2 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs new file mode 100644 index 0000000..cdcb403 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs @@ -0,0 +1,28 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class LabelTextTest : MonoBehaviour + { + [LabelText("FOO!")] + public float foo; + + [LabelText("BAR!")] + public Vector3 bar; + + [LabelText("BAZ!")] + public GameObject baz; + + [Space] + [LabelText("α")] + public float alpha; + + [LabelText("β")] + public Vector3 beta; + + [LabelText("γ")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs.meta new file mode 100644 index 0000000..a762ec3 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/LabelTextTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e1e451d21b4107640bfcb1fc92248b4e \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs new file mode 100644 index 0000000..42e8668 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs @@ -0,0 +1,26 @@ +using Alchemy.Inspector; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class ListViewSettingsTest : MonoBehaviour + { + [ListViewSettings( + ShowAlternatingRowBackgrounds = AlternatingRowBackground.All, + ShowFoldoutHeader = false)] + public int[] array1; + + [ListViewSettings( + Reorderable = false, + ShowAddRemoveFooter = false, + ShowBorder = false, + ShowBoundCollectionSize = false)] + public Vector3[] array2 = new Vector3[] + { + Vector3.zero, + Vector3.one + }; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs.meta new file mode 100644 index 0000000..bca440d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ListViewSettingsTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f3a18ea0719df5944a7acce2cdc47c20 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs new file mode 100644 index 0000000..a7f3f94 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class NestedGroupAttributesTest : MonoBehaviour + { + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box1")] + public float foo; + + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box1")] + public Vector3 bar; + + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box1")] + public GameObject baz; + + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box2")] + public float alpha; + + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box2")] + public Vector3 beta; + + [HorizontalGroup("Horizontal"), BoxGroup("Horizontal/Box2")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs.meta new file mode 100644 index 0000000..82e6219 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/NestedGroupAttributesTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e44c6cce0df89a24bad630628039c11e \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs new file mode 100644 index 0000000..20cc71f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class OnInspectorDestroyTest : MonoBehaviour + { + [OnInspectorDestroy] + void OnInspectorDestroy() + { + Debug.Log("Destroy"); + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs.meta new file mode 100644 index 0000000..0694943 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDestroyTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 203b732e7a2dc7e41a9ac5a54531d46f \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs new file mode 100644 index 0000000..09795aa --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class OnInspectorDisableTest : MonoBehaviour + { + [OnInspectorDisable] + void OnInspectorDisable() + { + Debug.Log("Disable"); + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs.meta new file mode 100644 index 0000000..17c9fe4 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorDisableTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0dfda634c4cc7c84f8d9979da90765ff \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs new file mode 100644 index 0000000..f921679 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class OnInspectorEnableTest : MonoBehaviour + { + [OnInspectorEnable] + void OnInspectorEnable() + { + Debug.Log("Enable"); + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs.meta new file mode 100644 index 0000000..60e3feb --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnInspectorEnableTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 66c3cbde56e0e9944a2fe493d0535107 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs new file mode 100644 index 0000000..efda480 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs @@ -0,0 +1,17 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class OnValueChangedTest : MonoBehaviour + { + [OnValueChanged("OnValueChanged")] + public int foo; + + void OnValueChanged(int value) + { + Debug.Log(value); + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs.meta new file mode 100644 index 0000000..0919373 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OnValueChangedTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fd9800868e23df34cb7b775bba7f8f30 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs new file mode 100644 index 0000000..c00bcce --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs @@ -0,0 +1,18 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class OrderTest : MonoBehaviour + { + [Order(2)] + public float foo; + + [Order(1)] + public Vector3 bar; + + [Order(0)] + public GameObject baz; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs.meta new file mode 100644 index 0000000..5171de8 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/OrderTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9a965874be8ae6c44891ce082a96447a \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs new file mode 100644 index 0000000..e2d8fe6 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs @@ -0,0 +1,21 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class ReadOnlyTest : MonoBehaviour + { + [ReadOnly] + public float field = 2.5f; + + [ReadOnly] + public int[] array = new int[5]; + + [ReadOnly] + public DocumentationSampleClass classField; + + [ReadOnly] + public DocumentationSampleClass[] classArray = new DocumentationSampleClass[3]; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs.meta new file mode 100644 index 0000000..c4a1a40 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ReadOnlyTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1671c2c2c6ab66544b258264f4b54011 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs new file mode 100644 index 0000000..26b713b --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs @@ -0,0 +1,15 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class RequiredTest : MonoBehaviour + { + [Required] + public GameObject requiredField1; + + [Required("Custom message")] + public Material requiredField2; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs.meta new file mode 100644 index 0000000..67e239d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/RequiredTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f8f67bc94315a2d48a50c4d6b8dcfdc8 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs new file mode 100644 index 0000000..92d8e41 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs @@ -0,0 +1,21 @@ +using System; +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class SerializableGroupAttributeTest : MonoBehaviour + { + [Serializable] + [BoxGroup] + public sealed class Example + { + public float foo; + public Vector3 bar; + public GameObject baz; + } + + public Example example; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs.meta new file mode 100644 index 0000000..053fb68 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializableGroupAttributeTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ece818810dc489a429804ed154107908 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs new file mode 100644 index 0000000..e503745 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs @@ -0,0 +1,30 @@ +using UnityEngine; +#if ALCHEMY_SUPPORT_SERIALIZATION +using Alchemy.Serialization; +#endif + +namespace Alchemy.Tests.EditorUI +{ +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerialize] +#endif + [DocumentationSample] + public partial class SerializationCallbackTest : MonoBehaviour +#if ALCHEMY_SUPPORT_SERIALIZATION + , IAlchemySerializationCallbackReceiver +#endif + { + public int beforeSerializeCount; + public int afterDeserializeCount; + + public void OnBeforeSerialize() + { + beforeSerializeCount++; + } + + public void OnAfterDeserialize() + { + afterDeserializeCount++; + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs.meta new file mode 100644 index 0000000..de37576 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializationCallbackTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6c5c7f2b761b88b43bc32e72d4dc91c8 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs new file mode 100644 index 0000000..5a932ca --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs @@ -0,0 +1,35 @@ +using System; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + public interface IExample { } + + [Serializable] + public sealed class ExampleA : IExample + { + public float alpha; + } + + [Serializable] + public sealed class ExampleB : IExample + { + public Vector3 beta; + } + + [Serializable] + public sealed class ExampleC : IExample + { + public GameObject gamma; + } + + [DocumentationSample] + public class SerializeReferenceTest : MonoBehaviour + { + [SerializeReference] + public IExample example; + + [SerializeReference] + public IExample[] exampleArray; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs.meta new file mode 100644 index 0000000..019e34e --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/SerializeReferenceTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ada7fb0c6e40b1644a78d2335feff91c \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs new file mode 100644 index 0000000..30c5db1 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +#if ALCHEMY_SUPPORT_SERIALIZATION +using Alchemy.Serialization; +#endif + +namespace Alchemy.Tests.EditorUI +{ +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerialize] + [ShowAlchemySerializationData] +#endif + [DocumentationSample] + public partial class ShowAlchemySerializationDataTest : MonoBehaviour + { +#if ALCHEMY_SUPPORT_SERIALIZATION + [AlchemySerializeField, NonSerialized] + public Dictionary dictionary = new(); +#endif + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs.meta new file mode 100644 index 0000000..b93a134 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowAlchemySerializationDataTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 25f6cd150a56eec4c80485b2caeb81f7 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs new file mode 100644 index 0000000..8d64253 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs @@ -0,0 +1,23 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class ShowIfTest : MonoBehaviour + { + public bool show; + + public bool Show => show; + public bool IsShowTrue() => show; + + [ShowIf("show")] + public int showIfField; + + [ShowIf("Show")] + public int showIfProperty; + + [ShowIf("IsShowTrue")] + public int showIfMethod; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs.meta new file mode 100644 index 0000000..2350953 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowIfTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 39493d90c325ac74c8cd950661380a21 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs new file mode 100644 index 0000000..049d71d --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs @@ -0,0 +1,22 @@ +using System; +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class ShowInInspectorTest : MonoBehaviour + { + [NonSerialized, ShowInInspector] + public int field; + + [NonSerialized, ShowInInspector] + public DocumentationSampleClass classField = new(); + + [ShowInInspector] + public int Getter => 10; + + [field: NonSerialized, ShowInInspector] + public string Property { get; set; } = string.Empty; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs.meta new file mode 100644 index 0000000..3350d61 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ShowInInspectorTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e8f87683d7aab774f9512dd17bab5713 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs new file mode 100644 index 0000000..8795f4f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs @@ -0,0 +1,27 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class TabGroupTest : MonoBehaviour + { + [TabGroup("Group1", "Tab1")] + public float foo; + + [TabGroup("Group1", "Tab2")] + public Vector3 bar; + + [TabGroup("Group1", "Tab3")] + public GameObject baz; + + [TabGroup("Group1", "Tab1")] + public float alpha; + + [TabGroup("Group1", "Tab2")] + public Vector3 beta; + + [TabGroup("Group1", "Tab3")] + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs.meta new file mode 100644 index 0000000..5a70355 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TabGroupTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9a483a59206dfec4d9e55eef20e1873b \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs new file mode 100644 index 0000000..b367b8c --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs @@ -0,0 +1,19 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class TitleTest : MonoBehaviour + { + [Title("Title1")] + public float foo; + public Vector3 bar; + public GameObject baz; + + [Title("Title2", "Subtitle")] + public float alpha; + public Vector3 beta; + public GameObject gamma; + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs.meta new file mode 100644 index 0000000..1f4aac1 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/TitleTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 46cf27d85a0e48a418597951b140707c \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs new file mode 100644 index 0000000..b5d8f65 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs @@ -0,0 +1,25 @@ +using Alchemy.Inspector; +using UnityEngine; + +namespace Alchemy.Tests.EditorUI +{ + [DocumentationSample] + public class ValidateInputTest : MonoBehaviour + { + [ValidateInput("IsNotNull")] + public GameObject obj; + + [ValidateInput("IsZeroOrGreater", "foo must be 0 or greater.")] + public int foo = -1; + + static bool IsNotNull(GameObject go) + { + return go != null; + } + + static bool IsZeroOrGreater(int a) + { + return a >= 0; + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs.meta new file mode 100644 index 0000000..420f95a --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Documentation/ValidateInputTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1d44cb22d043709408f086719fd20752 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor.meta new file mode 100644 index 0000000..e85f112 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2574d400ee2113e4aba262f716334060 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef new file mode 100644 index 0000000..e79bc2a --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef @@ -0,0 +1,32 @@ +{ + "name": "Alchemy.Tests.EditorUI.Editor", + "rootNamespace": "Alchemy.Tests.EditorUI.Editor", + "references": [ + "GUID:27619889b8ba8c24980f49ee34dbb44a", + "GUID:0acc523941302664db1f4e527237feb3", + "GUID:88be65f96b86746888c927a5c8ff3534", + "GUID:9b64a2fc1d4b46d2bb1c83d6bc7287ff", + "GUID:5fd453cd0d182422093c4a764fd5eadb" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [ + { + "name": "com.unity.serialization", + "expression": "", + "define": "ALCHEMY_SUPPORT_SERIALIZATION" + } + ], + "noEngineReferences": false +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef.meta new file mode 100644 index 0000000..717cfa6 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/Alchemy.Tests.EditorUI.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e9e8fec172c30a42be7d8f82b31be3e +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs new file mode 100644 index 0000000..f16ea5f --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs @@ -0,0 +1,170 @@ +using System; +using System.Collections.Generic; +using System.IO; +using Alchemy.Editor; +using Alchemy.Inspector; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.EditorUI.Editor +{ + public sealed class DocumentationEditorWindow : AlchemyEditorWindow + { + [Serializable] + [HorizontalGroup] + public sealed class DatabaseItem + { + [LabelWidth(30f)] + public float foo; + + [LabelWidth(30f)] + public Vector3 bar; + + [LabelWidth(30f)] + public GameObject baz; + } + + [ListViewSettings( + ShowAlternatingRowBackgrounds = AlternatingRowBackground.All, + ShowFoldoutHeader = false)] + public List items; + + [Button, HorizontalGroup] + public void Button1() { } + + [Button, HorizontalGroup] + public void Button2() { } + + [Button, HorizontalGroup] + public void Button3() { } + + [MenuItem("Window/Alchemy Tests/Documentation Editor Window")] + static void Open() + { + var window = GetWindow( + "Documentation"); + window.Show(); + } + + public void BuildForTest() + { + CreateGUI(); + } + } + + public sealed class DocumentationSavingEditorWindow : AlchemyEditorWindow + { + public string value; + + string dataPath; + + public void SetDataPath(string path) + { + dataPath = path; + } + + public void LoadForTest() + { + LoadWindowData(GetWindowDataPath()); + } + + public void SaveForTest() + { + SaveWindowData(GetWindowDataPath()); + } + + protected override string GetWindowDataPath() + { + return string.IsNullOrWhiteSpace(dataPath) + ? base.GetWindowDataPath() + : dataPath; + } + + protected override void LoadWindowData(string path) + { + if (File.Exists(path)) + { + JsonUtility.FromJsonOverwrite(File.ReadAllText(path), this); + } + } + + protected override void SaveWindowData(string path) + { + File.WriteAllText(path, JsonUtility.ToJson(this, true)); + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public sealed class DocumentationHelpBoxAttribute : Attribute + { + public DocumentationHelpBoxAttribute( + string message, + HelpBoxMessageType messageType = HelpBoxMessageType.Info) + { + Message = message; + MessageType = messageType; + } + + public string Message { get; } + public HelpBoxMessageType MessageType { get; } + } + + [CustomAttributeDrawer(typeof(DocumentationHelpBoxAttribute))] + public sealed class DocumentationHelpBoxDrawer : AlchemyAttributeDrawer + { + HelpBox helpBox; + + public override void OnCreateElement() + { + var attribute = (DocumentationHelpBoxAttribute)Attribute; + helpBox = new HelpBox( + attribute.Message, + attribute.MessageType); + + var parent = TargetElement.parent; + parent.Insert(parent.IndexOf(TargetElement), helpBox); + } + } + + public sealed class DocumentationFoldoutGroupAttribute : + PropertyGroupAttribute + { + public DocumentationFoldoutGroupAttribute() { } + + public DocumentationFoldoutGroupAttribute(string groupPath) : + base(groupPath) { } + } + + [CustomGroupDrawer(typeof(DocumentationFoldoutGroupAttribute))] + public sealed class DocumentationFoldoutGroupDrawer : AlchemyGroupDrawer + { + public override VisualElement CreateRootElement(string label) + { + return new Foldout + { + style = + { + width = Length.Percent(100f), + }, + text = label, + }; + } + } + + public sealed class DocumentationEditorTarget : ScriptableObject + { + public int value; + } + + [CustomEditor(typeof(DocumentationEditorTarget))] + public sealed class DocumentationAlchemyEditor : AlchemyEditor + { + public override VisualElement CreateInspectorGUI() + { + var root = base.CreateInspectorGUI(); + root.Add(new Label("Documentation custom editor")); + return root; + } + } +} diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs.meta b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs.meta new file mode 100644 index 0000000..6fa4147 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamples.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ff0e57aa51600c549a6d7890161c0779 \ No newline at end of file diff --git a/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamplesTest.cs b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamplesTest.cs new file mode 100644 index 0000000..3a53987 --- /dev/null +++ b/tests/Alchemy.Tests/Assets/Alchemy.Tests.EditorUI/Editor/DocumentationEditorSamplesTest.cs @@ -0,0 +1,158 @@ +using System; +using System.IO; +using System.Linq; +using Alchemy.Editor; +using Alchemy.Tests.EditorUI; +using NUnit.Framework; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Alchemy.Tests.EditorUI.Editor +{ + public class DocumentationEditorSamplesTest + { + [Test] + public void AlchemyEditorWindow_BuildsDocumentedFields() + { + var window = ScriptableObject.CreateInstance< + DocumentationEditorWindow>(); + try + { + window.BuildForTest(); + Assert.That(window.rootVisualElement.childCount, Is.GreaterThan(0)); + } + finally + { + UnityEngine.Object.DestroyImmediate(window); + } + } + + [Test] + public void SavingEditorWindowData_RoundTripsJson() + { + var path = Path.Combine( + Path.GetTempPath(), + $"Alchemy-{Guid.NewGuid():N}.json"); + var window = ScriptableObject.CreateInstance< + DocumentationSavingEditorWindow>(); + try + { + window.SetDataPath(path); + window.value = "saved"; + window.SaveForTest(); + window.value = string.Empty; + window.LoadForTest(); + + Assert.That(window.value, Is.EqualTo("saved")); + } + finally + { + UnityEngine.Object.DestroyImmediate(window); + if (File.Exists(path)) + { + File.Delete(path); + } + } + } + + [Test] + public void CustomAttributeDrawer_IsRegistered() + { + var drawerTypes = TypeCache.GetTypesWithAttribute< + CustomAttributeDrawerAttribute>(); + + Assert.That( + drawerTypes.Contains(typeof(DocumentationHelpBoxDrawer)), + Is.True); + } + + [Test] + public void CustomGroupDrawer_BuildsFoldout() + { + var drawerType = AlchemyEditorUtility.FindGroupDrawerType( + new DocumentationFoldoutGroupAttribute("Documentation")); + var drawer = new DocumentationFoldoutGroupDrawer(); + var element = drawer.CreateRootElement("Documentation"); + + Assert.That( + drawerType, + Is.EqualTo(typeof(DocumentationFoldoutGroupDrawer))); + Assert.That(element, Is.TypeOf()); + Assert.That(((Foldout)element).text, Is.EqualTo("Documentation")); + } + + [Test] + public void ExtendedAlchemyEditor_ReturnsCustomInspector() + { + var target = ScriptableObject.CreateInstance< + DocumentationEditorTarget>(); + var editor = UnityEditor.Editor.CreateEditor( + target, + typeof(DocumentationAlchemyEditor)); + try + { + var root = editor.CreateInspectorGUI(); + + Assert.That( + root.Query