From 33d62a34e200becbfd27e42623eedb000ae98b58 Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Wed, 21 Oct 2026 16:40:40 +0500 Subject: [PATCH] Add Unity client skeleton with login and profile --- .gitignore | 2 + IMPLEMENTATION_CHECKLIST.md | 27 +- README.md | 3 +- client/.vscode/extensions.json | 5 + client/.vscode/launch.json | 10 + client/.vscode/settings.json | 72 ++ .../Assets/InputSystem_Actions.inputactions | 1057 +++++++++++++++++ .../InputSystem_Actions.inputactions.meta | 14 + client/Assets/Plugins.meta | 8 + client/Assets/Plugins/MessagePack.meta | 8 + .../MessagePack/MessagePack.Annotations.dll | Bin 0 -> 18432 bytes .../MessagePack.Annotations.dll.meta | 2 + .../Plugins/MessagePack/MessagePack.dll | Bin 0 -> 371200 bytes .../Plugins/MessagePack/MessagePack.dll.meta | 2 + .../MessagePack/Microsoft.NET.StringTools.dll | Bin 0 -> 31392 bytes .../Microsoft.NET.StringTools.dll.meta | 2 + .../System.Collections.Immutable.dll | Bin 0 -> 252680 bytes .../System.Collections.Immutable.dll.meta | 2 + client/Assets/Plugins/Vanguard.Shared.meta | 8 + .../Vanguard.Shared/Vanguard.Shared.dll | Bin 0 -> 87552 bytes .../Vanguard.Shared/Vanguard.Shared.dll.meta | 2 + client/Assets/Scenes.meta | 8 + client/Assets/Scenes/Boot.unity | 432 +++++++ client/Assets/Scenes/Boot.unity.meta | 7 + client/Assets/Settings.meta | 8 + .../Settings/DefaultVolumeProfile.asset | 986 +++++++++++++++ .../Settings/DefaultVolumeProfile.asset.meta | 8 + client/Assets/Settings/Mobile_RPAsset.asset | 144 +++ .../Assets/Settings/Mobile_RPAsset.asset.meta | 8 + client/Assets/Settings/Mobile_Renderer.asset | 52 + .../Settings/Mobile_Renderer.asset.meta | 8 + client/Assets/Settings/PC_RPAsset.asset | 144 +++ client/Assets/Settings/PC_RPAsset.asset.meta | 8 + client/Assets/Settings/PC_Renderer.asset | 95 ++ client/Assets/Settings/PC_Renderer.asset.meta | 8 + .../Assets/Settings/SampleSceneProfile.asset | 159 +++ .../Settings/SampleSceneProfile.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 484 ++++++++ ...salRenderPipelineGlobalSettings.asset.meta | 8 + client/Assets/Vanguard.meta | 8 + client/Assets/Vanguard/Runtime.meta | 8 + client/Assets/Vanguard/Runtime/Api.meta | 8 + .../Assets/Vanguard/Runtime/Api/ApiClient.cs | 147 +++ .../Vanguard/Runtime/Api/ApiClient.cs.meta | 2 + .../Vanguard/Runtime/Api/ApiContracts.cs | 106 ++ .../Vanguard/Runtime/Api/ApiContracts.cs.meta | 2 + .../Vanguard/Runtime/Api/ApiException.cs | 37 + .../Vanguard/Runtime/Api/ApiException.cs.meta | 2 + client/Assets/Vanguard/Runtime/App.meta | 8 + .../Assets/Vanguard/Runtime/App/AppConfig.cs | 43 + .../Vanguard/Runtime/App/AppConfig.cs.meta | 2 + .../Vanguard/Runtime/App/ClientBootstrap.cs | 21 + .../Runtime/App/ClientBootstrap.cs.meta | 2 + .../Vanguard/Runtime/App/VanguardApp.cs | 70 ++ .../Vanguard/Runtime/App/VanguardApp.cs.meta | 2 + client/Assets/Vanguard/Runtime/Auth.meta | 8 + .../Vanguard/Runtime/Auth/AuthService.cs | 161 +++ .../Vanguard/Runtime/Auth/AuthService.cs.meta | 2 + .../Vanguard/Runtime/Auth/TokenStore.cs | 82 ++ .../Vanguard/Runtime/Auth/TokenStore.cs.meta | 2 + client/Assets/Vanguard/Runtime/State.meta | 8 + .../Vanguard/Runtime/State/PlayerState.cs | 73 ++ .../Runtime/State/PlayerState.cs.meta | 2 + client/Assets/Vanguard/Runtime/UI.meta | 8 + .../Assets/Vanguard/Runtime/UI/AppRootView.cs | 57 + .../Vanguard/Runtime/UI/AppRootView.cs.meta | 2 + .../Assets/Vanguard/Runtime/UI/LoginView.cs | 204 ++++ .../Vanguard/Runtime/UI/LoginView.cs.meta | 2 + client/Assets/Vanguard/Runtime/UI/MetaView.cs | 245 ++++ .../Vanguard/Runtime/UI/MetaView.cs.meta | 2 + client/Assets/Vanguard/Runtime/UI/UiKit.cs | 252 ++++ .../Assets/Vanguard/Runtime/UI/UiKit.cs.meta | 2 + .../Vanguard/Runtime/Vanguard.Runtime.asmdef | 18 + .../Runtime/Vanguard.Runtime.asmdef.meta | 7 + client/Assets/Vanguard/Tests.meta | 8 + client/Assets/Vanguard/Tests/Editor.meta | 8 + .../Vanguard/Tests/Editor/ClientSmokeTests.cs | 48 + .../Tests/Editor/ClientSmokeTests.cs.meta | 2 + .../Tests/Editor/Vanguard.Tests.Editor.asmdef | 21 + .../Editor/Vanguard.Tests.Editor.asmdef.meta | 7 + client/Packages/manifest.json | 24 + client/Packages/packages-lock.json | 314 +++++ client/ProjectSettings/AudioManager.asset | 19 + .../ProjectSettings/ClusterInputManager.asset | 6 + client/ProjectSettings/DynamicsManager.asset | 45 + .../ProjectSettings/EditorBuildSettings.asset | 12 + client/ProjectSettings/EditorSettings.asset | 52 + client/ProjectSettings/GraphicsSettings.asset | 67 ++ client/ProjectSettings/InputManager.asset | 487 ++++++++ client/ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 7 + client/ProjectSettings/NavMeshAreas.asset | 91 ++ .../PackageManagerSettings.asset | 44 + .../ProjectSettings/Physics2DSettings.asset | 56 + .../PhysicsCoreProjectSettings2D.asset | 6 + client/ProjectSettings/PresetManager.asset | 7 + .../ProjectAuditorSettings.asset | 36 + client/ProjectSettings/ProjectSettings.asset | 916 ++++++++++++++ client/ProjectSettings/ProjectVersion.txt | 2 + client/ProjectSettings/QualitySettings.asset | 141 +++ .../SceneTemplateSettings.json | 121 ++ .../ProjectSettings/ShaderGraphSettings.asset | 19 + .../Switch2PlayerSettings.asset | 68 ++ client/ProjectSettings/TagManager.asset | 76 ++ client/ProjectSettings/TimeManager.asset | 9 + .../ProjectSettings/URPProjectSettings.asset | 15 + .../UnityConnectSettings.asset | 34 + client/ProjectSettings/VFXManager.asset | 12 + .../VersionControlSettings.asset | 8 + client/ProjectSettings/XRSettings.asset | 10 + client/README.md | 75 ++ docs/HANDOFF.md | 33 +- 112 files changed, 8334 insertions(+), 11 deletions(-) create mode 100644 client/.vscode/extensions.json create mode 100644 client/.vscode/launch.json create mode 100644 client/.vscode/settings.json create mode 100644 client/Assets/InputSystem_Actions.inputactions create mode 100644 client/Assets/InputSystem_Actions.inputactions.meta create mode 100644 client/Assets/Plugins.meta create mode 100644 client/Assets/Plugins/MessagePack.meta create mode 100644 client/Assets/Plugins/MessagePack/MessagePack.Annotations.dll create mode 100644 client/Assets/Plugins/MessagePack/MessagePack.Annotations.dll.meta create mode 100644 client/Assets/Plugins/MessagePack/MessagePack.dll create mode 100644 client/Assets/Plugins/MessagePack/MessagePack.dll.meta create mode 100644 client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll create mode 100644 client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll.meta create mode 100644 client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll create mode 100644 client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll.meta create mode 100644 client/Assets/Plugins/Vanguard.Shared.meta create mode 100644 client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll create mode 100644 client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll.meta create mode 100644 client/Assets/Scenes.meta create mode 100644 client/Assets/Scenes/Boot.unity create mode 100644 client/Assets/Scenes/Boot.unity.meta create mode 100644 client/Assets/Settings.meta create mode 100644 client/Assets/Settings/DefaultVolumeProfile.asset create mode 100644 client/Assets/Settings/DefaultVolumeProfile.asset.meta create mode 100644 client/Assets/Settings/Mobile_RPAsset.asset create mode 100644 client/Assets/Settings/Mobile_RPAsset.asset.meta create mode 100644 client/Assets/Settings/Mobile_Renderer.asset create mode 100644 client/Assets/Settings/Mobile_Renderer.asset.meta create mode 100644 client/Assets/Settings/PC_RPAsset.asset create mode 100644 client/Assets/Settings/PC_RPAsset.asset.meta create mode 100644 client/Assets/Settings/PC_Renderer.asset create mode 100644 client/Assets/Settings/PC_Renderer.asset.meta create mode 100644 client/Assets/Settings/SampleSceneProfile.asset create mode 100644 client/Assets/Settings/SampleSceneProfile.asset.meta create mode 100644 client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset create mode 100644 client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 client/Assets/Vanguard.meta create mode 100644 client/Assets/Vanguard/Runtime.meta create mode 100644 client/Assets/Vanguard/Runtime/Api.meta create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiClient.cs create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiClient.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiContracts.cs create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiContracts.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiException.cs create mode 100644 client/Assets/Vanguard/Runtime/Api/ApiException.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/App.meta create mode 100644 client/Assets/Vanguard/Runtime/App/AppConfig.cs create mode 100644 client/Assets/Vanguard/Runtime/App/AppConfig.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs create mode 100644 client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/App/VanguardApp.cs create mode 100644 client/Assets/Vanguard/Runtime/App/VanguardApp.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/Auth.meta create mode 100644 client/Assets/Vanguard/Runtime/Auth/AuthService.cs create mode 100644 client/Assets/Vanguard/Runtime/Auth/AuthService.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/Auth/TokenStore.cs create mode 100644 client/Assets/Vanguard/Runtime/Auth/TokenStore.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/State.meta create mode 100644 client/Assets/Vanguard/Runtime/State/PlayerState.cs create mode 100644 client/Assets/Vanguard/Runtime/State/PlayerState.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/UI.meta create mode 100644 client/Assets/Vanguard/Runtime/UI/AppRootView.cs create mode 100644 client/Assets/Vanguard/Runtime/UI/AppRootView.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/UI/LoginView.cs create mode 100644 client/Assets/Vanguard/Runtime/UI/LoginView.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/UI/MetaView.cs create mode 100644 client/Assets/Vanguard/Runtime/UI/MetaView.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/UI/UiKit.cs create mode 100644 client/Assets/Vanguard/Runtime/UI/UiKit.cs.meta create mode 100644 client/Assets/Vanguard/Runtime/Vanguard.Runtime.asmdef create mode 100644 client/Assets/Vanguard/Runtime/Vanguard.Runtime.asmdef.meta create mode 100644 client/Assets/Vanguard/Tests.meta create mode 100644 client/Assets/Vanguard/Tests/Editor.meta create mode 100644 client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs create mode 100644 client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs.meta create mode 100644 client/Assets/Vanguard/Tests/Editor/Vanguard.Tests.Editor.asmdef create mode 100644 client/Assets/Vanguard/Tests/Editor/Vanguard.Tests.Editor.asmdef.meta create mode 100644 client/Packages/manifest.json create mode 100644 client/Packages/packages-lock.json create mode 100644 client/ProjectSettings/AudioManager.asset create mode 100644 client/ProjectSettings/ClusterInputManager.asset create mode 100644 client/ProjectSettings/DynamicsManager.asset create mode 100644 client/ProjectSettings/EditorBuildSettings.asset create mode 100644 client/ProjectSettings/EditorSettings.asset create mode 100644 client/ProjectSettings/GraphicsSettings.asset create mode 100644 client/ProjectSettings/InputManager.asset create mode 100644 client/ProjectSettings/MemorySettings.asset create mode 100644 client/ProjectSettings/MultiplayerManager.asset create mode 100644 client/ProjectSettings/NavMeshAreas.asset create mode 100644 client/ProjectSettings/PackageManagerSettings.asset create mode 100644 client/ProjectSettings/Physics2DSettings.asset create mode 100644 client/ProjectSettings/PhysicsCoreProjectSettings2D.asset create mode 100644 client/ProjectSettings/PresetManager.asset create mode 100644 client/ProjectSettings/ProjectAuditorSettings.asset create mode 100644 client/ProjectSettings/ProjectSettings.asset create mode 100644 client/ProjectSettings/ProjectVersion.txt create mode 100644 client/ProjectSettings/QualitySettings.asset create mode 100644 client/ProjectSettings/SceneTemplateSettings.json create mode 100644 client/ProjectSettings/ShaderGraphSettings.asset create mode 100644 client/ProjectSettings/Switch2PlayerSettings.asset create mode 100644 client/ProjectSettings/TagManager.asset create mode 100644 client/ProjectSettings/TimeManager.asset create mode 100644 client/ProjectSettings/URPProjectSettings.asset create mode 100644 client/ProjectSettings/UnityConnectSettings.asset create mode 100644 client/ProjectSettings/VFXManager.asset create mode 100644 client/ProjectSettings/VersionControlSettings.asset create mode 100644 client/ProjectSettings/XRSettings.asset create mode 100644 client/README.md diff --git a/.gitignore b/.gitignore index e2e5d4f..b84cd53 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ client/[Mm]emoryCaptures/ client/[Rr]ecordings/ client/*.csproj client/*.sln +client/*.slnx client/*.unityproj client/*.pidb client/*.booproj @@ -42,6 +43,7 @@ client/.vs/ client/.idea/ client/Assets/AddressableAssetsData/*.bin client/Assets/StreamingAssets/aa/* +client/*.log # --- Unity прочее --- *.unitypackage diff --git a/IMPLEMENTATION_CHECKLIST.md b/IMPLEMENTATION_CHECKLIST.md index bb4e3eb..7cefc8d 100644 --- a/IMPLEMENTATION_CHECKLIST.md +++ b/IMPLEMENTATION_CHECKLIST.md @@ -222,16 +222,25 @@ ## 7. Клиент: каркас и меню `[15–20 дней]` -- [ ] Unity 6 LTS, URP, Addressables, Input System, Localization, DOTween. -- [ ] Сцены: `Boot`, `Meta`, `Battle`. -- [ ] Composition root + DI (VContainer), без синглтон-свалок. -- [ ] `ApiClient` (HTTP/JSON), `MetaState`, обработка офлайна и таймаутов. -- [ ] `GameConnection` (TCP + MessagePack), очередь событий, `ClientGameState`. -- [ ] Экраны: логин/регистрация, главное меню, профиль (минимальный), магазин, коллекция, декбилдер, очередь, настройки. -- [ ] Декбилдер: фильтры (клан, грейд, редкость, тип, арт), счётчики, валидация в реальном времени. -- [ ] Коллекция: арты раздельно, «сколько в колодах», разбор в пыль с подтверждением. +**Первый блок начат:** проект `client/` создан из URP-шаблона Unity +**6000.6.6f1**. Уже работают логин/регистрация, refresh, `/me`, выход и +главный экран профиля. Подробности — `client/README.md` и `docs/HANDOFF.md`. + +- [x] Unity 6 LTS, URP, Addressables, Input System, Localization. + DOTween — следующим шагом (пока UI без внешних твинов). +- [x] Сцена `Boot` + runtime bootstrap; `Meta`/`Battle` появятся дальше. +- [x] Composition root + DI (VContainer), без синглтон-свалок. +- [x] `ApiClient` (HTTP/JSON), `PlayerState`, таймауты и разбор `ApiError`. +- [ ] `GameConnection` (WebSocket + MessagePack), очередь событий, + `ClientGameState`. +- [ ] Экраны: логин/регистрация — готово; главное меню — каркас; + профиль, магазин, коллекция, декбилдер, очередь, настройки — дальше. +- [ ] Декбилдер: фильтры (клан, грейд, редкость, тип, арт), счётчики, + валидация в реальном времени. +- [ ] Коллекция: арты раздельно, «сколько в колодах», разбор в пыль + с подтверждением. - [ ] Магазин: бустер (анимация открытия), триал-деки, обмен токенов. -- [ ] Локализация RU/EN, переключение на лету. +- [ ] Локализация RU/EN, переключение на лету (пакет подключён). - [ ] Настройки: язык, звук, FPS, мьют. **Готово, когда:** все мета-экраны работают против реального сервера, язык переключается без перезапуска. diff --git a/README.md b/README.md index bccda56..0a885d3 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,8 @@ | CI (Forgejo Actions) | готово: `ci.yml` проходит на `home-runner` | | EF-миграции | готово (`InitialCreate`) | | Orleans | готово: silo + `MatchActorGrain`, включается `Orleans:Enabled` | -| Клиент и лаунчер | не начато | +| Клиент | каркас: Unity 6.6, логин/регистрация, профиль, VContainer | +| Лаунчер | не начато | ## Требования diff --git a/client/.vscode/extensions.json b/client/.vscode/extensions.json new file mode 100644 index 0000000..ddb6ff8 --- /dev/null +++ b/client/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/client/.vscode/launch.json b/client/.vscode/launch.json new file mode 100644 index 0000000..da60e25 --- /dev/null +++ b/client/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/client/.vscode/settings.json b/client/.vscode/settings.json new file mode 100644 index 0000000..b9f7a76 --- /dev/null +++ b/client/.vscode/settings.json @@ -0,0 +1,72 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.vs": true, + "**/.gitmodules": true, + "**/.vsconfig": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "Logs/": true, + "logs/": true, + "ProjectSettings/": true, + "UserSettings/": true, + "temp/": true, + "Temp/": true + }, + "files.associations": { + "*.asset": "yaml", + "*.meta": "yaml", + "*.prefab": "yaml", + "*.unity": "yaml", + }, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.sln": "*.csproj", + "*.slnx": "*.csproj" + }, + "dotnet.defaultSolution": "client.slnx", + "dotnet.enableWorkspaceBasedDevelopment": false +} \ No newline at end of file diff --git a/client/Assets/InputSystem_Actions.inputactions b/client/Assets/InputSystem_Actions.inputactions new file mode 100644 index 0000000..1a12cb9 --- /dev/null +++ b/client/Assets/InputSystem_Actions.inputactions @@ -0,0 +1,1057 @@ +{ + "name": "InputSystem_Actions", + "maps": [ + { + "name": "Player", + "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37", + "actions": [ + { + "name": "Move", + "type": "Value", + "id": "351f2ccd-1f9f-44bf-9bec-d62ac5c5f408", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Look", + "type": "Value", + "id": "6b444451-8a00-4d00-a97e-f47457f736a8", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Attack", + "type": "Button", + "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Interact", + "type": "Button", + "id": "852140f2-7766-474d-8707-702459ba45f3", + "expectedControlType": "Button", + "processors": "", + "interactions": "Hold", + "initialStateCheck": false + }, + { + "name": "Crouch", + "type": "Button", + "id": "27c5f898-bc57-4ee1-8800-db469aca5fe3", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Jump", + "type": "Button", + "id": "f1ba0d36-48eb-4cd5-b651-1c94a6531f70", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Previous", + "type": "Button", + "id": "2776c80d-3c14-4091-8c56-d04ced07a2b0", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Next", + "type": "Button", + "id": "b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Sprint", + "type": "Button", + "id": "641cd816-40e6-41b4-8c3d-04687c349290", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "978bfe49-cc26-4a3d-ab7b-7d7a29327403", + "path": "/leftStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "WASD", + "id": "00ca640b-d935-4593-8157-c05846ea39b3", + "path": "Dpad", + "interactions": "", + "processors": "", + "groups": "", + "action": "Move", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "e2062cb9-1b15-46a2-838c-2f8d72a0bdd9", + "path": "/w", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "8180e8bd-4097-4f4e-ab88-4523101a6ce9", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "320bffee-a40b-4347-ac70-c210eb8bc73a", + "path": "/s", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "1c5327b5-f71c-4f60-99c7-4e737386f1d1", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "d2581a9b-1d11-4566-b27d-b92aff5fabbc", + "path": "/a", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "2e46982e-44cc-431b-9f0b-c11910bf467a", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcfe95b8-67b9-4526-84b5-5d0bc98d6400", + "path": "/d", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "77bff152-3580-4b21-b6de-dcd0c7e41164", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "1635d3fe-58b6-4ba9-a4e2-f4b964f6b5c8", + "path": "/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3ea4d645-4504-4529-b061-ab81934c3752", + "path": "/stick", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c1f7a91b-d0fd-4a62-997e-7fb9b69bf235", + "path": "/rightStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8c8e490b-c610-4785-884f-f04217b23ca4", + "path": "/delta", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse;Touch", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3e5f5442-8668-4b27-a940-df99bad7e831", + "path": "/{Hatswitch}", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91", + "path": "/buttonWest", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "05f6913d-c316-48b2-a6bb-e225f14c7960", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "886e731e-7071-4ae4-95c0-e61739dad6fd", + "path": "/primaryTouch/tap", + "interactions": "", + "processors": "", + "groups": ";Touch", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8255d333-5683-4943-a58a-ccb207ff1dce", + "path": "/{PrimaryAction}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7", + "path": "/enter", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "cbac6039-9c09-46a1-b5f2-4e5124ccb5ed", + "path": "/2", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e15ca19d-e649-4852-97d5-7fe8ccc44e94", + "path": "/dpad/right", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f2e9ba44-c423-42a7-ad56-f20975884794", + "path": "/leftShift", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8cbb2f4b-a784-49cc-8d5e-c010b8c7f4e6", + "path": "/leftStickPress", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d8bf24bf-3f2f-4160-a97c-38ec1eb520ba", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eb40bb66-4559-4dfa-9a2f-820438abb426", + "path": "/space", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "daba33a1-ad0c-4742-a909-43ad1cdfbeb6", + "path": "/buttonSouth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "603f3daf-40bd-4854-8724-93e8017f59e3", + "path": "/secondaryButton", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1534dc16-a6aa-499d-9c3a-22b47347b52a", + "path": "/1", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "25060bbd-a3a6-476e-8fba-45ae484aad05", + "path": "/dpad/left", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1c04ea5f-b012-41d1-a6f7-02e963b52893", + "path": "/e", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3f66d0b-7751-423f-908b-a11c5bd95930", + "path": "/buttonNorth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4f4649ac-64a8-4a73-af11-b3faef356a4d", + "path": "/buttonEast", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "36e52cba-0905-478e-a818-f4bfcb9f3b9a", + "path": "/c", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "UI", + "id": "272f6d14-89ba-496f-b7ff-215263d3219f", + "actions": [ + { + "name": "Navigate", + "type": "PassThrough", + "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Submit", + "type": "Button", + "id": "7607c7b6-cd76-4816-beef-bd0341cfe950", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Cancel", + "type": "Button", + "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Point", + "type": "PassThrough", + "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Click", + "type": "PassThrough", + "id": "3c7022bf-7922-4f7c-a998-c437916075ad", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightClick", + "type": "PassThrough", + "id": "44b200b1-1557-4083-816c-b22cbdf77ddf", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "MiddleClick", + "type": "PassThrough", + "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ScrollWheel", + "type": "PassThrough", + "id": "0489e84a-4833-4c40-bfae-cea84b696689", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDevicePosition", + "type": "PassThrough", + "id": "24908448-c609-4bc3-a128-ea258674378a", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDeviceOrientation", + "type": "PassThrough", + "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "Gamepad", + "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf", + "path": "/leftStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81", + "path": "/rightStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2db08d65-c5fb-421b-983f-c71163608d67", + "path": "/leftStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "58748904-2ea9-4a80-8579-b500e6a76df8", + "path": "/rightStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "8ba04515-75aa-45de-966d-393d9bbd1c14", + "path": "/leftStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921", + "path": "/rightStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcd248ae-a788-4676-a12e-f4d81205600b", + "path": "/leftStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20", + "path": "/rightStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90", + "path": "/dpad", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Joystick", + "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "3db53b26-6601-41be-9887-63ac74e79d19", + "path": "/stick/up", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f", + "path": "/stick/down", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835", + "path": "/stick/left", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc", + "path": "/stick/right", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Keyboard", + "id": "ff527021-f211-4c02-933e-5976594c46ed", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "eb480147-c587-4a33-85ed-eb0ab9942c43", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2bf42165-60bc-42ca-8072-8c13ab40239b", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "74214943-c580-44e4-98eb-ad7eebe17902", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "cea9b045-a000-445b-95b8-0c171af70a3b", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "8607c725-d935-4808-84b1-8354e29bab63", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc", + "path": "*/{Submit}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Submit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e", + "path": "*/{Cancel}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Cancel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5693e57a-238a-46ed-b5ae-e64e6e574302", + "path": "/touch*/position", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace", + "path": "/tip", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59", + "path": "/touch*/press", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "38c99815-14ea-4617-8627-164d27641299", + "path": "/scroll", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "ScrollWheel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4c191405-5738-4d4b-a523-c6a301dbf754", + "path": "/rightButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "RightClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "24066f69-da47-44f3-a07e-0015fb02eb2e", + "path": "/middleButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "MiddleClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77", + "path": "/devicePosition", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb", + "path": "/deviceRotation", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDeviceOrientation", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "Keyboard&Mouse", + "bindingGroup": "Keyboard&Mouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Touch", + "bindingGroup": "Touch", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Joystick", + "bindingGroup": "Joystick", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "XR", + "bindingGroup": "XR", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + } + ] +} \ No newline at end of file diff --git a/client/Assets/InputSystem_Actions.inputactions.meta b/client/Assets/InputSystem_Actions.inputactions.meta new file mode 100644 index 0000000..6b38b04 --- /dev/null +++ b/client/Assets/InputSystem_Actions.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 052faaac586de48259a63d0c4782560b +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/client/Assets/Plugins.meta b/client/Assets/Plugins.meta new file mode 100644 index 0000000..ff1d3a7 --- /dev/null +++ b/client/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c067b40eaecce844bedb006bff3af60 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Plugins/MessagePack.meta b/client/Assets/Plugins/MessagePack.meta new file mode 100644 index 0000000..907551a --- /dev/null +++ b/client/Assets/Plugins/MessagePack.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 626271fbfaf8d7c4ca2a53ae5bcce942 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Plugins/MessagePack/MessagePack.Annotations.dll b/client/Assets/Plugins/MessagePack/MessagePack.Annotations.dll new file mode 100644 index 0000000000000000000000000000000000000000..dbace923af6e268f2cd0f42738a5c71fd9247eac GIT binary patch literal 18432 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 literal 0 HcmV?d00001 diff --git a/client/Assets/Plugins/MessagePack/MessagePack.dll.meta b/client/Assets/Plugins/MessagePack/MessagePack.dll.meta new file mode 100644 index 0000000..485a5b7 --- /dev/null +++ b/client/Assets/Plugins/MessagePack/MessagePack.dll.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0cb4e8d4676a2f14fbdcc479c6b41bd3 \ No newline at end of file diff --git a/client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll b/client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll new file mode 100644 index 0000000000000000000000000000000000000000..9a0ab6db778f637553e6e793664f3b38dfbfc47f GIT binary patch literal 31392 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 I4%|WhFItklCIA2c literal 0 HcmV?d00001 diff --git a/client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll.meta b/client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll.meta new file mode 100644 index 0000000..b4a7e2a --- /dev/null +++ b/client/Assets/Plugins/MessagePack/Microsoft.NET.StringTools.dll.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d878e96c67e603c46a9a4e0b2887ff3f \ No newline at end of file diff --git a/client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll b/client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll new file mode 100644 index 0000000000000000000000000000000000000000..308228874f4790a0915835637dad30b7750fc7e1 GIT binary patch literal 252680 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 literal 0 HcmV?d00001 diff --git a/client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll.meta b/client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll.meta new file mode 100644 index 0000000..2204132 --- /dev/null +++ b/client/Assets/Plugins/MessagePack/System.Collections.Immutable.dll.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 37936f326682be64788859fe8090f046 \ No newline at end of file diff --git a/client/Assets/Plugins/Vanguard.Shared.meta b/client/Assets/Plugins/Vanguard.Shared.meta new file mode 100644 index 0000000..77f5a14 --- /dev/null +++ b/client/Assets/Plugins/Vanguard.Shared.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7dbc53271ab7234c8607a282eb10f9d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll b/client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll new file mode 100644 index 0000000000000000000000000000000000000000..de5fb590ef1404d79a389eee7c0838df48440fc7 GIT binary patch literal 87552 zcmeFa349e*_AR`tZf?jt4-A1MTmlKRiUJxTVNimIpopkM!=y%$i-3qSm1Z=0{2gS4tI_teNRp>Ma0cuW*bVp;$)fFg^;SXa&%YMQ-u~{vZ1^R3-eKgnW-u z1NqkZnW$j?njA@kx#V<5CRuG?K1=+nGdc-;OdwtV1+x|{0Ds{K)E7Rs)zsUDL9XjR zZ~nX)5Lh?VQ4&GM<1_GAh27PE-mKYC1ZrIcb!Hz-+9hs8AQ{c8wO{e4b#o;wGp`Zp z_?Ad~N`~wcbaTsdL{fU6n_VjYnLjC)iBe>&_E)LX)k*k5VEa6 z!{(wSmJ4=`mxu-up?f`n1_X4pC(sDg8g=pQ^h%B-K4G3MWKqHW}n|07YWU&=!Kq#>S4O@5h#_C>bV`v~zcPr3< z5U~Ocn~Qp5xnSb+`jG|_m05uXgq~KQVRKOu%cYl%p@Bp=%Dil8*hETVi7IRi4J7Jq z1sV|gSb>JkMZK|H`q~&8NYu{?G$8c10*%0a7+@VV0*-;!K?7OrX9XG%_O}9!K+*%O zgGRtH$U0~sivz7dBM^CzbZVz zY$7GGM3pv%1`-`=1sXPyl31c)HiiZg4YvXfn@CA4QI(CMfkf3-pkWg!i6t6gV`w1J zNGs5=iIl_=jj}N`0{ddLbuVUW352L=AvFd z7w_DIx?yfi(X+%6HVq93>0b#rqXe=~SyM`N61Ksk6&3Wi38%_i1Cs=_7 zgo#$5Ve75ov0RR}F*K0q7%R{~i)?w5tb+z3kF^4gK;&fWpb>B!XB{+bg_OjKnPOvT zpqS&WKm)=FR-gglL@UsMFx3h)AkP}FCqY^FT3eo#qJm1FBu=y(4HFklGrGZMFZ3P-Ov3mW) zix=7$8c1}G6=Ww8@ zYGY{Zre4cz01f1Nz7=T1QY>z;4jKVRqjk^-I4-ab8Ue?0>!5)`S6G2YEHb_uJ1@Ij z<4)>)S#Q0N*wV?7gz}CU1`X72F1!q50v8zbJ3+g(@UlFzWu29kchR^PO*!R7V7+^~ zp@j0TYIR=rl6p|EBhp7dUGo_-p9%UYk~=UYlLh&TWV@@66Y0_~bsosv`Q4Dud2abc z48a`d=ln9nbSMuaRZ8OJ^(Dw%_Uk?`9g(1`wf@v-mBUP#e-u)lmk3W6l!1=X%eL%H zDKCW+g%|z2>G$i&JdL#He8tpEyqYDJC!%I$UIWs4&chfqnWuh`o;L3`(4_ej zv_c(vi<5=QNR9MaAn83(@nz)^RB4&^WweJ{XlqIoo)o=q*Ir!wvVQ7y7!3%oSb+wF zKU#qXgg;q<281nEpaJ1kE6{-OniXh3__Gyg*ds!V#1Vn|Y1Ll0F*G2&VFelx-n0S@ z2ya<|286e*Km)=%R-gglT`SOl@E0r4fbgCbXh3-13N#>mUGtw009$5x;L;cr%;0pSxX(15VR3N#>mY6Th>U@p~Ad}x5F zxw>LC|IDVKfh<0^0u4Ksl*AH!VPj|@(U(@B0pagfpkWt%>UHOr>n>0|mf=5aI1Qx# z$_g|fd~F395WcYj4G7;_fd+){tU$xIL^F&P{7)N01Bt%30u2Z|tw0094_2T7;a^su zVaw6*SUEr17#c|QlND${__q~kK=|1TG;Fr&jb;0bjiG@=n4rCZNCT^d3hitqu|$rI zp@BrM6=*;RS%C(G1S`;h5Vish2#Hppp=UBP?{u&Z8i-7?0u2bsR-geP#R@baq*{Rn zgfuJAfRJtl8W1w9Km$Ui6=*=nvH}eV*;b$dA;$_dAYgIh^)3wvc~+nSA>Rr#AQV`E z282Q@(16g<3N$`7vz7K1j$5s)JHNN?M6IS-)M`?9ejimek?HK*fsPboz6;^}x#c9B zPs{rvqWl+}&QcQlrY0^p8CpX>-7h?!--bY(-m{l=(L8b_+8?f=S3yl2eFE|cV@t)B zjja${S8Ne%7*a9-+kw~)!B&m!aBN3nI|keF*ie+r!gdC>v#_0mZ7H_p*j8b?0^7CN zevNG%wmY!hgY7|Vk7IiV+aIvKgzZ&qZ((~M+cs>N%LLPh;II}PPJ&@9=q|yo7wj0p z@<@uYm0|0HZ9i;-u^ozSB(@rCSais-*iOVY4cn>M&crq!+qu}z$F>sNrP!{*c0IP6 zu&u||jO{*b4`X{0+eU29V|xYLpRv7z?L%yT#r7GtudscO?cdl!SllFI%fyzCtqZmx zMS%I}(Ujiv2NL%q?oT{`IEaWIN6dB?tN!_aBYsN!g7^>OH^hGuzbF2Sm`Fs~NSj7P z9bo4WQ5V=9iKr9oZp2bz4`MH3Z(=_pPO^wRfOrsbD6x__oH&9wnmC4d1aUlZB5@M& zIN}M!T4Eh>2JsYPJ#jWMN}NYLo4AO$n7EACNL)d@hU zcpLFf;%|ue5`Rm4i1;Y+3F7aFEyPX4=ZKq$FBAVne2w@9@onN?h#wHQD(2xojPu-q z2{I)S2L6gqn12ukL)n&kdz=?U2UEb&=Nl`Fj9?DW)z%OjMCF6I4>Ecmr-z5GD^8o`uIwPQE*B#F};ma<12lP z(%Dz~8YRnD`Wa=6uk<&{Fkcy9lq6pnXq2J8vY%0K4QT4KzfqEX!FkpwM;HZXVWW&Q3eLhtInpRN7aL`~QE*;1%27tadE6)yjB<#t zOf*VIUpd++g}!o(Q80O%d?pzs!&iArG2l?Gh}>Kz~q zS-oKp|EcF5>~sDl^y?5R$3RNy9ggCtNC|Z+$1X|=5OP~FcLgg4XDbf27)TbgT(H4(UkrMr_ig^gZSWAgMs4Ov5j;Smq zxo}E)a)r7m)X*rp?Hli z$8@6I@f#}0OS^!5uoj;*Do=*QHN8o*Pc+(A5Kpx zi|@k=+Uvu2cNst(ZO4s9R&fW<;SjvO((APZS%Nm8Ci~VGxX58&9F*KQF}bjRR-cG% z>S0=C9Si0d|Tnp^eT%vmo!yIx=K)=@7`k0f>z_^abF?9rIV67MKFzNGR zd+38U=b#&r81u`Jr_qq)(a4dvNN~QCQfyc{2u8XfbKU|u6`yBg8=~XG9()%gi#|&& zyF^*kven9_S$4UyV=TK;*=R8K|JBL{Ti+UG6_#D6Ob>6<;&D3F-=JdL;XVA2Uw--J zKR&{%bO7lI9$ks^vTtJ!@oewB<{cAQVeFw_?byOec<;vq76XA}0*8Izm_Tp%?b`b> z5je)p=<_CDI};Y6m;BXAHxM?px1D>j^4ddt+KiJDB-QhfnR^Q{_r}k*U3GWpIfRoK z?p67XFiVnsoqOY&fqjA{l~-xor0XHHJ%?buxNq&a5s3rs2%JN%(|&Jz4!J?axIwmm zyY1NR6osX$9Z7bM!a8pc^|j*&Cxze~#a`_isErvK?aWbo8XD-+TWpPNpRR+@woh@N zU=MX{Gd9*E@$UPyNh{p8Pj6N6Kj_nT+Hoba;()g8xEey+cHln6zO`cw67RkpS80{o zw&NNV|If4or;_+~Tn3?SJ1{BlTRW~m;@!7nwN|-pJ1$r8|4cg?kyYIOSPr3WJ8)IK zZ|%TIW)JPSK&#xg9V=A)589z~;4+-Y^lz7QcsF|rKi}VC$s;&M|xh zz80TnVC!>^ot#fVTAZTe=kKX1o`4XZjZadhR}y4(%7)qG)0GXhY^JjAmYt%^KMS0u zEN+hspRn(z=(Z<@+!L=5G8C>>!hC4|6Hnwg?+T9-`zt&2(9a}f47}t{a&jb5* zeSHgZWsCgl>vd4PCY59Pt*bkHI|JoNuI^&j*SM>)Z|%Gd$+eyBUSBsMXqW5jTUFG4 zFclfEi>?hS#`iiyUf*tfbO>k6T|KN_1blPKk+MGL|L2BJUrzMY0 zK)T>PAY2GapTq2t^%w$oxtf1M#kMzxo>Ebd!3ny@u&{5t$JVsBM&74;L;iSeLGE7P zpeKG0!k#Ek^~UbA^iB-)&04gn^S<`Yb4cE1>|)$|_s52`nZ7n6mKO|c^d@CGc1=Z& z)}Hu-ivPjby=#|2;$3vw6T$1q&rCm@zfVKmy6kJ)-b7+;TleIC`E8o=#;)~zx4k_U zsAtH(^YSt>;l99r`J=VH<83zTi6!YC<_~+kZ9yVE-UcM~O-$08Ek(FeX6L@5_0vmu zvOg&^y=soZSN43}yxaNU)%g19e1MhiUh4N}Q$KSJ&$_&}YhBt|AMdu`p0{;Dzin1q zPwugP>$cZ=y=3aOYrnmqwbOp%IrT+l``mB(?AHnC7yXM3%TSS>wO+PUs_t&JbwYx@ zC1Af6uwPf(tXtl+I@ci~!Hl8LT%t|vHO5$E7M+JU!J2Z zt{2+74~X5cZ|jl$k!}3BZx9r7?o0FL^n<7z(`HUD-D8{EobQGpd7C*s3-v40q2k}~ z$MSX8^~ixL>YQ#WGD+w3!77@LF!veSU61V3Xc!wD4f~X$XD~%O*Q;1cnKLAABNf08T-`o!eGmHJG*Z{ zv1YZWcM(fNS@=#((b8T5pNsuORzl0GS!atgi9MpHXy9P2lr&J@>Vp`y;Wo z^HA?QqQXAC+pMkzAYhlvyZuy*Z`CvHExC3(w9ZA>*nw`xRG9d41BwQ_2#Z40*kG-Bck1L{_Y;eIa)XsS#ej`7M=vb zw9wwSz#+YF$8jCf?lR|dO@RA6yEfxw72^kXyK}y-6ApFIS@_$fMa4N>Klz6)9tt(> zKr8>E1J0~E-&fl#mhjZ5Z*R4BSvk&Kdj8u6C9Gp0rK}uNvr2fx6cTodu3!JADTaCW zj#z3;z8Z=rQ4xv(gVdO#Rr-Pw_8z1hPx?D03=BxQo`lC&kq|ouQl2M$LkXP-Dc_U6 zqlCSsHTfQdH7P4E@Z3MpjUG-ZFZ7fjsnkKi{^Z!r#RYwzeciYJMsn=iAHe7V@G2)&0Oh@YO*al<6_wRzceKO>9K%0s1 zU6eLtit6S{?mZO__XLip4^%iPAhfDb77#vCAy0)wyGN&?_0jFB|AfjwH@kJZ>L07V zU3GI6^oa_8_5_yssS3aMQkuOyLsNdP`dyxGcJ)lvzf}EdPdEE}mg@h2jxQw>?H)fx z#jjO74WilSr>gj^ipM}Sd;K&O|EZ$h@f@ver!sy1#O(Qc75}B8u1C$zKV8M2RE#^` zhVTD#`(H}l6+6yim+z&>#~wiuYhzI9Ts|AE?YqY@WzQ?vO`OZ)u0z?y7#x91i5|*K zjm`Yt&h>ksvS#sO?um5tjsT1W99UCZ*?VqXl{V;kG-i|3GB_eGogl6oG+)mh-aWUxGRh+}F0h zgyg$F$G)JI)|Qxp=4eY^R589K?Ve-z>ADKjZtRZ4zFxnNw}aXr7dT~BUvhM9{X zcxwx9F48fu|Gu^pGyNXMK(1C<+hK~~2@mIvw(V$l4Cpcc3+khPvH9Ojsl^%gwjNH~ zUYquh326PJ8$3o7HbI1D|?uK+ssWDBCW2IW+74X zXzT{Ald#9))=7HmX~1>^wtKMYqGAiSzhe6rwoIfR(h-2OJkN_~Alo6jdTKL9&s6<8 zq_BZe70fDzDbG^j&l(Z`h|+x3pY(LI2hKv1qi3tW-qX!)n5X(Vs$aTmKIcO3v#?F( zi&gX=ty-!~S21RX;W|AfdcKPK1ZYrfR8hY(3X02B)QfzscUCHkJ1U2-*~=+Bj;%(Tz%?lAQx&Ms-mgIeYn0f63aepn%wp^fwRY^>f8bv0b%?3g zuIK(CT08&N?7_-R-~A8PQ)ZIH_%w&Rcbw>;K4_11ZF8J-M&iJFDmd?U3e<96)>G}w zyBA{W<7{9j_KP9d3wV2dJ9uB~d#JoFTdMiT8YkJ3%v0# z1${hZkM*_VbQlr^#wq6kTsix-+50%%Q=i(aj33#LdVPs8`)?3lUVGy}&t*gRSjRTw z04JJYpL);k1utcO(q8nxG5%TEf6%A}W}&a;VqJ3=n&{ zpQScd5^?L-gZH(~IY_PJD6oFT^56ez3g4?I+Bz*j8PQb4b?M z^isC6_+Dyv{pzi?MxYM*x63)-zX$v`yQ9%tJFKm5Hqq|;3_>`1w$~|oY+Z}I4%yc} z`2wl6PukoA)-^rvjbX8v68!{0u`kj;Ri+1>slY-F`CP^Lrnh@<4EbwaaS6`9UE1z{ zi}@BZj+;u}f#9!p{$jo8i1*djbD-Qeu{u8RKiQtv6#=cPD`K2WC5OR=|GmH9{BN6O+l zcKCwWmz(YVmIq^)e|zX#fBE<&O7J`MA0X_+vT}?89baG5eGdB49-iL@6Z}&Xn4aEg z6Z2VO>;rvJeBah@SbedduR)?%KkMPC{ftB0e{QW$eVZfl??@VZO6@CU;}Bx1zeq>t zH!8M0lCgXX^!oS8{MF76%Hn(dl)d!&ZkHH>8Nv3BYi*80@16~Y>mK^Yo>LN#YM1*9 z94C&>HvX63A!Vk<|Ir#FwjK)G3SzH!uy$-cG<>ghO-7>K*ELaV=hrn!+5b*mp{hOBwat0(Vf*Y|RCunI>mI@#Z1>b^a_W$8gVjbN5>0iSy+i+T3Q}o{HqU zZ`-{uF&#m>+?|@KqMqW?ydgG8#{Px0qq?8SZSuLqD+&vo&0a2C3JH*>JLK)wTM zaK#zFMru}3=ip%X{YFKdgG~#TppMadRMa!yXl3^)(>a&}57+-~`g{1^=3t)R_r9L$ zfj!ASLVxwNwmrL*L-4xatQT}WHELh`5NSB(_Oza2%g~*H?;3k4YkLt>p<>(#sQusX z1}+?8zw7IROl&**1?&OV#u)MD5p@3^#)v%+?T0jbok#j2C^nDuSLR;?4^$RE>9;eF z?DlMmA>+4anYGylOpbEcUfa-sG`pOixJQ<1<@~CiuPnZ*?R@_c=z4R0@}Ic;m93;5 zT$sQ7!DX+558q?G+stP-BeBkBanJU!`oGo+w;e(^sTe}xwBNWA-YU~1U49o<#@58BZkZ++wh*v*?r{L}6KI~|y_66Jve3}F0uuOo1a zyDh_rOqq{Cj(6WAtBykpH}3!i1@jx!Zlo_I&R19%^rgo6I(7{DFf#}8?9?gfOONw) z?i}>t&T1fCmo7nHW}L66DComkB#^Fa*Pt&u&eyG5(1$ztfpo>m#mPZ$ZoD_8I3?)K zi}$7$rv|eG~y&1^cEGzjYpjJgWj&iff2d1 zNM96J+-?2^dWaPiM3?JlVWIcgv7`6dsgw8FxwH4#rHl7jROEej?dpAY>*jsx*fkc$ zsj)C7jfL@NEQ~c{VO$vtW5`$-FUG>yFc!vvv9QmLh5c(R>`P-|zZnbr$XM7P#zNm4 z3;k>?^r^AXf5t*z(OTM7-=yNL%O4Es8)PLrVd(9!@DDb?g)ek;p3*rBFWp;-kD;sJ zwAY(CQhp&cPSvn4f}Pr7G{zyWnfZed-d!07dloj#gmOK$`>}1t_7S!pvFU>*{jeQ| z?PP5Do{BHB!-`q(9kaZL4bSXIhAV;>yGa$cvm6hfcWR=p_LMhA8f#EYR6D9KAH)!01$mPPO6a>VN|S zQyn_bhNG7S99Sl*LnqmA^zwiM3s!aL3>%JK5pYy^4xL`Z(JKQE>@-cGb89$yRltD- zqdIh24M(pIIQn`Hol(P4Tp##df@P(q(8)9$T@!F%@uv=*N5lGiZ9fGTpXw;2jB*Rgx()<($c@CW)!%-}$e8*tVp;KcxdUL=r#B-F;aZA84)N^2XAw^Tbaj@sW z@PcDqz;TG@!0>|O)_|kZbLb2hj;;?l4)q*5`Gun!0*+yxL+8D4^fq;vmmBe3!p%4^ z$HuMSymf!a{;Bi+qA!oW9VyNWzPHF*TczNiV!@%Fhy(l%MD%m>Q}R+1c@&3nbfP=? z`phHoISboTY#0mt?)4A&d>`9)*l<&wud&3JC461wnfSyPj(ip6!}xp!+h4K$8=JmP z60cwArm&&-%!=H+uY^>H!XJBXwAP#+Z2y<=G4ABBAMb(p4}-XR>lk9tB( z_m1EwCOyRCaW@<99l-j^C+M%obnp1pH&8);DyDmfuf7xt`i7Y99lgV0Fnci=`Jr>;}D=?Cw)jXpvBCkzau zdxvfGN$T5Ux_8t@pQ8S9O!p32{TU|Oi`LnEykk~>{|FsNxz)WxHu?k=BgGSp=pCv0b4NsuHllZwMmJF$Xv9OkG4m|NE=Kf@PW?F|lACKC^RRhZ zlK&DPJ=Z1*-lWMtd##WYyjDO<0_&RiYX!6>;ETUjK%)Y__-h5UE#Qm4RzMR2zW8ee zv^3z0zg9ql1HSlch2e3&_-lo#IA8p=LUo+4?X|*)cyF6)g^}^zHrEQH;=OII6-LK< z+gvLg7Vm9yt#Ej}x6QS}n0RlSYlWJ4Z``%Q(r#SC=KOzT4ZE~BwwA>Eam`wCEG&1i zwq!SJNj(R&zn09wVS>3ue_Z@OUQ5~~AjYPyMf5NWN1wytY8@Du>d<2>9DP3Ez^GJ* z9$?|<3jqfPq&oEI3hVDm{j4w+)uD%0IQnA1fnlf)J+8vhmjVuqKy~Or6^>#a^s~a? zQ->Z=;pi&?2gaQ`P-{5;7;s?7sY8#YaP&_B2S%GZP-{501RPj5s6&sSaP-xH;|R~8 z2TwTqTEH>RbLepsj{Z5|z&b&*(nBU3eLdh9?>Y2n2}j=uIF9lhdZ2`(Zw4F_Jck}5 z;pkiH2(EYVR%U&HRp6dyY`udA*VcSBdf@!*jkM@{)C1>dZ=mTn>L@pGe)h&$^aJWYp&_Q8-Z0Z|-4VY%rhB6- z+Dbiee)a~Lelw5w!1>u5W6_VOuZ`v74YBAp>MLTpH^QPQF>rqNMwfnl2hpCNy^$6D zn4&#Dd!s7)H;VTB?2RaW<^jp=`Pmyy`tU{j=jRc}j2+={(((R%&V_^e5A1)yzytQf zyr4s5HgM2#ykCBqNE1Gr`oTVC!Myr8r_R@iDlF;xVr)i^Jw|3@xt0Yja`>?|*dek6 zd~F1L#O&yF4aOfro#Sq~wIVqKZJPGGQ}*|iE@3Grn&?%8B&$=b6$oF%2jLx zCdz5h6Y<`D#fb$Pc~+rfR21(is6al|g&KJXOaBAwb3>kbS1@K{nbxyoKUK~~St;^n zXRXOirGEq73rv)3sGMvK#)51@*l`Un%-c*->OY@U9kR zg!HlmHdiqB-seLh3pDOj*<;zxh#D& zj!{i_E7=&im;0}Pd+Z2#m@LJxM;O^$SX{6cXR=4VT*{RlB`su&9A!t#^JLxflueSC z$zCU$jAx;=ypMC$cbvRVb`$b!!do-nBKrn;Hpxk{oosGTWhcwu$h!AZHeJ3X8=SA~ zG~AZcJabV(lbnvxscbXZYzdPMiKuT5-b$(CbE&H%avuIo3ypjQdA`1U&tDylI$?1Yn0(+*VA`_j366G-*Wu$PTTh$eJf=w*=dFy;WWb66TN#R-m^Lm zKHQ?jo?eA_oPorXQ1sgaKw_Aprsn3nfxsh0O5 zeOWRCC0vG|4IV{b8TQeUU=vx-XE7p=#Mn8W>~W0bBQaV|C;KOTAIU{z3+Veyens{H zeP75eWcSeb54oM}k7WOp2gz2F{U}e9tta~h|K5o9*-$dad6~>1>)^cO=xM4D+mZOU zP=0psyt)ctoyoG~j84kBIKMbyjI$Fmm0^6i_~jUHB;N$)y6Q{8$xeM98-Tf3S;!5e z^oxo;mOyrYH;;87n_KF!6f%7xQq!fAtuc{VWG5GSzFe~LCeH%0>=Mt{iEOCx6_K57 z(iM|kYf9)&mSRdTBfHe(QcgC+us&pCOkMhuy=ZdTkL*cP-XOBKOuE5je>1*=$qqDi zIh5?UE?%vx$bK-skz_aGnoE1)FtXnpRznst>Bf=0!F^QZ97VRslzueXXD0GkvZsx2 z3R!2!=F7wF-nbH@M zWtzxy$vT)^mXQ6?M4nGpX4-H8*%78LE6J`f>|(MzP2{CyUm12eS*h9YSCPGDYPN># z6;t~4WcQnz{fex{q`QgiaN}ztd)kz~o-EO@+sUSzHZ+sHXMA^)^)sd4N4Ctc2gt55 z>|wGIhCN31h+$8X-D~#I(`0`)Y$Mq$Q_p9~TvPh9JIv_mJcqKhJLTo)?Izr0wa! zQVPPcd`c6v+;`e7Jy?@n%Y7>7r#A0Yxosw^?jWz!}i+lp*OmMBPuv@yfNcN{>)L~#RvCt z3fp*Hx|ZVE>q6RUji210$HL@>PkJaOW-1;@`y}F_#M6ntMAZ8ka6fr3r6y%^!#|-X zCLZpnKD{6v%DWkg2liIHIaBc&>Mv%g{VcpTzC3#(l#!W=U*{?w*-3F)KgIK)$0Bo} zEX-Ftu(#s78H(pau`wO{(h=w3o7B=)>E;2NU?J! zl`O^aRIYc`ejs1*TEu&E)P6E4^+fDDZ?Bns%@Nx>N%!e;9!Il@qj;qBCVKn&OpdYB zd33KNo)$hCsg{N7fn8GP0N?7M%0}YPoNc-#sxl=>@sMQ27g%C8XUO0P?9cdz6Lmzb zVa)NI$GnmGONyrT#^hZcbhLZN`@QLEPfA??Z~P3PGvssWlYuuUYwO+*%znWh@aBr? zJa&Sk+UuX-Ofo5T8S?px{qq!$?(xJ^iEr|l^^Q<)PVkPz57~-8GgT7NJ0pxpnuy#M zv8CP&c4q3uP>xN!8hA+Z^}rj#YgNfu2keo2JMgQ(%y41qZ&D6$UXh1W4v@vAkGT6u zdB-QP7=5X56Y#^rSL5snIG>7K*l|=O5$kh3yL#*$ zxsB{&r@6~^MBYtyRmZWBFToxoTVWzw$SzD8+Hn?s-|&KA)g6xod)2TL%fC)>Lfu#>X? zof4KJ!%oW%rG}-p7lF;32Q7KBulyt-T!XYRR4y`1M{B8EX_&UJyWC)ywy(Ra^B7Br$V0}bB}C*Y!?c8m{J}8I zrH8y?nC8+$-t-uADU%(>r@55LSB7aWW%4h>G?$*@;vT&AndZ_{kS&>x$X=3bn2yL^ zQsgm~P%ZuGnCdsdk!;SKe^4Y zKjl}3`pZ3ry@Ojl{pAslu`UDTY2(up2FP=UX$b@5Pl3pR@>U>npnMpJ94Ma{rXyrO z`G;XTLiUp%JjU{H-@DA)4_e;-l5Cikx4+~Vru**z>1>$pzXK%VG3GKz4l+K?WsnRr zOmi6|hZ}Zizm(JiC7@y{Hkjytsb2&(s7^Za@EGrDtx(t@f zJjPsxNR#ntE<@x_!!(y6@>|0+m!a~wVVcWO`Mt-O%fa%7@o6px%ln3DE(goUhG{N` z$d`s`E{DkX9%C+*lF~EQyOok-nC4O`T@2G)4wZ;un#-Zm*JI3Om<%^Qt;;Yu+%U~$ zm`pHCa~UpE4AWeO%QTNMmnvCce8+aG3{}Yz!|FOYQY9+`k=1gU@o9P0a;;%nUbWn8 zn3gv}ZZ}NJ8zJ`@c4((AsUzi4!)iK}g0*;zbr~gpHa;z3l>EgoEn$>wH%vvd;ZhpMD!j;~w+bplhs%D3eTMH3 z50`@td!=Ve>KGYe*xNm`@N(!Q4BL>Al3F9j81_&`7M=*1YS=WaSJrp?>tgFYE%h6J1e45MA($6r>4xe4n>l{0 zN`YY~^c;~|E8Ps6)pHzJFORVgO$=QbK{+lMt4AUN*E*Bc6Jvd#iFlW z$z!bbOnK1wBKb2@XUda?^~*mU>{-LKgjw>kVOqj0dBbDO$uU07hTXH#&W5bK^|i+r%R>r zti6!*xi}ufE{VrQCTUeXUMUJotTAhj^rf6p3EPeFk4PB><{_P?rez~raf_{ zoMV{w#F^6IF_u0@t|9a0$T{+B6Pa4JEOm~oH>^w9MPPRa(naN&IQG1W)cHCpe=!`dPh@2~*#j$S!>E_Chfpl{P%P{<1n565Mvn0(hUB8?q`5t2%=Hc6RFH*0o=E*?A z^tx)E3^h!ztL96!VR~IPU&eZjxh#;QN@IbXVVGX$oGtSW)9akG zWr<;W^|DY_7`70;g>sq4Sl&6Z*7&r~&XEmjJcdE zuNt5B(z)`EVcJXQ%1437^W@Vw_O*%BRr7iBFT-@ze4b!g%bwR&^I|+d;4xh_FP1!y zvGgTUWPI;pHeDh;4BL*`bcyr}L@t#Bjql}((FsfCP{ZD;Xm*#%VS&hHGT!(!&t)>% zFwJwBoE(TeUrsf?l}=^oe2E&i2478|FN+M*9&C^X!?Xt*WR=I*hDNz6j@=l?){$M8 zl-J{`)JD0J%)5)zC@pd96F*%Ro`U$wXJ5M)$d6>#C9No%7+N7No~RPJPTtP^Rq6`- zBEhm-Q&&okVF&iQEA>L@Y*MoOMhUuugOinkf5wrf~GS9HpnDsB0#fCjxI6C19S#DTM zVY7RMtTt=_R&rO$8p967O72Rz$*?Z)T_v{}RtDcya<5^vxFWh*9x-eVu86LdXABz& z-!<~QVH4oHMz(m2`)`eGGd>+JYveP-biAyQZw-4D^XIklla0jud98#8XrEn}v>exJ z*GalzSK(UiIw>&h7Wl50Zid|h-}TbVuop7kOuaz{81`z$Rjs%_n9i-Y$?1ma+OGQc*cbU(cp$gPW6b4V8DM;RwREox zHcYRU?v*OTKB`Dby-&s%_C-aO+$R$aTTzyrcE22N*p+2@VADOu5`HTU#-}CxRxUP7 zOZcr^Wth$y56F#%>8$a9+-jKK#d%QfGEDE{JSYzumfpK0?IC&6uui>uf<0^45#2{8 zJS;C8c4GHt_hEU%un#jULyyS&hJAyVnLQ#OdyKVyRDLi%tu>x8!|!(VnATc9Dk+BP zJouR87^d^!W75SiZPDWrF-%+Zxb!tluVJ5%L5Ary>=SaRVXLv~dQwIkb|Y3@Ps(_Y zv1U)nG~?5G=_#oihH1@yC(8}fnmsL-8m2XSTGkk*HG4+Z8m2XS zMsD*MOK*|Kj8FTeMOqBgerb`-hOH>;m$p$}HSEf=Az<%%jJf#;w8Douva@)hF+FC3~R+}FkhDY z4byK_UXjNP({EH>k&T9ZUN|c4kFwdY?+V9)y=K^Ln6v&Q?;7?H=Bz)-HpBET&KCL1 zFujYjMZPuc-(?fiUX`B=OYS)pER0{N>Cy3I)@f<4NxEUrWz7LAFznDyXQ%yHx*1l} zX)#zY!_LUOAnkP-VA#UUi@}B%HnHCoX>UlCVYU6P1*2Xwj>>;%JZ z!Jd9grW^JU_VinFhGBY*_qNP8Ot10YmL-M_>Diq2j;t`OrsqRomwAk%;9Yrv%v%$^ zE8mh`Bh6h}(%zLj@$(qFUiyoq4QIbF-CraxjupkR9%LUoJ9D2)`-|wWRzyB_+`QM) zK9KyXST3znLZ*@Lr?tu=!`!?bY1^cvIu`j?DJRp&Z`1xNHyGyTN%|);b3`oiQ<+Vs zk*VpQ$_B&Syu$P^r0>XBY47`Z+ts*Z%Ay?Qac(fo&3hp|-}xyJS?DB;^~&3s`&xRTQ)!r+_d$AR z=UFnZ^djeFKXONUk&|$Qt><^?#m;InFS68GV|+VvC8N}N*^f-k=;2Hn7prGaXDXT2 zGe4uJv&JwtuOy?wDLOJ1*~jTYrjflf`Z)I+=H?xg(ck&)_*mpX=W#NPtj-wd{KGIe z@5qb;oJB{)A`f&L$TV_F#(~b;hPin&Gln<~6Jn7EI~S8_WHjSo=T5`iyu}%ZI%yMQ zk;9!lGL5`2W4N=(FgNe&j1kWMN5>*ZIhAA@c~izHXN_TQUUSCbPUSJN$Qox9nMOX8 zQRB=t%*|`b80TycM2>ep_ak4*81HnPq`Bx({8q+9=SnhfA06Y|V0=4sKgu}9dCZUe zGGnq+bZo5jDNYYEE&Yd#Db57L+`Mq+iOvgw$XaKMADNX|>kOG}OE1c-b8w>(e_rX+ zofI<7vsdPHr>kLZ-T|4joI!!eQ=Ljba#-f6&H_KOCi8R$Hz@r)XFFMBn&&Z@vz^ln zbMsEhj5=Az$0E;iI+AJRX_;p^eGGH+7Gy4PMg$@kI%ECF^D`GZwSMHKnddqS0+EZI zC4S^}nTwr={K$2g%bdy+Vx>1YqsX-M-()s8#~J44J({`PnG=Xy=`8dkf1kP1xxtV8 zW9G%qPl3owoP-m#1kLlE%uAdehPip$GcR*4Ci8m!3g=2c^2^LCoK`>bhs>*;#;LJ- zu5nh8X`Z31HO>o$xp|pc*E`46#v*TYPA1dH&RI7)4TiaSWm#*T?SaUfozMNq0a-UY zX(xHLcJmI&TIb9q^Xj?YS!8@Wa}Uc}@4VngPRzR9sXsYZ`kl^MWLo-(S$8^j8s_Gm zlJy&BU|lTo9%l%dM$XN;$5}B=eR^~($-3WJKO+|Tfb$zNjl3x90q1SQ+`MbD9(E?o zj72``Od-?Ao3kEuRv6~y-Ieu(vojF+lq0je@^JF{ML z?(-uPvj6Bj7l_>AZ1E#Av$r_qr`bF^XaCvRLgwZ9hV!=Z?ab|w{f3iOZzBg}zwO*W z=0(2iG#TH{+@aa;I(MILBS&Yy@6^v$=0$$!oJFSnIU)N)=Ssueys6nAIo}2%w>v-i zk*8*FcgoMSdCt%No6|(*<+;PT)A)AgF3aBGyzWO{lKr_eW=^d1FP#ZwTKcuwUpf~X z=H@kJf8}IFW0BuD9mzEEuIz7|A%?kmk7WPTSsRGl>1^;LH)ij2-t!}0$^OxqIX9N) zzn$4+n&;cu|8}+*hNC!J+)K`iMY`@9GL8Iuw(D*;%+32TJM6BU7mMuRUP-2ri8&qI zg!$^zF`tu@;%+7LdMVBQ-1v6pcFjq1XD_gk6*-yiac9T!%yv&E(>w>|WV@>kbMvZl z^4x@lvB&~9jZ7nt$SH7#80O|3m($6;KM>i)eaw%Xp3}wM?nlna>E=#3CzfZ4TSumO zo|{wR&NmDztDJ~?Ng%S!z1okwGN;Ua*^m5nPPtpVD3)h$_cSui^R}GcZi``V-u*fK z+|$mDMGkQ1l4;}1Y`(w^9_iaBiF}K>CuryZsNOuaEmY$V6 z(!J6!H?Ju7Ft_8fSmYSDgiIrQ<&JTu80O~fpL>Mc8i+j7{lt%~%stZm%8wkAJHh=S z5P7ugobR;(=i=O>-4w&zypwZ}b#utP79Hny_9IWvJvp`@V{YCjx%1s;FOBVov)v7s+sLnT z&vuipvXMXME^_tPRjs-I#sBue|9^Yn)GTegqARmHsog!>q8=-1>ucq_KhL%?s{cQ6 z1lh9wdu;yS>H&Qk!I3{=Jh+@8LwxQH`<;qD1NUF=e|zJIC^;3ssykI`@$Q-wY_(F4Uz642^K|^K>vVjcfnQjifzR3a zb<=Eoo{8TXor%vm_{Gm0d`6`wwpy8s-@VMm=UMp8$yxZEhhKQi!{>bbx?(;)7vPr- z3-Eb1epPTbJ{RJN{)PBF2k+oI2cL^%EVf!aTR0wDEuIxT8e1)%3!IFt7Ek@1fUOqq zr#T5*EuPq$j;$8YwC2Drlaey)#CZKUtz1ovut?&37?naADh1%pI6`s zp)2rtC7#^55}$bX3|lQyKY*wIDqmx(#WPX=#8!*vpZ6cAeYtd50uAci{6*ypiZmd^Y1fT+R5r zOLCmM@cA1laDIc&yYXh3yYYFCbaU>(=e^S1xfh@J;mtz#;q!j!?c9&g-{NgTzs2VR zvcK~HJ|DyzgdW7_Lvpb55I!H4Va~(&d<1U@dIX=3;`QZ^;`1@Q73eX1K8`o?JdV#~ z85Pmr9qKPcor}pV@Y$k3fL8IfEyLL)%^d$+6lL&W2qjDB0(vm8~?+)EtO{+G^2~|AmeR?g8=a$^TG$KwO%J`y z{9h-&N8C>QoLDc-SvQ9gLRzb|(CfJ^p}dgRp@`Un*q1nnh~K)vJBpYF#IH+3*SKj3 z8^y)j+BVCTrFpP_!LuV9p6*~3?fz%zop)nIL@;fzlJ!DIEmPU@kL%* zMt)ALq<0kc6;z(3vV`^m;#A@|#>}Q&#F#wVX~fMuUhZaFdazH{5*H9>vTrA`e+CgN ziQiK1OC0Cfj9)_>N1R0L!T2ICEh9fCR?<6)I-Zxt9)Fg~650!hQ;FjkGn+QvjfKcO z+G)huUWkxB+ljNi(uq%bHtRNt zHJM2zfjEfDAljpdtBDU0Unbs7+`z~l#Gi=UiAj>@UXh$69o;p+BKJmMiF-4!hr1qF z?%oOPOC0Fl1ACDB0I<@16gbL#3OI&2jB_`_p5Q(QoJ8*w_a)d<-7UbGj698zvl%&; zkqa2Ph>;D9S;3f#8MB%(S2E@Xde_psf%cuW?`GuvjC_cZk1@BWSZ<5^21o)^-d=@`HksIlc_XND3*I#nwV_+8v=l91i zr89tiWHRsoIRkizECP;{?|?^OUhj`zuc`M$;tV;cU?f&+S0sj}Sj0cIl$t@x(^r z6T~lxy^7RZOT3c!e9;cJ#c{N+LQZ#CR1k7NU`d zB6U=z5ob`ZXM6*dM&fens~F!zWgT%nOJC2@*E6OWG2#4;^lqYe6TO@0-OQX@>D@}) zMtui!7FS#35JN88<+5Ea+vRG`rSwLqR6xm%R8grWj-*}#9qpnrjW~n3&0uab7*o&O z8t82#E@#Yg#w=&dD(2rr?>gdo#;j+|dd4)ftc~<;qIVO$o9NxlQd;TVO5DbnZH(E* zm>n!dLTo!R6k>Zr+KLh?rNjvJ3h3edDk{~)k<@FT=SHScnL(wVIW$mdBrd1Eia9h< zSw~zS(%xPl(%xRrm}cg-k={-8ZlZS+y_=bHE4^EZ+ZeNrG20lk1NQ8K9V|-{*g9e; zfqOQAdp3bBP0*T`&|6B3Febv72xBS`QxvJ9x0*PTF(Vl>k})-i3Fl9PGP__JV`eaB z24iM0rk-Ur(A!8{PJI>gZ=$k}xSna(GwpiDG&5}ry&H*}7_*5nn;5g1`LxozmAEZo zvHZJ8u}@dU6Nsybj}W(Y-GNl$dgb(DoWYnGjG4ihdgjwWZzFLz^;JyU zL}eXuJ@sbBw@}$g+{8RLG0#nm+03-9^ll|?OI$3M6e~VS{F+!?qRIr~QsQ024~Xfd z>OF*bCh->Ho5Zy4>K#d(N4$&pZucFmq0>S8Hq?Q=+JU{=fxX&+V~O5UVuX4Hbo3{c zYT`(y9m%vK8B@cwb@Wan&Y)h;v<*}miOZRGInyp@%qpgBqIVr}J@sa$ZK1M}xQY5^ z#&4yvjmi#2N)pEmF_gsCC9!o$Y+VvtM{g-HLcM}|6_sk@Na{7vaWVNa_Xy?PZO1O#P!shna@Tlo2YDN4y{zS61SnYvkSJdw%Zu9gSkmETSN>cvlYo& zs}d@u#0d2Y=r}u2sV0t0)*cv{tUXWzZ&{>{`ZQual-x)I?MC7%=Ddz}GjnU9y^*+? z@vXGC5_d3OQdmP`ateExb}6v}3Pw(fwyugwHL-?~b=2#qOe4;KvZ!E2iq^TFF^$xh zQ(sPf74;_S>xk>=T~F`&6z!#EmfJ$_M&c&MY+}qN#%xARIKP$Nt;B7N*~XY{jM;&h zvWVcf=2)K)LwJJ_)?Ij;6y~B-?h*Xnw11?8-cn+OF%iZ@7*m0m!I3I@tBE5SGmE8oX6>%LGKKDXV6jjA@|VNL&RaoZm!y9kCfoS!5&a&CH>d_EzE!Dw4sP5R)^sCZ)71 zV51JStBE!A*3q6utY=IE?MC7%#x&7hM{H(H3+;`>%}_9sX>TR&U@9k5Ym%I)dn7qi zOD~~PO00l_RW$8tVhxpPwCfq)K)aDSG}2zhm?qlmh|N@5Xm2ELrqW7#D{%)ECyVvT zVohk5603;S#5&?MVm%@;N6~I1u439|AjUA2XR~r}JZ^?k7HOrj19tz2WNTRo+3HQs z){$01r2=+Uqy|_MsiQIzF_>+jpe!n@VB5Zl=B&h!IF-2fdQdJoCA)X;;9;8H#odY@Cm1*Te1~ zX`sCd_TWe}FgMadWi#xeNGt6fu(4V$V9o`aLkaB)*!?3_v}<7JM(SwS!!C-f0*3RO zfn|}+^tRHwgI+0QZiSkvgmwjN9H+EvU}J4eyB>B~q=EJ-*!?3-w3}fMj%{y!>G&z3T>(2KQboJElSbA+nHiZzr5^T~kp|k0#8prhMw)1^BQ`@hKhi>b zBXKkH*$n;SNGp}C#2wUkK))*Dbk>@b5KD}*hE}M+(>LCZY4?=&CMZ} z5KFu0QC3R3idfx6$A2~LI^r~91F@0VL|jK~A#NnL61Nhih-DE=h^53TVl{CZv4Pk~ zY$C2BZX~u6w-Ti*^CXrKONmv)YGNI68nJ=cNL)v3A#NnL61Nhi8*?U>5KD7!ugjcW&_KJ9*hHm?_Bvtxk2c4a7!b6LB4}g}9Np zl_(|5lUPD5B~}ruiFL$j#71HhaUHRRxRKaO+*+dJd@F4!W&XrcVimEPSVx>jY#=rg zn~3X(EyRt)R^nEobZ5@pwJe8r39*z|O`Jw-AT|=4i0gmVY#_E0r59s} zRm28j6S0*j<*XI4j@U$OA+{2wLSq_;CB13)?v68W6S1TZb0F3c8;DKB7Gf(=`f6ke zv5HtnY#=rfTZpYh>BpRjb;Jf@6S0NZN|gT0nOH@vBR1frvN(chH_>jQ-9l_7$^fP% zRuSun4a6p53$c|b0~t@OBGwTbh)u*+qU^^=VimED*g$L|wh&v1vOnXARm3`C1F?zN zLTn|<0UBRLtRprMn~1GM8N@t^Rm3`C1F?nJN|XZ`NvtB)5gUk2#1>*JQ4V4}v5we4 zY$CQ0TZuB5k;E!u9kGGfLTn|<5JnQKh;_sUViU2IC_@=ZtRglLn}{vMR-zotNMaSS zj@UqKBDN4)i6w{Vbz;dOnyQL+7414=1F?zNLTn{UB}*Yz5$lKz#3o`3v6U!?GM-pP ztUFZ8t)tyQyMcBSv4z-5lwnLutRmJC8;DKB7Gf(=hBF>7QAWFHSJAGbT}Qi)b_4AO z+WNj`k(rVh>K(d1^ib&Fgi{jEN?4L`QNk4oHzYikuqolCgf|nmChSP~HsP0qQK|+gbs`US9|9lCs$P^`1@X0(wzj7bSF_V25cli zkPtdaC+R?dbh2+~4sh8;uVHAu`MF^|LvZbdC{r)dePhmbmD`ZzDt&xxY}P8)6J z%+ST0GI|~7MTX3c-1YbtP9?pAuZDe)Z-srFF9m**SpJ+?KF4?2_lM8X&t~eg$LVTQNizDR;63tjsB8~?|(Z>eB+eUm2!c?IREy=ot02m zs_#QFp6e91^mwR`%&o@WqwzlJ9WVBHN-Q3a_oHWsw67?9#hGVR((_Ht|`P#VdsKr)NlvN9GDVq_tMk(zrwM zp=DjrZ&3UnmPx2P=1I*SIZdF&|Kybt)=Ild!}{llZtzw$r6d@U3!?OvrH zJYxeC8>3Ctcjj$|VrAN}?`ju07cANav=ke!l^MssGjBIMd*@4fzOkqp`>Rji1I6au zLRd&;N*u3AiRKnU^Kfg%I)3&|m&l3FJ)8Ag9 z*nHW(aPn*41AXsnBzM1=r+Lv{A1{IJi={PwL~AErZjqd7TfO)6JK%gkQ~rdupR~d$ zg{6fOi){n8)!DYO^0gB0`!&?lCkbwK&Iu=d0{n>P)b^1R&-gTyZ_d9DxP9>h!0YCH z1(-hPzXI1SeiV2_W3g>-`x)O}=%edf(E4+LKKgzJ_=!LtecuW`ALyg+`SvCne-`*c zc;z<#IpD8^SMJ?E5qvQrgLfm(V`MlT zd@b@kZvH+Kd_D5yR_?RF&qu1dZ5o3bTRlFfIj2UR`9(*-=vAnGy8$Q8Ri>x9^>J5@PIfy#>E}r zW5nrk0(ckrHN@$e13;g%zkGj`lfRdN=ZTr`mjHc6%`3r+K%dd`D)335uV;HbJ=yCs zn(l>u9nfb)O@rS6^chu$!QTw@8Ce7H8-YHfE4SlvT6YxuZKTEHgl-1>X42wuI`;rL zYcJrp0DaEm@{LnYR1GSAL)|&7bn3#K)U$O3()6`E#E-p zgzXgghdC$0*H(Z&XKHT%zZ2+lp7zb)9|!u3^wZ#<0{V>jZvnpx=yPuNt>B*l`sTBw zSMK0@JNV~GFW;yF`kaw{2l%}}A1mRV;C~79IRkqu_z@td!AZNvS>bns{|#xEJKf$3 z{vbK<^z5+DJ!>BTe+cMviui-zUjzE)Ve;XbuLFI)eEJdaM}R(OKR*ioO`y-cVIKp3 z4Cr&x_!HpY0{Wcg{1o`Nfxh`JIrGfpK%Xz6ej5DyK)w<~&OFW`e-``)*gBqh0_dA3 z$)Cr$Z-Kt~ zXL9eEmw>+c7xUl2e-D(Oqdo@i0ewzFe+#??=<}72K3EY-p{~a3q-$pKL=k9^f__;3-EJ+zUlIw2VV*F z`I74|!MlOJS?B!v2t&*#|@ydGo;c z1JOlZJNO6?UF7jCToVF)GwLk@9|NL`Jidc#4gk?b-eT}^pl@;>-@r9_pl>F;lfkbA zqL;i^gBOA5CGS-5Ng#U3I}Q90&^L#@)4`{JzPZjj6Z}m;bd+}%_zggGly^4xn}NP5 zd*^^p1ATL&cP{u_fWEoOTM7PFpwE|J`F^gs8R(lo_SS&^2@rkd@$Fo53lM$ftp|S> z&^Nbw=Y!t{^v%1y3&7t4^v!!czNc$$2co;YUhww=(Oq62_#HrWmp1_ZAt1WTqh`!U zfaor7EBKv2beDGt_{V|1`GmI}{F6YR@6hf5|8t;k?(+E3t@$+2H=pqa!9NT1&E4K* z;GYAc$Gj`RzW_v!d3+0(^W#^7|D|^o_AwT^v#dGw}U?o^vzGaKL-B?AiB6Mu&jNk(bMM{Y{|D%sUwH2Ye-7xI=e_rV{}a$Rzw|x;{sPc9zw$l^{%fFbe&c-z z{6(N|e(QY%{C7a~p7&Akmw=~XudK$V=)>aJ%{ZNAjGy4QHg9Hpx|I>}Bk26kp_d;- zcRq&Je-bVIbF}Kem=wKs0X^$A-fO*8wAPK@7TU`d-W#d0aZ2?D?x1Q(E^4tBz{;B>l|6G5af1y9%Z}W%ztNdaAfM4|A zmEv>1uQlCwA&sa4xH}j5}kItOYns4oFyRdDb?Z^SqvZ=EC<~;uAwaBm2tF#+t zt(hnOEznMIjBlIudu-fVT9)6hV+FIGv7cv{XT3NM?y+E#1;v$lS1r}5F07P1_`l`LhO%_dI+&SLad_@yCcLt3b8ptY$N$y zQ^+qbLTrr?%P7Ro2(gMnY>W`QD5U;EY@!g`BILJ9A$CQGMHFIFgjho%wHsm&h1e1y zwor&25%L?P5KAJY-b3t%5GyFeb_lV9LhObR8z`hjg#5NB#9j!ofI@7A5bGzzP6)Ao zLfT8nZ#Y8igAnT{#5M@Ad_wGk5UVGoHHFwcA@)Fs%@bk^gxEVFc0kDQfI`|@$O=iw z_#a~RgpB=qjTZL*fL791^_?=G^TnMqU*LVW|2uw_V_H7X`}4dnGN-f*@JyN0Q&VOi z&z(GH&6qM7o_l#7;(67~DRU~%nLHQq4DejSvy0~no;UCe^W4hw5YLM|zvmfhoiYK> zyLs;8`JTAjrpz@wd7cu_6wiO+c?-|YJn!Ur56=g9KFsqmp8w4AS)O}%?&o=c=gT|~ z^L&HnfAD;V=leWA(_o>{Y|%sie&Jg?$8mFG;Jb9h$stmnCiXMpDt zo?Sdw@VtR%m?y)NpG7m?oG*;0OQoRDmmVGq_N_Eq2dKUr%@Mn%=dmdwSQeUbU)sZFhg)`b}%P*LU}I_jmPluiUhz zt9$**wY{s>tX#daXRX<=JwGy;4K6erb`~-R)1_eR_(V1s4{{P`KGz?V(wS`WLbD^c zJ1Aue!RA7Ke0Lwqe+MPyd-s~la;3s#u@sE-r%P!wI0ZVsqA#D#2AZ4Vii?9>P{<6M zzHA1myMy9XZrF?lrM+8o#Zo#q9Bdsi#iUbwNlvbm$&EVSm{WZFGsWR_VI&xd(M3oj zdW^p@cZ@2$gCsMP3$ih?h;Bd@?(ON)@R&mriE0nJ@#dcvfB8)7g*)?qpEhlY$FRgkPS{jZRW{ zD+b4C>?2fdZ>dBx?+=EvN*Kxv9|%eVhbO4-C@K9x7|=RgRTV4F-4M5B#xvq2$?6>* z4kjYLisRCJX>f94B43EuNK3@z&>gu=`MeT0R2#;H2lnpWMAB#nn=?UnL|dtA7WIA& zD!(aHwQ}oO>T9~5$5nN`M^x_(d@2=K?^mh6dM{UP^&VR*wNURDm3+OAE$({y;FuI} zJ^f;7D$P7?pWZZ?X%uoxI@ds6)cWdU>Kn^vhJ$+grFoP@J-IJG(tx@<7*ErQa-;p} zanyHxu+8b=pg(^ocRc^gCYt%WQK4S!CPoz0XkB}~G(Fycx^paDY(VaxoXBQ|=~4A^ z`o@Cc1I0@2>KV2ccTeUd&4bM z7&P-`V9Q9wH}ki{Ur=b~zd2JVmYR8PO6LxAZ7;W;|%*YgKA9 zU#YWx49qMBN~6%bgW)_iFji{3Y}GUlY%P}hqD6U+Pc+DHU!K?wH}JSJKUpv3@=S23o~q5co^0D}6VF|f zL1C&sOz-}T%pmJL#3r`ZliJ`86>7||Qm?pM{A0G2`p4Y^Icsf815-~$m?z?NDRHX$ zk_;q=yCPH4_Vi)b`E~|{LD3p+3WBM=nf7Ppt3*_V$ps~utc?i1Bd1AKb3d}?G!YfY z4pFtkEDT9D)T*;NuxMo7tG60=>T9vxnGqKb^Uj76BpSj83Wa<@EI(sYzdN{wF0X`v z+_2Ck&Wf32%{UcPOB24NEvRfYq=+lB2rE1lf^ayiP(34j+^!!OiZB}(Y_k#yUnenA zSCAy2Oy!-^al|MW2RhZ4E*uMD4NZ;8p(04kOrLW0!?*?)QgKT~xFuGbHDKsu^w1vpHw95mUE46MlH5R*=L|9CcS}}5!qw4A_ z$OO||fz3(0m?a}j@6kqu%>GFzvNn^+1_fPCkeO)JtAbr7D>fAu`QAS{I-1^}jnQPH zm8A3*i^2H*?9@;O1HKyA>MAXeL;1pis>fwHOo^&93ci`dIRmrab8AlKX8R*S=B!?izIx5AjrXE8OZ+`EHtFdYV^sokvk6svSw zxEk+n42Q#t#r$JJckGuQR}C8FpB_3g8TW`v+G(9?2$sF7jwrY;z2#yau0JTfl(E{i z8f?=PO+s3eHc1rR6fM%?x-jKdo3;h%gS3BEwgN+I&#=mOo%Dxd1>c-akBS$?w3Dfk z3#X`C%NiP^VUCEO#8)#9(>7d76TZrHOgXA9C)DL`g=;Y)eUO&!B8mD`G+|R2bwroy zd^OdAO61#u+-PY`(SC;GG27D=i`AsD+EG(aN7hoZ4$Y`c32pWiv$5$!(H4Z88(Nmg zAtB>)L-kD%wgl;{*~;=D=AR0RCX32iam3QOLhXv2W7ip^@>)z{)aj$rET&~3b4R7= zEK-^X*6qlpeC9z_j3Ci~v}E5Q8q~D%ywCt z8wHVc=vc|LRD)FmVvYq7(7F~97Nb#eO3)##cI0W@N`iVD(YeCss8y z3hh&xzA8r)r(GAX(xp781m@aW8V<$cz-BAR)W-G1Eo3?Gx}wD;q@9gxNQagfiiYx{ zPjVx#n;f6mo}MrVf~lc=S%_(T<_m;DOA97N1Pul~a-7Y@W%sjCR}d z`2&-dg^9G4#aq*4C-OE?4!60Kbyqi!SKq|UUc*)=^U4r&iUgg`tB1ve7R}|ATyZFO zWiD@nRGrf3b?bnR$DH0a{x~64ox%%C!M;SUt^=q@i)mbT5x_>|aG~2Z03|!LGB_pT zu!GXYL3JO6I;NRLMpD%Ts@<0{F*(|a3+9lR3x&kyf^Bs|wKk$#ZLgB+E##_Sy{TOF zi<))C2(5b6TBB8;gauV4S8Spx$(mrQ7plbS&{U;aMj4~3G&_1&O_}ttV;e(5mDveM z&>C)dx&EkHzZ%@8NjqkhXl2$Aquy3!vthLa>xi;aRjg9uEyN`xD(2#3w%U5k&UCS; zn$&t%C183C2O~i(SvtJTGivDrGJmy3b*-0<#B~9-=MUD=uu(9*>cXe9Zn2}9I=j0Q z4HmT_nBs{>tR*{}&Nb6o-@!nXdJ|7uL$yJ~t&{dz4_#Bk(00A0*4rhdiLb5ZXtko6 zXRRi-yMhs!kyq)m9#z@CNqXtbp>K>$t44taS+N>s$1E8}+Fi7Hmh^FD(>uXRdu^zy z1yt)JMoTSClDs=O*ucl8X)_zAwPBb$l=^52wRGEPq7ArYij&%^He{vx@&!8st0@VI zv7tvLV68;kXVbD(mrRJ;pQ|CJW#7X!hMEAbtQ&i}Y&G_jR7>Zo5hz8TjGn~{S@Y9o zmGrUe4oR9822|IUU1X{dWd6sdRViv>7%-XASjGEz7Di>!sKULqqHroCyEbCgl_o`3nAM1} zm{>MqnpNplm-xl@D>PKxE&jHYtU%qp&{*Od7V4KENH`J}+q6)g8j^5X#Sv{?SV=kn zRY<}W+rUtkxI1Q2Q3`g3T&NUXjAYA5M{cuXm^EIYz9a^>3!>5^JfgD+QlSejbSup6 za;Rs5ARKnIig6?e!jaqyQ7JVf?Q(;hH&JEBe1_Pq7%`q=L=jiFbrKzB>CdD`a~w^` z3>S?=Ao;T^rnvQ}#84?)A;1vfz59y+2FSL2u^5pgB2`w>_iVAmoHiNJ7L4Wylicmd zM9GPk4(ytZEZ!ClvTt5=%UxuQBRx1-;nmeESt=o+!xMH@U}qr+Glwlv;*+ICx2>ZQ z#@*2pjx3TOFf&}p7xQ6><2@rmFB9^qVy0L%_DeO%v>-AsI)de<#UN%5228N7{%ZoPK228SS!PvC;uB zA!XsaWP`>xt+ccf1Sw8cfL69cZOe8Jn?Pe1(W?5!#;OuyJ6!4?-_%lu1VN&-ZBYFj z>gMjwrL~+XDFd5btT4Ed+&ZiZ5u8IkX$HBlNwXo#4T)7HLQ(Io{K|lCxEnA*vUvc%^sx*!#wszjT0u^Eb8z}BT%YZ063d_)Dtry=xS znGscIA1oHeCmpUs(WvyWpJt=c6hjwJ+-`1c0-@64?n;HZq}5CxOl;O*tflR`rCRb) zZWFWyQv;2*G9%DTYszcwe^Db0hUyo$_FdFUuh{mk>}pN=D2p|gJX(Skah1@(Zm%r* zDnpHx?owq3GG(Z-$u%VvQ{1Sp^2H2qQ?YAX+U_n(j_$q^`SllcrXTmA<)*Wz-!eSDIONLS-TPmH|Hl{jFZ|eM1Pijl*ywruM4Y*gO)+pt?)On_p z-wbr|dx1`~68`n6O{wMJ!oPuM6WnhyEAd}pyv46h^`&~DT?k*NInT+*=j>`+8={c?kH07{2)W5oyWh+ z!Ps*kk!cE0xCi-JhTt~rPOvybK$sF?Ghlp~xcuq=zmh1ak<1I+NoJ-r z(`m9Nf1g?K(LXHt(+_U@>kHaPD-1{a=?sCps+`DYa*V|XgQm2R9 zd!KtpvQKiMKIz_fx%UzGzQ?`qbML$Dd-||@FSXH(+1Ex#?R4BPT5{xk+L3RwWEXau z3uG)cDwC9T4%ycp$8^0D@q&9lWxba>?+N#gvfXCAciPu7=Nk!I=-emRcljC17UgZe zBR}fi-*@ka-TRB~{fK)Xb?@)G_gCEeSu1v*eO+y-)2_&REOmo@x%8KBw$5(lZJ*xY z-Zq=<(_PMO%e#HL-?@9-yW0j|qRx);6Eiz~udM^!!EeH#P2c35Vp^4Ff$_O-W>H6Z z+Uw|q!n6;@0>9k#t$pJv$fSf zc}9Eref}xtg!x{}$umwd9RcptY$BU!TISAOvSfB^3lu!cADp?Uz5H%(2EC?jKJ2F$ z>$X7*L1%V)9YMz~Ny1~TikBa2vk9FZijaK~G7%wr98!LwrPW*FFCc3AVf(ntt@RP9MJc3p@#W%SRJn$t*AnJk)Z> zt~v8PPdYXk-qkYOn>#}sb7!L&=C`L8kjL4rGdgy)p%>ajefTp7RDO(%^{&+LiWWIvM)*qY1PC}pVZbSZFP2( z=TB<+%+`kXL`1x+BD;Jf%Jn@Fa$khp?U3oiE+1p)WGT>Ym+p#F8{PdxW~Bv;c{D;!feqA;tlr0{ShZ25^; z*m6`B(-gj~_7^~0DYwn8RCZJe<)>V_mshhg0a~e-iJ0{1iKt#ml`QS7V9PXfG^v@h zJ!$y#hszX+0+D-LGz%l-gi564XDV{27Rxrj>ieiGxc;cBzYlwq#?CpFY;|--3=dZW zf6)cr82LToVkjStkng&*Umvl2#TCoGO0wt^lzjVik7Jo0t9bP|<_+#G1?c+m%@w9@ z;u3ZGBd>j&GQHAoA79jdt>4x*M^v$Th}~dBF)1D9EAgJy>RUG*z=+1?{uKe9w9%yk zmI+ucpi4lvfF1!G1Z))0FJOy+Z31=*7!t5Yz|{iw2^bMDCLk+dLO@BtVFA}m(<_%1 z-lXtmg|{fYP2ued@0i)z($=v=O01*&l)|SKKBMqih0iH`LE(!EUlKTN6s8oagy|C$ zpRaJC!jlv(QP`<)X{$tu8g6^^O$+|;*f~$`YP;{wweK5v?qgp{dDv(v`Ja+I+fo|@ zyk5X^d{Uj40&eCbuqk+i55SESCdKcRO=^aKnF3k`vDAom?J=bw46E-&@%Jn z8U9TEx3$dd*yYch&1*?&X8ZJV0p0#gU)~#J1bYHNC$$4?N2ky?3hA(5{W28Gz^m`K zdTm1N63~OhV3rFtJtQH9X3UiCRw3@IU=tN=k1$>>U`)V>fUJO0#3Bi5pT12Jq(k6| zibQQx(jkpebnpx@U{9VgtBdptL zA_OZxA&%+m#fR6dPK2uoG8=+JHS9(kcB8T%w(N)1r{DVYx4E!wv!bAF)EY7<$W}wr zu~6Lm&NZ!Ewq=^-m%dMHWW=g9k#WQsy+WV)s-PIBav65QoaT5|c5N%CEe zd{>fu#F39A$@e(&JxTI?j(lH|e77Utoghyiw&dx0-^mJl#)T+&QJ0G&hx z)bx>*<4q-aX&S<7TSinkdn|EJGBO&RwhPLCduD-#0R z$zO5guO!LOI`XqhjvCEAoArGOA_`Q>!|Knd$xM$~0n=j%-X6=_lOS%e#0?1|?M0*} zn@jm-m#mu;yxo?!TZt|Om`TdZJ4vQ_(lRhDlH@K&?n;t3I`YOOx!;ldlVq}|vTgn< zDItAIwh4?1bBRs$lDG)W80F=yz$FbaY(A~J?%E>kO{O5dm9d#Z#9C3IB@do<+L3daRTwd_xq}T`*Kl7N7xoPKuehR+p5RwHmGjm7QXzk+=)osev@sWR4bX~92Zo|U zHOt+(@Cy#ETCoxda~D>A-on|t33dtO*F)_Rq%#WB2`is9o>y~J-f;PwY2~*foaPP; zH-(u)M?ZG-{$n>Dz5nQ69DB#n`#X<5aP&(@A3S#BvGUP-jy}Nq9i5Sk^E&&7c61*7 zGG1RI#Fv!yZ;sxxyfd~j(0TNTV?pEt$KH1I$gx{Hk4+O|TEZN=_2`2_T47VNaz&T? zGu-uNR;c6bo>k%gm0hdWg{xO~clV5}TEDJm|Jrc%y7apJVHoxduj*R8ZvC2()yAyh zV!2q%_Qn$ViBXIg9U+jZiOgz@nW4oDv^ekCw&1ySijRStn-0irOGEyNy&Psg#A&Wl zhMQF&%-Wh8V>dCi%NsYc78+9sw%c63Qe%273TV7GSH^;ZhH8W>54N5%}{jYcUUnSM4eq1r>EhKmNZpPt<`O?IO^u>)()k!!<^S=uyEd>>V^EwkX}*{<1` zmTb&9ZZ_&RQn@=(F9mDfnre4`xmA&CY^n05d8mX)99Gp1IG2FSn+9~-pov{#DQCI9 zta&-RQ1P8~2_#Dq%>y;qqn4s*Cs6aEsNL`7LP~D@<<{k%yk5U# zH_fFw<(9VQtx|eb;+TO1S#;bWb>{{o$SaN;L}E#tJ&-2wN`f?R0yaq9mb>WflL+|Q zrUj;YBD(cSx4tE^#m9}zm0Rsbz9{@ZB4G3OCXv+~%r#ORuOd|QLa#k_Zp>Pbi=2%) zr)jR-Ub$XgnOUp=DMN zBntEKi#~R$QS_Y@eRF+Re?n4Po76z_E}J+jDGf*F3(YG`jfAND8HB_DX+FjYWBgpC z3|nG^G!IdGB2?6&SRu{p*eNup4x^-@4rQgkxw>w2rc)vlYvg4kbGkH&j6xP$qG8RnrnEunyB_?RB9KC9n#zmO&(yF@?_LS;sB5>$X?@AUUCe*}vU`{evw}|Jf7AzWU(n-uY{< z=hHu4_ppRGw^$fHx2V5-RJ5jc&du+?=3F;33J^#%VlC@zZu-ZeVJ>Gi|MD^ zT}+ajMOXE|{cnHP{m!rXr>}V%DUSZ`6udKXCExFf@$qepzI>rSo7LZSj~9pYg&@!$ zqT4WkI2|ckmPe_O`4mjoWK!Dyy~|b-W>+~W!)oHL26W-u!n3E$pk&*Q22G{9d0%b@ z`L@C3e0yOx*jB!ya4GJsz|G+D_h9N5zqhp}%aq5ap* z(K^b28+*4CwvX7x^-Q9iL@Po+l@oxQcvht@(X)VZF7W~=at81`-j}30HP!JWd2&** zpCf!bcwYqPh45XdCmPQu)N-iX$sIo*AP=Kpa^h{6`;__W6VhymHSlldRO1dPy?XLc zWb7brp|Kvq-$t5Dl;#O7mnmw&ovFnC_(uh$jwO6l+WnfQVJ*9fMA^QaoGwP7s+`M_ zQy_2Ex>?B~#jeUD@h*fvI`dbcrsQyAHRZ>TZw03U<$NY%60JzSCc+&dDnV**g0q8C z`=cC+#H^xB4dpBG?QnEy84_QVZ*l1<)R!r*YP`1G?Lo^C4r0o|&1&jjzT9urFQ_EL z*Opqf%+BV^U90E^`#Ia%1-1@+HF!7wdMJxkd`)E?*nYECeb$kmb+|(P*F)-75pFfK z^?Z+I1Wf*Vw9b096$a#gKP56nX*ExW)Zu^p{ktfEeb$t^@BDuksr`>c{y#2(e+AF^ BVx|B9 literal 0 HcmV?d00001 diff --git a/client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll.meta b/client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll.meta new file mode 100644 index 0000000..e8451d9 --- /dev/null +++ b/client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cc53273723ddb1e4a8ec0aac4686aa6d \ No newline at end of file diff --git a/client/Assets/Scenes.meta b/client/Assets/Scenes.meta new file mode 100644 index 0000000..e59fb45 --- /dev/null +++ b/client/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c53962885c2c4f449125a979d6ad240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Scenes/Boot.unity b/client/Assets/Scenes/Boot.unity new file mode 100644 index 0000000..1c63aa8 --- /dev/null +++ b/client/Assets/Scenes/Boot.unity @@ -0,0 +1,432 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 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.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + 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_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &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_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 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} + serializedVersion: 2 + 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_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_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + quality: 3 + frameInfluence: 0.1 + jitterScale: 1 + mipBias: 0 + varianceClampScale: 0.9 + contrastAdaptiveSharpening: 0 +--- !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: 11 + m_Type: 1 + 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_ForceVisible: 0 + 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} + serializedVersion: 2 + 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_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: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 1 +--- !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: 10fc4df2da32a41aaa32d77bc913491c, 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} + 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 330585546} + - {fileID: 410087041} + - {fileID: 832575519} diff --git a/client/Assets/Scenes/Boot.unity.meta b/client/Assets/Scenes/Boot.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/client/Assets/Scenes/Boot.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings.meta b/client/Assets/Settings.meta new file mode 100644 index 0000000..39b94dd --- /dev/null +++ b/client/Assets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709f11a7f3c4041caa4ef136ea32d874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/DefaultVolumeProfile.asset b/client/Assets/Settings/DefaultVolumeProfile.asset new file mode 100644 index 0000000..66d98de --- /dev/null +++ b/client/Assets/Settings/DefaultVolumeProfile.asset @@ -0,0 +1,986 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9167874883656233139 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 1 + lift: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &-8270506406425502121 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} + m_Name: SplitToning + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + highlights: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + balance: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-8104416584915340131 +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: 0} + m_Name: CopyPasteTestComponent2 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent2 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p21: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7750755424749557576 +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: 60f3b30c03e6ba64d9a27dc9dba8f28d, type: 3} + m_Name: OutlineVolumeComponent + m_EditorClassIdentifier: + active: 1 + Enabled: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7743500325797982168 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 +--- !u!114 &-7274224791359825572 +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: 0fd9ee276a1023e439cf7a9c393195fa, type: 3} + m_Name: TestAnimationCurveVolumeComponent + m_EditorClassIdentifier: + active: 1 + testParameter: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.5 + value: 10 + inSlope: 0 + outSlope: 10 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 15 + inSlope: 10 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &-6335409530604852063 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 0 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-6288072647309666549 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} + m_Name: FilmGrain + m_EditorClassIdentifier: + active: 1 + type: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + response: + m_OverrideState: 1 + m_Value: 0.8 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} +--- !u!114 &-5520245016509672950 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + neutralHDRRangeReductionMode: + m_OverrideState: 1 + m_Value: 2 + acesPreset: + m_OverrideState: 1 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 1 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 1000 +--- !u!114 &-5360449096862653589 +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: 0} + m_Name: VolumeComponentSupportedEverywhere + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedEverywhere + active: 1 +--- !u!114 &-5139089513906902183 +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: 5a00a63fdd6bd2a45ab1f2d869305ffd, type: 3} + m_Name: OasisFogVolumeComponent + m_EditorClassIdentifier: + active: 1 + Density: + m_OverrideState: 1 + m_Value: 0 + StartDistance: + m_OverrideState: 1 + m_Value: 0 + HeightRange: + m_OverrideState: 1 + m_Value: {x: 0, y: 50} + Tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + SunScatteringIntensity: + m_OverrideState: 1 + m_Value: 2 +--- !u!114 &-4463884970436517307 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} + m_Name: PaniniProjection + m_EditorClassIdentifier: + active: 1 + distance: + m_OverrideState: 1 + m_Value: 0 + cropToFit: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-1410297666881709256 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} + m_Name: ProbeVolumesOptions + m_EditorClassIdentifier: + active: 1 + normalBias: + m_OverrideState: 1 + m_Value: 0.33 + viewBias: + m_OverrideState: 1 + m_Value: 0 + scaleBiasWithMinProbeDistance: + m_OverrideState: 1 + m_Value: 0 + samplingNoise: + m_OverrideState: 1 + m_Value: 0.1 + animateSamplingNoise: + m_OverrideState: 1 + m_Value: 1 + leakReductionMode: + m_OverrideState: 1 + m_Value: 1 + minValidDotProductValue: + m_OverrideState: 1 + m_Value: 0.1 + occlusionOnlyReflectionNormalization: + m_OverrideState: 1 + m_Value: 1 + intensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + skyOcclusionIntensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + worldOffset: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} +--- !u!114 &-1216621516061285780 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 65472 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + filter: + m_OverrideState: 1 + m_Value: 0 + downscale: + m_OverrideState: 1 + m_Value: 0 + maxIterations: + m_OverrideState: 1 + m_Value: 6 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1170528603972255243 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} + m_Name: WhiteBalance + m_EditorClassIdentifier: + active: 1 + temperature: + m_OverrideState: 1 + m_Value: 0 + tint: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-581120513425526550 +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: 0} + m_Name: CopyPasteTestComponent3 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent3 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p31: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: -9167874883656233139} + - {fileID: 1918650496244738858} + - {fileID: 853819529557874667} + - {fileID: 1052315754049611418} + - {fileID: -1170528603972255243} + - {fileID: -8270506406425502121} + - {fileID: -5520245016509672950} + - {fileID: 7173750748008157695} + - {fileID: 1666464333004379222} + - {fileID: 9001657382290151224} + - {fileID: -6335409530604852063} + - {fileID: -1216621516061285780} + - {fileID: 3959858460715838825} + - {fileID: -7743500325797982168} + - {fileID: 4644742534064026673} + - {fileID: -4463884970436517307} + - {fileID: -6288072647309666549} + - {fileID: 7518938298396184218} + - {fileID: -1410297666881709256} +--- !u!114 &853819529557874667 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} + m_Name: ScreenSpaceLensFlare + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + tintColor: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + bloomMip: + m_OverrideState: 1 + m_Value: 1 + firstFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + secondaryFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareScale: + m_OverrideState: 1 + m_Value: {x: 1, y: 1} + samples: + m_OverrideState: 1 + m_Value: 1 + sampleDimmer: + m_OverrideState: 1 + m_Value: 0.5 + vignetteEffect: + m_OverrideState: 1 + m_Value: 1 + startingPosition: + m_OverrideState: 1 + m_Value: 1.25 + scale: + m_OverrideState: 1 + m_Value: 1.5 + streaksIntensity: + m_OverrideState: 1 + m_Value: 0 + streaksLength: + m_OverrideState: 1 + m_Value: 0.5 + streaksOrientation: + m_OverrideState: 1 + m_Value: 0 + streaksThreshold: + m_OverrideState: 1 + m_Value: 0.25 + resolution: + m_OverrideState: 1 + m_Value: 4 + chromaticAbberationIntensity: + m_OverrideState: 1 + m_Value: 0.5 +--- !u!114 &1052315754049611418 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + midtones: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 1 + m_Value: 0 + shadowsEnd: + m_OverrideState: 1 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 1 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &1666464333004379222 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} + m_Name: ColorCurves + m_EditorClassIdentifier: + active: 1 + master: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + red: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + green: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + blue: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsHue: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + satVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + lumVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &1918650496244738858 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} + m_Name: ColorLookup + m_EditorClassIdentifier: + active: 1 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + contribution: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3959858460715838825 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &4251301726029935498 +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: 74955a4b0b4243bc87231e8b59ed9140, type: 3} + m_Name: TestVolume + m_EditorClassIdentifier: + active: 1 + param: + m_OverrideState: 1 + m_Value: 123 +--- !u!114 &4644742534064026673 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &6940869943325143175 +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: 0} + m_Name: VolumeComponentSupportedOnAnySRP + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedOnAnySRP + active: 1 +--- !u!114 &7173750748008157695 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &7518938298396184218 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + xMultiplier: + m_OverrideState: 1 + m_Value: 1 + yMultiplier: + m_OverrideState: 1 + m_Value: 1 + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + scale: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &9001657382290151224 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} + m_Name: ChannelMixer + m_EditorClassIdentifier: + active: 1 + redOutRedIn: + m_OverrideState: 1 + m_Value: 100 + redOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + redOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + greenOutRedIn: + m_OverrideState: 1 + m_Value: 0 + greenOutGreenIn: + m_OverrideState: 1 + m_Value: 100 + greenOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + blueOutRedIn: + m_OverrideState: 1 + m_Value: 0 + blueOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + blueOutBlueIn: + m_OverrideState: 1 + m_Value: 100 +--- !u!114 &9122958982931076880 +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: 0} + m_Name: CopyPasteTestComponent1 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent1 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 diff --git a/client/Assets/Settings/DefaultVolumeProfile.asset.meta b/client/Assets/Settings/DefaultVolumeProfile.asset.meta new file mode 100644 index 0000000..53b314a --- /dev/null +++ b/client/Assets/Settings/DefaultVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab09877e2e707104187f6f83e2f62510 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/Mobile_RPAsset.asset b/client/Assets/Settings/Mobile_RPAsset.asset new file mode 100644 index 0000000..521491e --- /dev/null +++ b/client/Assets/Settings/Mobile_RPAsset.asset @@ -0,0 +1,144 @@ +%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: Mobile_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 65bc7dbf4170f435aa868c779acfb082, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 0 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 0.8 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 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.2 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 1024 + m_AdditionalLightsCookieFormat: 1 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 1 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilteringModeScreenSpaceReflection: 1 + m_PrefilterWriteSmoothness: 1 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/client/Assets/Settings/Mobile_RPAsset.asset.meta b/client/Assets/Settings/Mobile_RPAsset.asset.meta new file mode 100644 index 0000000..3660d15 --- /dev/null +++ b/client/Assets/Settings/Mobile_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e6cbd92db86f4b18aec3ed561671858 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/Mobile_Renderer.asset b/client/Assets/Settings/Mobile_Renderer.asset new file mode 100644 index 0000000..ea246b2 --- /dev/null +++ b/client/Assets/Settings/Mobile_Renderer.asset @@ -0,0 +1,52 @@ +%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: Mobile_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 0} + probeVolumeFragmentationDebugShader: {fileID: 0} + probeVolumeOffsetDebugShader: {fileID: 0} + probeVolumeSamplingDebugShader: {fileID: 0} + probeSamplingDebugMesh: {fileID: 0} + probeSamplingDebugTexture: {fileID: 0} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 1 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + 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: 0 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 diff --git a/client/Assets/Settings/Mobile_Renderer.asset.meta b/client/Assets/Settings/Mobile_Renderer.asset.meta new file mode 100644 index 0000000..a3588b1 --- /dev/null +++ b/client/Assets/Settings/Mobile_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65bc7dbf4170f435aa868c779acfb082 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/PC_RPAsset.asset b/client/Assets/Settings/PC_RPAsset.asset new file mode 100644 index 0000000..73f9aa7 --- /dev/null +++ b/client/Assets/Settings/PC_RPAsset.asset @@ -0,0 +1,144 @@ +%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: PC_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: f288ae1f4751b564a96ac7587541f7a2, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 1 + m_RequireOpaqueTexture: 1 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.12299999, y: 0.2926, z: 0.53599995} + m_CascadeBorder: 0.107758604 + m_ShadowDepthBias: 0.1 + m_ShadowNormalBias: 0.5 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 3 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilteringModeScreenSpaceReflection: 1 + m_PrefilterWriteSmoothness: 1 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/client/Assets/Settings/PC_RPAsset.asset.meta b/client/Assets/Settings/PC_RPAsset.asset.meta new file mode 100644 index 0000000..e286b2f --- /dev/null +++ b/client/Assets/Settings/PC_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b83569d67af61e458304325a23e5dfd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/PC_Renderer.asset b/client/Assets/Settings/PC_Renderer.asset new file mode 100644 index 0000000..475b02e --- /dev/null +++ b/client/Assets/Settings/PC_Renderer.asset @@ -0,0 +1,95 @@ +%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: PC_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, + type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, + type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, + type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, + type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, + type: 3} + probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, + type: 3} + probeVolumeBlendStatesCS: {fileID: 7200000, guid: b9a23f869c4fd45f19c5ada54dd82176, + type: 3} + m_RendererFeatures: + - {fileID: 7833122117494664109} + m_RendererFeatureMap: ad6b866f10d7b46c + m_UseNativeRenderPass: 1 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 1 + stencilCompareFunction: 3 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 2 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 +--- !u!114 &7833122117494664109 +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: ScreenSpaceAmbientOcclusion + m_EditorClassIdentifier: + m_Active: 1 + m_Settings: + AOMethod: 0 + Downsample: 0 + AfterOpaque: 0 + Source: 1 + NormalSamples: 1 + Intensity: 0.4 + DirectLightingStrength: 0.25 + Radius: 0.3 + Samples: 1 + BlurQuality: 0 + Falloff: 100 + SampleCount: -1 + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} diff --git a/client/Assets/Settings/PC_Renderer.asset.meta b/client/Assets/Settings/PC_Renderer.asset.meta new file mode 100644 index 0000000..ddae6a5 --- /dev/null +++ b/client/Assets/Settings/PC_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f288ae1f4751b564a96ac7587541f7a2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/SampleSceneProfile.asset b/client/Assets/Settings/SampleSceneProfile.asset new file mode 100644 index 0000000..c1b0f63 --- /dev/null +++ b/client/Assets/Settings/SampleSceneProfile.asset @@ -0,0 +1,159 @@ +%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 + skipIterations: + m_OverrideState: 1 + m_Value: 0 + threshold: + m_OverrideState: 1 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.25 + scatter: + m_OverrideState: 1 + m_Value: 0.5 + clamp: + m_OverrideState: 0 + m_Value: 65472 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 1 + downscale: + m_OverrideState: 0 + m_Value: 0 + maxIterations: + m_OverrideState: 0 + m_Value: 6 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &-3357603926938260329 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.2 + smoothness: + m_OverrideState: 0 + m_Value: 0.2 + 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: 7391319092446245454} + - {fileID: -3357603926938260329} +--- !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 + mode: + m_OverrideState: 1 + m_Value: 1 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 234 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 647 +--- !u!114 &7391319092446245454 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 0 + mode: + m_OverrideState: 0 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 2 + intensity: + m_OverrideState: 1 + m_Value: 0.6 + clamp: + m_OverrideState: 0 + m_Value: 0.05 diff --git a/client/Assets/Settings/SampleSceneProfile.asset.meta b/client/Assets/Settings/SampleSceneProfile.asset.meta new file mode 100644 index 0000000..b82270c --- /dev/null +++ b/client/Assets/Settings/SampleSceneProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10fc4df2da32a41aaa32d77bc913491c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..3cc7fb3 --- /dev/null +++ b/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,484 @@ +%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: + m_ShaderStrippingSetting: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + m_URPShaderStrippingSetting: + m_Version: 0 + m_StripUnusedPostProcessingVariantsAndResources: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + m_Strip2DUnusedVariants: 0 + m_ShaderVariantLogLevel: 0 + m_ExportShaderVariants: 1 + m_StripDebugVariants: 1 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + supportRuntimeDebugDisplay: 0 + m_Settings: + m_SettingsList: + m_List: + - rid: 6852985685364965376 + - rid: 6852985685364965377 + - rid: 6852985685364965378 + - rid: 6852985685364965379 + - rid: 6852985685364965380 + - rid: 6852985685364965381 + - rid: 6852985685364965382 + - rid: 6852985685364965383 + - rid: 6852985685364965384 + - rid: 6852985685364965385 + - rid: 6852985685364965386 + - rid: 6852985685364965387 + - rid: 6852985685364965388 + - rid: 6852985685364965389 + - rid: 6852985685364965390 + - rid: 6852985685364965391 + - rid: 6852985685364965392 + - rid: 6852985685364965393 + - rid: 6852985685364965394 + - rid: 8712630790384254976 + - rid: 4284062438471237637 + - rid: 5747374308340793344 + - rid: 5747374308340793345 + - rid: 5747374308340793346 + - rid: 5747374308340793347 + - rid: 5747374308340793348 + - rid: 5747374308340793349 + - rid: 6588237625532874752 + - rid: 6588237625532874753 + - rid: 6588237625532874754 + - rid: 6588237625532874755 + - rid: 6588237625532874756 + - rid: 6588237625532874757 + - rid: 6588237625532874758 + - rid: 6588237625532874759 + - rid: 6588237625532874760 + - rid: 6588237625532874761 + - rid: 6588237625532874762 + m_RuntimeSettings: + m_List: [] + m_AssetVersion: 11 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_RenderingLayerNames: + - Light Layer default + - Light Layer 1 + - Light Layer 2 + - Light Layer 3 + - Light Layer 4 + - Light Layer 5 + - Light Layer 6 + - Light Layer 7 + m_ValidRenderingLayers: 0 + 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 + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + references: + version: 2 + RefIds: + - rid: 4284062438471237637 + type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime} + data: + version: 1 + useReflectionProbeRotation: 1 + - rid: 5747374308340793344 + type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2} + - rid: 5747374308340793345 + type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3} + subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3} + gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3} + bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3} + cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3} + paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3} + lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3} + bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3} + LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3} + LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3} + scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3} + easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3} + uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3} + m_ShaderResourcesVersion: 0 + - rid: 5747374308340793346 + type: {class: ScreenSpaceAmbientOcclusionBlueNoiseResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Version: 0 + - rid: 5747374308340793347 + type: {class: ScreenSpaceAmbientOcclusionCoreResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_RasterizationShader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Version: 0 + - rid: 5747374308340793348 + type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3} + m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3} + m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3} + - rid: 5747374308340793349 + type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + blueNoise16LTex: + - {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3} + - {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3} + - {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3} + - {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3} + - {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3} + - {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3} + - {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3} + - {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3} + - {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3} + - {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3} + - {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3} + - {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3} + - {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3} + - {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3} + - {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3} + - {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3} + - {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3} + - {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3} + - {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3} + - {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3} + - {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3} + - {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3} + - {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3} + - {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3} + - {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3} + - {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3} + - {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3} + - {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3} + - {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3} + - {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3} + - {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3} + - {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3} + filmGrainTex: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3} + smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3} + m_TexturesResourcesVersion: 0 + - rid: 6588237625532874752 + type: {class: URPTerrainShaderSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_IncludeTerrainShaders: 1 + - rid: 6588237625532874753 + type: {class: MipGenRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_ColorPyramidPS: {fileID: 4800000, guid: 63b92baba208e314c8fdebe52ca0cc34, type: 3} + m_ColorPyramidCS: {fileID: 7200000, guid: 28969cfddd9ef3f4e94b971690146a4f, type: 3} + m_DepthPyramidCS: {fileID: 7200000, guid: 90a204702cd44e54cac7ed4fc6e5d86b, type: 3} + - rid: 6588237625532874754 + type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3} + - rid: 6588237625532874755 + type: {class: UniversalRenderPipelineFilmGrainResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Textures: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + m_Version: 0 + - rid: 6588237625532874756 + type: {class: ScreenSpaceReflectionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Shader: {fileID: 4800000, guid: 7b3e6785f5f6b634794df3a85a2a35da, type: 3} + m_BlitShader: {fileID: 4800000, guid: 815c625bb9d4fe240a4ccf42ca3899cb, type: 3} + m_Version: 0 + - rid: 6588237625532874757 + type: {class: UniversalRenderPipelineRuntimeTerrainShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3} + m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3} + m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3} + - rid: 6588237625532874758 + type: {class: WorldRenderPipelineResources, ns: UnityEngine.PathTracing.Core, asm: Unity.PathTracing.Runtime} + data: + _version: 3 + _blitCubemap: {fileID: 7200000, guid: 5a992812cb320d146a66cc600200cce7, type: 3} + _blitGrayScaleCookie: {fileID: 7200000, guid: 557fa399e33bf7647bda5697c5c158df, type: 3} + _setAlphaChannelShader: {fileID: 7200000, guid: 5efaea0e81c66334aa9d062d6573e6fd, type: 3} + _environmentImportanceSamplingBuild: {fileID: 7200000, guid: 5bb2534d2411d344cbc54f880232640f, type: 3} + _skyBoxMesh: {fileID: 4300000, guid: 0529e6c5f6dea8c4a8c2835ed7de57cb, type: 2} + _sixFaceSkyBoxMesh: {fileID: 4300000, guid: a80925ceebd011741b42509226cefc74, type: 2} + _buildLightGridShader: {fileID: 7200000, guid: 16e47c1641bd0104e92b624601457bb0, type: 3} + _solidColorShader: {fileID: 4800000, guid: 3765a7ac691541038de4d587b94ae768, type: 3} + - rid: 6588237625532874759 + type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_UseBicubicLightmapSampling: 0 + - rid: 6588237625532874760 + type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_PanelSettings: {fileID: 11400000, guid: fa69697be3070b04a893666f5947f18c, type: 2} + m_StyleSheets: + - {fileID: 7433441132597879392, guid: 0ff99fd36f66f1a41bcc1d3c90e0922a, type: 3} + - {fileID: 7433441132597879392, guid: 3a8aa4d508da46d4dace18b280f064aa, type: 3} + m_VisualTreeAsset: {fileID: 9197481963319205126, guid: b647ceb1e15264943b9b439971e71110, type: 3} + - rid: 6588237625532874761 + type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3} + m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3} + m_VisualizationLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + m_ConversionLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + - rid: 6588237625532874762 + type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime} + data: + m_Version: 1 + m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3} + m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3} + m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3} + m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3} + m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3} + m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3} + m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3} + m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3} + m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3} + - rid: 6852985685364965376 + type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_StripUnusedPostProcessingVariantsAndResources: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + m_Strip2DUnusedVariants: 0 + - rid: 6852985685364965377 + type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3} + m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3} + m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3} + m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3} + m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3} + m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3} + - rid: 6852985685364965378 + type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} + m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3} + m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3} + m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3} + - rid: 6852985685364965379 + type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} + m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} + - rid: 6852985685364965380 + type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} + m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + m_UIBackdropFilterCompositePS: {fileID: 4800000, guid: 8b3d1e6f4c5a4d219a72f8e1c0b3d4a7, type: 3} + m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + m_TerrainDetailLit: {fileID: 0} + m_TerrainDetailGrassBillboard: {fileID: 0} + m_TerrainDetailGrass: {fileID: 0} + - rid: 6852985685364965381 + type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 1 + m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3} + - rid: 6852985685364965382 + type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} + m_RenderingLayerMaskShader: {fileID: 4800000, guid: 9ac9bae9f40d7dc4a80dbf809b9544aa, type: 3} + m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3} + m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3} + m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3} + m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3} + m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3} + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} + m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2} + - rid: 6852985685364965383 + type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_SimpleLitMaterial: {fileID: 2100000, guid: 6a1143ee683302f4aa628c052723efc1, type: 2} + m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2} + m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + - rid: 6852985685364965384 + type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_VolumeProfile: {fileID: 11400000, guid: ab09877e2e707104187f6f83e2f62510, type: 2} + - rid: 6852985685364965385 + type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + - rid: 6852985685364965386 + type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} + data: + m_Version: 0 + m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3} + m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3} + m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3} + m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3} + m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3} + m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3} + m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3} + m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3} + m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3} + - rid: 6852985685364965387 + type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} + m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} + m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} + - rid: 6852985685364965388 + type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3} + subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3} + voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3} + traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + - rid: 6852985685364965389 + type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_ProbeVolumeDisableStreamingAssets: 0 + - rid: 6852985685364965390 + type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3} + numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3} + - rid: 6852985685364965391 + type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_IncludeReferencedInScenes: 0 + m_IncludeAssetsByLabel: 0 + m_LabelToInclude: + - rid: 6852985685364965392 + type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + - rid: 6852985685364965393 + type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3} + probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3} + probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3} + - rid: 6852985685364965394 + type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_EnableCompilationCaching: 1 + m_EnableValidityChecks: 1 + - rid: 8712630790384254976 + type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} diff --git a/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta b/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..81b84f2 --- /dev/null +++ b/client/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18dc0cd2c080841dea60987a38ce93fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard.meta b/client/Assets/Vanguard.meta new file mode 100644 index 0000000..8c00ba7 --- /dev/null +++ b/client/Assets/Vanguard.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0447ba6a99773294f82fb251514acac0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime.meta b/client/Assets/Vanguard/Runtime.meta new file mode 100644 index 0000000..14c97c6 --- /dev/null +++ b/client/Assets/Vanguard/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: afde335e53d51de43bd399eae35323ae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/Api.meta b/client/Assets/Vanguard/Runtime/Api.meta new file mode 100644 index 0000000..2e25db5 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0cb533ca85ca3f54f994137ef19d5e93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/Api/ApiClient.cs b/client/Assets/Vanguard/Runtime/Api/ApiClient.cs new file mode 100644 index 0000000..28fbbb2 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiClient.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; +using UnityEngine; +using UnityEngine.Networking; +using Vanguard.Api.Contracts; +using Vanguard.App; +using Vanguard.Auth; + +namespace Vanguard.Api +{ + /// + /// HTTP/JSON клиент мета-API. UnityWebRequest работает только на главном + /// потоке, поэтому все вызовы должны идти из Unity-кода; continuation после + /// await тоже возвращается на главный поток. + /// + public sealed class ApiClient + { + private static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + NullValueHandling = NullValueHandling.Ignore, + DateParseHandling = DateParseHandling.DateTimeOffset, + }; + + private readonly AppConfig _config; + private readonly TokenStore _tokens; + + public ApiClient(AppConfig config, TokenStore tokens) + { + _config = config; + _tokens = tokens; + } + + public string BaseUrl => _config.ServerBaseUrl; + + public async Task GetAsync(string path, bool authenticated = true) + { + var body = await SendAsync("GET", path, null, authenticated); + if (string.IsNullOrEmpty(body)) + return default; + + return JsonConvert.DeserializeObject(body, JsonSettings); + } + + public async Task PostAsync(string path, object body, bool authenticated = true) + { + var response = await SendAsync("POST", path, body, authenticated); + if (string.IsNullOrEmpty(response)) + return default; + + return JsonConvert.DeserializeObject(response, JsonSettings); + } + + public Task PostAsync(string path, object body, bool authenticated = true) => + SendAsync("POST", path, body, authenticated); + + private async Task SendAsync( + string method, + string path, + object body, + bool authenticated) + { + var url = _config.ServerBaseUrl + path; + + using (var request = new UnityWebRequest(url, method)) + { + request.downloadHandler = new DownloadHandlerBuffer(); + request.timeout = Mathf.CeilToInt(_config.RequestTimeoutSeconds); + request.SetRequestHeader("Accept", "application/json"); + + if (body != null) + { + var json = JsonConvert.SerializeObject(body, JsonSettings); + request.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(json)); + request.SetRequestHeader("Content-Type", "application/json"); + } + + if (authenticated && !string.IsNullOrEmpty(_tokens.AccessToken)) + request.SetRequestHeader("Authorization", "Bearer " + _tokens.AccessToken); + + await SendRequestAsync(request); + + var text = request.downloadHandler != null ? request.downloadHandler.text : string.Empty; + + if (request.responseCode == 0) + { + var reason = string.IsNullOrEmpty(request.error) + ? "Нет связи с сервером." + : request.error; + throw new ApiException(0, "network", reason); + } + + if (request.responseCode >= 400) + throw ParseError(request.responseCode, text); + + return text; + } + } + + private static Task SendRequestAsync(UnityWebRequest request) + { + var completion = new TaskCompletionSource(); + var operation = request.SendWebRequest(); + operation.completed += _ => completion.TrySetResult(true); + return completion.Task; + } + + private static ApiException ParseError(long statusCode, string body) + { + ApiErrorDto error = null; + try + { + if (!string.IsNullOrWhiteSpace(body)) + error = JsonConvert.DeserializeObject(body, JsonSettings); + } + catch (JsonException) + { + // Ниже отдадим общий текст: тело не JSON. + } + + if (error == null) + { + return new ApiException( + statusCode, + "http." + statusCode, + "Сервер вернул ошибку " + statusCode + "."); + } + + var violations = new List(); + if (error.Violations != null) + { + foreach (var violation in error.Violations) + violations.Add(new ApiViolation(violation.Code, violation.Message)); + } + + var message = string.IsNullOrWhiteSpace(error.Message) + ? "Сервер вернул ошибку " + statusCode + "." + : error.Message; + + return new ApiException(statusCode, error.Error, message, violations); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/Api/ApiClient.cs.meta b/client/Assets/Vanguard/Runtime/Api/ApiClient.cs.meta new file mode 100644 index 0000000..7ec7523 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiClient.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: af66b5485a60147498991e534054557a \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs b/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs new file mode 100644 index 0000000..558e895 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace Vanguard.Api.Contracts +{ + public sealed class LoginRequest + { + [JsonProperty("userName")] public string UserName { get; set; } = string.Empty; + [JsonProperty("password")] public string Password { get; set; } = string.Empty; + } + + public sealed class RegisterRequest + { + [JsonProperty("userName")] public string UserName { get; set; } = string.Empty; + [JsonProperty("password")] public string Password { get; set; } = string.Empty; + } + + public sealed class RefreshRequest + { + [JsonProperty("refreshToken")] public string RefreshToken { get; set; } = string.Empty; + } + + public sealed class AuthResponse + { + [JsonProperty("userId")] public Guid UserId { get; set; } + [JsonProperty("userName")] public string UserName { get; set; } = string.Empty; + [JsonProperty("accessToken")] public string AccessToken { get; set; } = string.Empty; + [JsonProperty("refreshToken")] public string RefreshToken { get; set; } = string.Empty; + [JsonProperty("accessExpiresAt")] public DateTimeOffset AccessExpiresAt { get; set; } + [JsonProperty("refreshExpiresAt")] public DateTimeOffset RefreshExpiresAt { get; set; } + [JsonProperty("onboardingCompleted")] public bool OnboardingCompleted { get; set; } + } + + public sealed class MeResponse + { + [JsonProperty("userId")] public Guid UserId { get; set; } + [JsonProperty("userName")] public string UserName { get; set; } = string.Empty; + [JsonProperty("createdAt")] public DateTimeOffset CreatedAt { get; set; } + [JsonProperty("onboardingCompleted")] public bool OnboardingCompleted { get; set; } + [JsonProperty("selectedTrialDeckId")] public string SelectedTrialDeckId { get; set; } + [JsonProperty("gold")] public int Gold { get; set; } + [JsonProperty("dust")] public int Dust { get; set; } + [JsonProperty("tokens")] public int Tokens { get; set; } + [JsonProperty("xp")] public int Xp { get; set; } + [JsonProperty("rankedMmr")] public int RankedMmr { get; set; } + [JsonProperty("casualMmr")] public int CasualMmr { get; set; } + [JsonProperty("matches")] public int Matches { get; set; } + [JsonProperty("wins")] public int Wins { get; set; } + } + + public sealed class ApiErrorDto + { + [JsonProperty("error")] public string Error { get; set; } = string.Empty; + [JsonProperty("message")] public string Message { get; set; } = string.Empty; + [JsonProperty("violations")] public List Violations { get; set; } + } + + public sealed class ApiViolationDto + { + [JsonProperty("code")] public string Code { get; set; } = string.Empty; + [JsonProperty("message")] public string Message { get; set; } = string.Empty; + } + + public sealed class QueueRequest + { + [JsonProperty("mode")] public string Mode { get; set; } = "classic-ranked"; + [JsonProperty("deckId")] public Guid? DeckId { get; set; } + } + + public sealed class QueueAccepted + { + [JsonProperty("queueId")] public Guid QueueId { get; set; } + [JsonProperty("status")] public string Status { get; set; } = string.Empty; + [JsonProperty("mode")] public string Mode { get; set; } = string.Empty; + } + + public sealed class QueueStatusResponse + { + [JsonProperty("queueId")] public Guid QueueId { get; set; } + [JsonProperty("status")] public string Status { get; set; } = string.Empty; + [JsonProperty("mode")] public string Mode { get; set; } = string.Empty; + [JsonProperty("waitedSeconds")] public int WaitedSeconds { get; set; } + [JsonProperty("window")] public int Window { get; set; } + [JsonProperty("matchId")] public string MatchId { get; set; } + [JsonProperty("seat")] public int Seat { get; set; } + [JsonProperty("ticket")] public string Ticket { get; set; } + [JsonProperty("opponent")] public string Opponent { get; set; } + [JsonProperty("reason")] public string Reason { get; set; } + [JsonProperty("wsUrl")] public string WsUrl { get; set; } + } + + public sealed class TicketRequest + { + [JsonProperty("matchId")] public string MatchId { get; set; } = string.Empty; + } + + public sealed class TicketResponse + { + [JsonProperty("ticket")] public string Ticket { get; set; } = string.Empty; + [JsonProperty("matchId")] public string MatchId { get; set; } = string.Empty; + [JsonProperty("seat")] public int Seat { get; set; } + [JsonProperty("wsUrl")] public string WsUrl { get; set; } = string.Empty; + [JsonProperty("expiresAt")] public DateTimeOffset ExpiresAt { get; set; } + } +} diff --git a/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs.meta b/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs.meta new file mode 100644 index 0000000..5f9dc11 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiContracts.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 51c759c5385f71a49b76901a12701543 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/Api/ApiException.cs b/client/Assets/Vanguard/Runtime/Api/ApiException.cs new file mode 100644 index 0000000..ad6aad4 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiException.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; + +namespace Vanguard.Api +{ + /// Ошибка HTTP-API с сохранением кода и сообщения сервера. + public sealed class ApiException : Exception + { + public long StatusCode { get; } + public string Code { get; } + public IReadOnlyList Violations { get; } + + public ApiException( + long statusCode, + string code, + string message, + IReadOnlyList violations = null) + : base(message) + { + StatusCode = statusCode; + Code = code ?? string.Empty; + Violations = violations ?? Array.Empty(); + } + } + + public sealed class ApiViolation + { + public string Code { get; } + public string Message { get; } + + public ApiViolation(string code, string message) + { + Code = code ?? string.Empty; + Message = message ?? string.Empty; + } + } +} diff --git a/client/Assets/Vanguard/Runtime/Api/ApiException.cs.meta b/client/Assets/Vanguard/Runtime/Api/ApiException.cs.meta new file mode 100644 index 0000000..5e50872 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Api/ApiException.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 80986a59dcc05b6479d7c06d79e04151 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/App.meta b/client/Assets/Vanguard/Runtime/App.meta new file mode 100644 index 0000000..67fa103 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1149fffb7b97a044b8964a55001def24 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/App/AppConfig.cs b/client/Assets/Vanguard/Runtime/App/AppConfig.cs new file mode 100644 index 0000000..1901b32 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/AppConfig.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +namespace Vanguard.App +{ + /// + /// Настройки клиента. Пока хранятся в PlayerPrefs: для dev-сборки этого + /// достаточно, позже серверный URL и токены переедут в лаунчер/защищённое + /// хранилище. + /// + public sealed class AppConfig + { + public const string DefaultServerUrl = "http://192.168.31.158:18080"; + private const string ServerUrlKey = "vanguard.serverUrl"; + + public string ServerBaseUrl { get; private set; } = DefaultServerUrl; + public float RequestTimeoutSeconds => 20f; + public string ClientBuild => Application.version; + + public void Load() + { + ServerBaseUrl = Normalize(PlayerPrefs.GetString(ServerUrlKey, DefaultServerUrl)); + } + + public void SetServerBaseUrl(string value) + { + ServerBaseUrl = Normalize(value); + PlayerPrefs.SetString(ServerUrlKey, ServerBaseUrl); + PlayerPrefs.Save(); + } + + public static string Normalize(string value) + { + if (string.IsNullOrWhiteSpace(value)) + return DefaultServerUrl; + + value = value.Trim(); + if (!value.StartsWith("http://") && !value.StartsWith("https://")) + value = "http://" + value; + + return value.TrimEnd('/'); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/App/AppConfig.cs.meta b/client/Assets/Vanguard/Runtime/App/AppConfig.cs.meta new file mode 100644 index 0000000..c48ba0c --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/AppConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c40efe9fa8311a64ba789631d3f69ef5 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs b/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs new file mode 100644 index 0000000..53afcf8 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +namespace Vanguard.App +{ + /// + /// Точка входа без привязки к сцене: выполняется до загрузки первой сцены, + /// поэтому клиент запускается и в пустой сцене. + /// + public static class ClientBootstrap + { + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void Launch() + { + if (Object.FindAnyObjectByType() != null) + return; + + var go = new GameObject("Vanguard Client"); + go.AddComponent(); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs.meta b/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs.meta new file mode 100644 index 0000000..3d985de --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/ClientBootstrap.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4bca4120babf0b744b83b60b7ac74456 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/App/VanguardApp.cs b/client/Assets/Vanguard/Runtime/App/VanguardApp.cs new file mode 100644 index 0000000..c15572e --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/VanguardApp.cs @@ -0,0 +1,70 @@ +using System; +using System.Threading.Tasks; +using UnityEngine; +using VContainer; +using Vanguard.Api; +using Vanguard.Auth; +using Vanguard.State; +using Vanguard.UI; + +namespace Vanguard.App +{ + /// + /// Composition root клиента. Создаётся из runtime-инициализатора, поэтому + /// не зависит от содержимого сцены; сцены появятся позже. + /// + public sealed class VanguardApp : MonoBehaviour + { + private IObjectResolver _container; + private AppRootView _root; + + private void Awake() + { + DontDestroyOnLoad(gameObject); + Application.targetFrameRate = 60; + + var config = new AppConfig(); + config.Load(); + + var builder = new ContainerBuilder(); + builder.RegisterInstance(config); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + + _container = builder.Build(); + _root = _container.Resolve(); + _root.Initialize(); + + _ = RestoreSessionAsync(); + } + + private async Task RestoreSessionAsync() + { + var auth = _container.Resolve(); + + try + { + if (await auth.TryRestoreAsync()) + { + _root.ShowMeta(); + return; + } + } + catch (Exception exception) + { + Debug.LogException(exception); + } + + _root.ShowLogin("Введите данные игрока."); + } + + private void OnDestroy() + { + if (_container is IDisposable disposable) + disposable.Dispose(); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/App/VanguardApp.cs.meta b/client/Assets/Vanguard/Runtime/App/VanguardApp.cs.meta new file mode 100644 index 0000000..2de0df7 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/App/VanguardApp.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6add61981aec15c48b5bd1f420d66b04 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/Auth.meta b/client/Assets/Vanguard/Runtime/Auth.meta new file mode 100644 index 0000000..9ccaa15 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Auth.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7e9780ad7b953d42b7f74cdaf653d3b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/Auth/AuthService.cs b/client/Assets/Vanguard/Runtime/Auth/AuthService.cs new file mode 100644 index 0000000..c4fa320 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Auth/AuthService.cs @@ -0,0 +1,161 @@ +using System; +using System.Threading.Tasks; +using Vanguard.Api; +using Vanguard.Api.Contracts; +using Vanguard.State; + +namespace Vanguard.Auth +{ + /// + /// Сессия игрока: login/register, восстановление по refresh-токену, + /// обновление профиля и выход. Токены не покидают клиент. + /// + public sealed class AuthService + { + private readonly ApiClient _api; + private readonly TokenStore _tokens; + private readonly PlayerState _player; + + public AuthService(ApiClient api, TokenStore tokens, PlayerState player) + { + _api = api; + _tokens = tokens; + _player = player; + } + + public bool IsAuthenticated => _tokens.HasRefreshToken; + + public async Task LoginAsync(string userName, string password) + { + var response = await _api.PostAsync( + "/api/auth/login", + new LoginRequest { UserName = userName, Password = password }, + authenticated: false); + + SaveSession(response); + await TryRefreshMeAsync(); + return response; + } + + public async Task RegisterAsync(string userName, string password) + { + var response = await _api.PostAsync( + "/api/auth/register", + new RegisterRequest { UserName = userName, Password = password }, + authenticated: false); + + SaveSession(response); + await TryRefreshMeAsync(); + return response; + } + + /// Восстановить сессию при старте. false — нужен логин. + public async Task TryRestoreAsync() + { + if (!_tokens.HasRefreshToken || _tokens.RefreshExpiresAt <= DateTimeOffset.UtcNow) + return false; + + try + { + await RefreshAsync(); + await TryRefreshMeAsync(); + return true; + } + catch (ApiException exception) when (exception.StatusCode == 401) + { + ClearSession(); + return false; + } + catch (Exception) + { + // Сервер временно недоступен: токены не трогаем, покажем логин. + return false; + } + } + + public async Task RefreshAsync() + { + if (!_tokens.HasRefreshToken) + throw new ApiException(401, "auth.no-refresh", "Нет refresh-токена."); + + var response = await _api.PostAsync( + "/api/auth/refresh", + new RefreshRequest { RefreshToken = _tokens.RefreshToken }, + authenticated: false); + + SaveSession(response); + return response; + } + + public async Task RefreshMeAsync() + { + if (_tokens.IsAccessExpired && _tokens.HasRefreshToken) + await RefreshAsync(); + + try + { + var me = await _api.GetAsync("/api/auth/me"); + _player.Apply(me); + return me; + } + catch (ApiException exception) when (exception.StatusCode == 401 && _tokens.HasRefreshToken) + { + await RefreshAsync(); + var me = await _api.GetAsync("/api/auth/me"); + _player.Apply(me); + return me; + } + } + + public async Task LogoutAsync() + { + try + { + if (_tokens.HasRefreshToken) + { + await _api.PostAsync( + "/api/auth/logout", + new RefreshRequest { RefreshToken = _tokens.RefreshToken }, + authenticated: false); + } + } + catch (Exception) + { + // Выход не должен зависеть от доступности сервера. + } + finally + { + ClearSession(); + } + } + + private async Task TryRefreshMeAsync() + { + try + { + await RefreshMeAsync(); + } + catch (Exception) + { + // Логин уже состоялся; профиль можно обновить на мета-экране. + } + } + + private void SaveSession(AuthResponse response) + { + _tokens.Save( + response.AccessToken, + response.RefreshToken, + response.AccessExpiresAt, + response.RefreshExpiresAt); + + _player.Apply(response); + } + + private void ClearSession() + { + _tokens.Clear(); + _player.Clear(); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/Auth/AuthService.cs.meta b/client/Assets/Vanguard/Runtime/Auth/AuthService.cs.meta new file mode 100644 index 0000000..6a908c1 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Auth/AuthService.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d9d80790b15be9841997269b9d0ee66d \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs b/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs new file mode 100644 index 0000000..48fe7c9 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs @@ -0,0 +1,82 @@ +using System; +using System.Globalization; +using UnityEngine; + +namespace Vanguard.Auth +{ + /// + /// Access/refresh токены. В dev-сборке — PlayerPrefs; для релиза нужно + /// защищённое хранилище (DPAPI/Keychain) через лаунчер или нативную обёртку. + /// + public sealed class TokenStore + { + private const string AccessKey = "vanguard.auth.access"; + private const string RefreshKey = "vanguard.auth.refresh"; + private const string AccessExpiresKey = "vanguard.auth.accessExpires"; + private const string RefreshExpiresKey = "vanguard.auth.refreshExpires"; + + public string AccessToken { get; private set; } = string.Empty; + public string RefreshToken { get; private set; } = string.Empty; + public DateTimeOffset AccessExpiresAt { get; private set; } + public DateTimeOffset RefreshExpiresAt { get; private set; } + + public bool HasRefreshToken => !string.IsNullOrEmpty(RefreshToken); + public bool IsAccessExpired => AccessExpiresAt <= DateTimeOffset.UtcNow.AddSeconds(30); + + public TokenStore() + { + Load(); + } + + public void Save( + string accessToken, + string refreshToken, + DateTimeOffset accessExpiresAt, + DateTimeOffset refreshExpiresAt) + { + AccessToken = accessToken ?? string.Empty; + RefreshToken = refreshToken ?? string.Empty; + AccessExpiresAt = accessExpiresAt; + RefreshExpiresAt = refreshExpiresAt; + + PlayerPrefs.SetString(AccessKey, AccessToken); + PlayerPrefs.SetString(RefreshKey, RefreshToken); + PlayerPrefs.SetString(AccessExpiresKey, AccessExpiresAt.ToString("O", CultureInfo.InvariantCulture)); + PlayerPrefs.SetString(RefreshExpiresKey, RefreshExpiresAt.ToString("O", CultureInfo.InvariantCulture)); + PlayerPrefs.Save(); + } + + public void Clear() + { + AccessToken = string.Empty; + RefreshToken = string.Empty; + AccessExpiresAt = default; + RefreshExpiresAt = default; + + PlayerPrefs.DeleteKey(AccessKey); + PlayerPrefs.DeleteKey(RefreshKey); + PlayerPrefs.DeleteKey(AccessExpiresKey); + PlayerPrefs.DeleteKey(RefreshExpiresKey); + PlayerPrefs.Save(); + } + + private void Load() + { + AccessToken = PlayerPrefs.GetString(AccessKey, string.Empty); + RefreshToken = PlayerPrefs.GetString(RefreshKey, string.Empty); + AccessExpiresAt = ParseDate(PlayerPrefs.GetString(AccessExpiresKey, string.Empty)); + RefreshExpiresAt = ParseDate(PlayerPrefs.GetString(RefreshExpiresKey, string.Empty)); + } + + private static DateTimeOffset ParseDate(string value) + { + return DateTimeOffset.TryParse( + value, + CultureInfo.InvariantCulture, + DateTimeStyles.RoundtripKind, + out var parsed) + ? parsed + : default; + } + } +} diff --git a/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs.meta b/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs.meta new file mode 100644 index 0000000..c888bec --- /dev/null +++ b/client/Assets/Vanguard/Runtime/Auth/TokenStore.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 061438c81c9f50441af2003eaf92fd68 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/State.meta b/client/Assets/Vanguard/Runtime/State.meta new file mode 100644 index 0000000..1da2ce5 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/State.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ddabe9fe1b71774b9a6235f3868b267 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/State/PlayerState.cs b/client/Assets/Vanguard/Runtime/State/PlayerState.cs new file mode 100644 index 0000000..b52a8c6 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/State/PlayerState.cs @@ -0,0 +1,73 @@ +using System; +using Vanguard.Api.Contracts; + +namespace Vanguard.State +{ + /// Текущий профиль игрока, общий для мета-экранов. + public sealed class PlayerState + { + public Guid UserId { get; private set; } + public string UserName { get; private set; } = string.Empty; + public bool OnboardingCompleted { get; private set; } + public string SelectedTrialDeckId { get; private set; } + public int Gold { get; private set; } + public int Dust { get; private set; } + public int Tokens { get; private set; } + public int Xp { get; private set; } + public int RankedMmr { get; private set; } + public int CasualMmr { get; private set; } + public int Matches { get; private set; } + public int Wins { get; private set; } + + public event Action Changed; + + public void Apply(AuthResponse response) + { + UserId = response.UserId; + UserName = response.UserName ?? string.Empty; + OnboardingCompleted = response.OnboardingCompleted; + NotifyChanged(); + } + + public void Apply(MeResponse me) + { + UserId = me.UserId; + UserName = me.UserName ?? string.Empty; + OnboardingCompleted = me.OnboardingCompleted; + SelectedTrialDeckId = me.SelectedTrialDeckId; + Gold = me.Gold; + Dust = me.Dust; + Tokens = me.Tokens; + Xp = me.Xp; + RankedMmr = me.RankedMmr; + CasualMmr = me.CasualMmr; + Matches = me.Matches; + Wins = me.Wins; + NotifyChanged(); + } + + public void Clear() + { + UserId = Guid.Empty; + UserName = string.Empty; + OnboardingCompleted = false; + SelectedTrialDeckId = null; + Gold = 0; + Dust = 0; + Tokens = 0; + Xp = 0; + RankedMmr = 0; + CasualMmr = 0; + Matches = 0; + Wins = 0; + NotifyChanged(); + } + + private void NotifyChanged() + { + var handler = Changed; + if (handler != null) + handler(); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/State/PlayerState.cs.meta b/client/Assets/Vanguard/Runtime/State/PlayerState.cs.meta new file mode 100644 index 0000000..f675164 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/State/PlayerState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bab35155981c7884ab6829b9e3b91982 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/UI.meta b/client/Assets/Vanguard/Runtime/UI.meta new file mode 100644 index 0000000..e3e4a03 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b6e497c60dad1141b0707a2c85f14f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/client/Assets/Vanguard/Runtime/UI/AppRootView.cs b/client/Assets/Vanguard/Runtime/UI/AppRootView.cs new file mode 100644 index 0000000..0a0440d --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/AppRootView.cs @@ -0,0 +1,57 @@ +using UnityEngine; +using Vanguard.App; +using Vanguard.Auth; +using Vanguard.State; + +namespace Vanguard.UI +{ + /// Владелец Canvas и переключения экранов. + public sealed class AppRootView + { + private readonly AppConfig _config; + private readonly AuthService _auth; + private readonly PlayerState _player; + + private LoginView _login; + private MetaView _meta; + + public AppRootView(AppConfig config, AuthService auth, PlayerState player) + { + _config = config; + _auth = auth; + _player = player; + } + + public void Initialize() + { + var canvas = UiKit.CreateCanvas("Vanguard Canvas"); + _login = new LoginView(canvas.transform, _config, _auth, OnAuthenticated); + _meta = new MetaView(canvas.transform, _auth, _player, OnLoggedOut); + ShowLogin("Проверяем сессию…"); + } + + public void ShowLogin(string status = null) + { + if (_meta != null) + _meta.Hide(); + + _login.Show(status); + } + + public void ShowMeta() + { + _login.Hide(); + _meta.Show(); + } + + private void OnAuthenticated() + { + ShowMeta(); + } + + private void OnLoggedOut() + { + ShowLogin("Сессия завершена. Войдите снова."); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/UI/AppRootView.cs.meta b/client/Assets/Vanguard/Runtime/UI/AppRootView.cs.meta new file mode 100644 index 0000000..fe5719b --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/AppRootView.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ff1fdb94bf828d64099d3458f8e34b12 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/UI/LoginView.cs b/client/Assets/Vanguard/Runtime/UI/LoginView.cs new file mode 100644 index 0000000..176b81a --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/LoginView.cs @@ -0,0 +1,204 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; +using Vanguard.Api; +using Vanguard.App; +using Vanguard.Auth; + +namespace Vanguard.UI +{ + /// Экран входа/регистрации и выбора адреса сервера. + public sealed class LoginView + { + private readonly AppConfig _config; + private readonly AuthService _auth; + private readonly Action _onAuthenticated; + + private readonly RectTransform _root; + private readonly InputField _serverUrl; + private readonly InputField _userName; + private readonly InputField _password; + private readonly Button _loginButton; + private readonly Button _registerButton; + private readonly Text _status; + private bool _busy; + + public LoginView( + Transform parent, + AppConfig config, + AuthService auth, + Action onAuthenticated) + { + _config = config; + _auth = auth; + _onAuthenticated = onAuthenticated; + + _root = UiKit.CreatePanel(parent, "LoginScreen", new Color(0.035f, 0.045f, 0.065f, 1f)); + + var card = UiKit.CreateCenteredCard( + _root, + "LoginCard", + new Vector2(640f, 790f), + new Color(0.07f, 0.085f, 0.115f, 1f)); + + UiKit.AddVerticalLayout(card, 36, 10); + + var title = UiKit.CreateText( + card, "Title", "VANGUARD", 54, new Color(0.86f, 0.90f, 1f)); + title.fontStyle = FontStyle.Bold; + UiKit.SetPreferredHeight(title, 64f); + + var subtitle = UiKit.CreateText( + card, "Subtitle", "ReMaster · сетевой клиент", 20, + new Color(0.62f, 0.68f, 0.82f)); + UiKit.SetPreferredHeight(subtitle, 34f); + + AddCaption(card, "Сервер"); + _serverUrl = UiKit.CreateInput(card, "ServerUrl", "http://192.168.31.158:18080"); + _serverUrl.text = _config.ServerBaseUrl; + UiKit.SetPreferredHeight(_serverUrl, 54f); + + AddCaption(card, "Имя игрока"); + _userName = UiKit.CreateInput(card, "UserName", "3–32 символа"); + UiKit.SetPreferredHeight(_userName, 54f); + + AddCaption(card, "Пароль"); + _password = UiKit.CreateInput(card, "Password", "8–128 символов", password: true); + UiKit.SetPreferredHeight(_password, 54f); + + _loginButton = UiKit.CreateButton(card, "LoginButton", "Войти", OnLoginClicked); + UiKit.SetPreferredHeight(_loginButton, 56f); + + _registerButton = UiKit.CreateButton(card, "RegisterButton", "Создать аккаунт", OnRegisterClicked, 21); + UiKit.SetPreferredHeight(_registerButton, 50f); + + _status = UiKit.CreateText( + card, "Status", string.Empty, 18, + new Color(0.70f, 0.75f, 0.86f), + TextAnchor.UpperCenter); + _status.horizontalOverflow = HorizontalWrapMode.Wrap; + UiKit.SetPreferredHeight(_status, 72f); + + var footer = UiKit.CreateText( + card, + "Footer", + "Стенд: 192.168.31.158:18080 · локально: localhost:5080", + 15, + new Color(0.45f, 0.50f, 0.62f)); + UiKit.SetPreferredHeight(footer, 26f); + } + + public void Show(string status = null) + { + UiKit.SetActive(_root, true); + if (!string.IsNullOrEmpty(status)) + SetStatus(status, new Color(0.70f, 0.75f, 0.86f)); + } + + public void Hide() => UiKit.SetActive(_root, false); + + private static void AddCaption(Transform parent, string text) + { + var caption = UiKit.CreateText( + parent, + "Caption_" + text, + text, + 17, + new Color(0.62f, 0.68f, 0.82f), + TextAnchor.MiddleLeft); + UiKit.SetPreferredHeight(caption, 24f); + } + + private async void OnLoginClicked() + { + await SubmitAsync(register: false); + } + + private async void OnRegisterClicked() + { + await SubmitAsync(register: true); + } + + private async Task SubmitAsync(bool register) + { + if (_busy) + return; + + var userName = (_userName.text ?? string.Empty).Trim(); + var password = _password.text ?? string.Empty; + + if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) + { + SetStatus("Введите имя игрока и пароль.", new Color(1f, 0.70f, 0.35f)); + return; + } + + _config.SetServerBaseUrl(_serverUrl.text); + _serverUrl.text = _config.ServerBaseUrl; + + SetBusy(true, register ? "Создаём аккаунт…" : "Подключаемся…"); + + try + { + if (register) + await _auth.RegisterAsync(userName, password); + else + await _auth.LoginAsync(userName, password); + + _password.text = string.Empty; + SetStatus("Готово.", new Color(0.45f, 0.85f, 0.55f)); + _onAuthenticated(); + } + catch (ApiException exception) + { + SetStatus(FormatError(exception), new Color(1f, 0.55f, 0.45f)); + } + catch (Exception exception) + { + Debug.LogException(exception); + SetStatus("Не удалось связаться с сервером. Проверьте адрес.", new Color(1f, 0.55f, 0.45f)); + } + finally + { + SetBusy(false, null); + } + } + + private static string FormatError(ApiException exception) + { + if (exception.StatusCode == 0) + return "Нет связи с сервером. Проверьте адрес и запущен ли сервер."; + + if (exception.Violations.Count > 0) + { + var details = string.Join("\n", exception.Violations.Take(3).Select(item => item.Message)); + return exception.Message + "\n" + details; + } + + return string.IsNullOrEmpty(exception.Message) + ? "Сервер вернул ошибку " + exception.StatusCode + "." + : exception.Message; + } + + private void SetBusy(bool busy, string status) + { + _busy = busy; + _loginButton.interactable = !busy; + _registerButton.interactable = !busy; + _serverUrl.interactable = !busy; + _userName.interactable = !busy; + _password.interactable = !busy; + + if (status != null) + SetStatus(status, new Color(0.70f, 0.75f, 0.86f)); + } + + private void SetStatus(string text, Color color) + { + _status.text = text ?? string.Empty; + _status.color = color; + } + } +} diff --git a/client/Assets/Vanguard/Runtime/UI/LoginView.cs.meta b/client/Assets/Vanguard/Runtime/UI/LoginView.cs.meta new file mode 100644 index 0000000..6bdbb01 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/LoginView.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7c1355ec58794d644a8a03a277a56c99 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/UI/MetaView.cs b/client/Assets/Vanguard/Runtime/UI/MetaView.cs new file mode 100644 index 0000000..d6ed750 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/MetaView.cs @@ -0,0 +1,245 @@ +using System; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; +using Vanguard.Api; +using Vanguard.Auth; +using Vanguard.State; + +namespace Vanguard.UI +{ + /// Главный экран после входа: профиль, балансы и заглушки разделов. + public sealed class MetaView + { + private readonly AuthService _auth; + private readonly PlayerState _player; + private readonly Action _onLoggedOut; + + private readonly RectTransform _root; + private readonly Text _playerName; + private readonly Text _onboarding; + private readonly Text _gold; + private readonly Text _dust; + private readonly Text _tokens; + private readonly Text _ranked; + private readonly Text _casual; + private readonly Text _record; + private readonly Text _status; + private readonly Button _logout; + private readonly Button _onboardingButton; + private bool _refreshing; + + public MetaView( + Transform parent, + AuthService auth, + PlayerState player, + Action onLoggedOut) + { + _auth = auth; + _player = player; + _onLoggedOut = onLoggedOut; + + _root = UiKit.CreatePanel(parent, "MetaScreen", new Color(0.035f, 0.045f, 0.065f, 1f)); + + var top = UiKit.CreatePanel(_root, "TopBar", new Color(0.07f, 0.085f, 0.115f, 1f)); + var topRect = top; + topRect.anchorMin = new Vector2(0f, 1f); + topRect.anchorMax = new Vector2(1f, 1f); + topRect.pivot = new Vector2(0.5f, 1f); + topRect.anchoredPosition = Vector2.zero; + topRect.sizeDelta = new Vector2(0f, 92f); + UiKit.AddHorizontalLayout(top, 22, 16); + + var brand = UiKit.CreateText( + top, "Brand", "VANGUARD", 34, new Color(0.86f, 0.90f, 1f), TextAnchor.MiddleLeft); + brand.fontStyle = FontStyle.Bold; + UiKit.SetPreferredHeight(brand, 48f, 0f); + + _playerName = UiKit.CreateText( + top, "PlayerName", "…", 20, new Color(0.70f, 0.76f, 0.90f), TextAnchor.MiddleLeft); + UiKit.SetPreferredHeight(_playerName, 40f); + + _logout = UiKit.CreateButton(top, "Logout", "Выйти", OnLogoutClicked, 18); + UiKit.SetPreferredHeight(_logout, 42f, 0f); + + var content = UiKit.CreatePanel(_root, "Content", new Color(0.035f, 0.045f, 0.065f, 0f)); + var contentRect = content; + contentRect.anchorMin = Vector2.zero; + contentRect.anchorMax = Vector2.one; + contentRect.offsetMin = new Vector2(48f, 36f); + contentRect.offsetMax = new Vector2(-48f, -116f); + UiKit.AddVerticalLayout(contentRect, 12, 16); + + var welcome = UiKit.CreateText( + content, "Welcome", "Личный кабинет", 38, Color.white, TextAnchor.MiddleLeft); + UiKit.SetPreferredHeight(welcome, 56f); + + _onboarding = UiKit.CreateText( + content, "Onboarding", string.Empty, 18, + new Color(1f, 0.76f, 0.38f), TextAnchor.MiddleLeft); + UiKit.SetPreferredHeight(_onboarding, 28f); + + var stats = UiKit.CreatePanel(content, "Stats", new Color(0.07f, 0.085f, 0.115f, 1f)); + UiKit.SetPreferredHeight(stats, 130f); + UiKit.AddHorizontalLayout(stats, 18, 14); + + _gold = AddStat(stats, "Gold"); + _dust = AddStat(stats, "Пыль"); + _tokens = AddStat(stats, "Токены"); + _ranked = AddStat(stats, "Ranked MMR"); + _casual = AddStat(stats, "Casual MMR"); + + var actions = UiKit.CreatePanel(content, "Actions", new Color(0.07f, 0.085f, 0.115f, 1f)); + UiKit.SetPreferredHeight(actions, 96f); + UiKit.AddHorizontalLayout(actions, 18, 14); + + AddAction(actions, "Коллекция", OnCollectionClicked); + AddAction(actions, "Колоды", OnDecksClicked); + AddAction(actions, "Магазин", OnStoreClicked); + AddAction(actions, "В бой", OnPlayClicked); + + var lower = UiKit.CreatePanel(content, "Lower", new Color(0.07f, 0.085f, 0.115f, 1f)); + UiKit.SetPreferredHeight(lower, 220f, 1f); + UiKit.AddVerticalLayout(lower, 20, 8); + + _record = UiKit.CreateText( + lower, "Record", string.Empty, 20, + new Color(0.72f, 0.78f, 0.92f), TextAnchor.MiddleLeft); + UiKit.SetPreferredHeight(_record, 28f); + + _status = UiKit.CreateText( + lower, "Status", string.Empty, 18, + new Color(0.62f, 0.68f, 0.82f), TextAnchor.UpperLeft); + UiKit.SetPreferredHeight(_status, 70f); + + _onboardingButton = UiKit.CreateButton( + lower, "OnboardingButton", "Выбрать триал-деку", OnOnboardingClicked, 20); + UiKit.SetPreferredHeight(_onboardingButton, 46f); + + _player.Changed += UpdateTexts; + _root.gameObject.SetActive(false); + } + + public void Show() + { + UiKit.SetActive(_root, true); + UpdateTexts(); + _ = RefreshAsync(); + } + + public void Hide() => UiKit.SetActive(_root, false); + + private static Text AddStat(Transform parent, string caption) + { + var card = UiKit.CreatePanel(parent, "Stat_" + caption, new Color(0.09f, 0.11f, 0.15f, 1f)); + UiKit.AddVerticalLayout(card, 12, 4); + var element = card.gameObject.AddComponent(); + element.flexibleWidth = 1f; + element.preferredHeight = 100f; + + var label = UiKit.CreateText( + card, "Caption", caption, 16, new Color(0.58f, 0.65f, 0.78f)); + UiKit.SetPreferredHeight(label, 22f); + + var value = UiKit.CreateText( + card, "Value", "—", 30, Color.white); + value.fontStyle = FontStyle.Bold; + UiKit.SetPreferredHeight(value, 40f); + return value; + } + + private static Button AddAction(Transform parent, string caption, Action onClick) + { + var button = UiKit.CreateButton(parent, "Action_" + caption, caption, () => onClick(), 20); + var element = button.gameObject.AddComponent(); + element.flexibleWidth = 1f; + element.preferredHeight = 56f; + return button; + } + + private async Task RefreshAsync() + { + if (_refreshing) + return; + + _refreshing = true; + SetStatus("Обновляем профиль…", new Color(0.62f, 0.68f, 0.82f)); + + try + { + await _auth.RefreshMeAsync(); + SetStatus("Профиль обновлён.", new Color(0.45f, 0.85f, 0.55f)); + } + catch (ApiException exception) when (exception.StatusCode == 401) + { + _onLoggedOut(); + } + catch (Exception exception) + { + Debug.LogException(exception); + SetStatus("Не удалось обновить профиль. Сервер недоступен?", new Color(1f, 0.60f, 0.45f)); + } + finally + { + _refreshing = false; + } + } + + private void UpdateTexts() + { + _playerName.text = string.IsNullOrEmpty(_player.UserName) + ? "…" + : _player.UserName; + + _gold.text = _player.Gold.ToString(); + _dust.text = _player.Dust.ToString(); + _tokens.text = _player.Tokens.ToString(); + _ranked.text = _player.RankedMmr.ToString(); + _casual.text = _player.CasualMmr.ToString(); + + _record.text = "Матчей: " + _player.Matches + " · побед: " + _player.Wins + + " · XP: " + _player.Xp; + + _onboarding.text = _player.OnboardingCompleted + ? "Онбординг завершён: " + (_player.SelectedTrialDeckId ?? "—") + : "Онбординг не завершён: выберите стартовую триал-деку."; + + _onboardingButton.gameObject.SetActive(!_player.OnboardingCompleted); + } + + private void SetStatus(string text, Color color) + { + _status.text = text ?? string.Empty; + _status.color = color; + } + + private void OnCollectionClicked() => + SetStatus("Коллекция и разбор карт — следующий экран.", new Color(0.70f, 0.76f, 0.90f)); + + private void OnDecksClicked() => + SetStatus("Декбилдер и список колод — следующий экран.", new Color(0.70f, 0.76f, 0.90f)); + + private void OnStoreClicked() => + SetStatus("Магазин и открытие бустеров — следующий экран.", new Color(0.70f, 0.76f, 0.90f)); + + private void OnPlayClicked() + { + SetStatus( + _player.OnboardingCompleted + ? "Очередь подключим после выбора колоды." + : "Сначала завершите онбординг.", + new Color(1f, 0.76f, 0.38f)); + } + + private void OnOnboardingClicked() => + SetStatus("Выбор триал-деки подключим следующим шагом.", new Color(1f, 0.76f, 0.38f)); + + private async void OnLogoutClicked() + { + _logout.interactable = false; + await _auth.LogoutAsync(); + _logout.interactable = true; + _onLoggedOut(); + } + } +} diff --git a/client/Assets/Vanguard/Runtime/UI/MetaView.cs.meta b/client/Assets/Vanguard/Runtime/UI/MetaView.cs.meta new file mode 100644 index 0000000..dfb74d0 --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/MetaView.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 254c5fe6df971b942bde7efb1a5dab42 \ No newline at end of file diff --git a/client/Assets/Vanguard/Runtime/UI/UiKit.cs b/client/Assets/Vanguard/Runtime/UI/UiKit.cs new file mode 100644 index 0000000..578d1fd --- /dev/null +++ b/client/Assets/Vanguard/Runtime/UI/UiKit.cs @@ -0,0 +1,252 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.InputSystem.UI; +using UnityEngine.UI; + +namespace Vanguard.UI +{ + /// + /// Минимальная фабрика uGUI. Экраны собираются кодом, чтобы каркас + /// запускался без префабов и ручной сцены; позже экраны можно перевести + /// на prefab/UI Toolkit без изменения сервисов. + /// + public static class UiKit + { + private static Font _font; + + public static Font DefaultFont + { + get + { + if (_font != null) + return _font; + + _font = Resources.GetBuiltinResource("LegacyRuntime.ttf"); + if (_font == null) + _font = Resources.GetBuiltinResource("Arial.ttf"); + + return _font; + } + } + + public static Canvas CreateCanvas(string name) + { + EnsureEventSystem(); + + var go = new GameObject(name, typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); + if (Application.isPlaying) + Object.DontDestroyOnLoad(go); + + var canvas = go.GetComponent(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + canvas.sortingOrder = 0; + + var scaler = go.GetComponent(); + scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; + scaler.referenceResolution = new Vector2(1920f, 1080f); + scaler.matchWidthOrHeight = 0.5f; + + return canvas; + } + + public static void EnsureEventSystem() + { + if (Object.FindAnyObjectByType() != null) + return; + + var go = new GameObject("EventSystem", typeof(EventSystem)); + if (Application.isPlaying) + Object.DontDestroyOnLoad(go); + + var module = go.AddComponent(); + module.AssignDefaultActions(); + } + + public static RectTransform CreatePanel(Transform parent, string name, Color color) + { + var go = new GameObject(name, typeof(RectTransform), typeof(Image)); + var rect = (RectTransform)go.transform; + rect.SetParent(parent, false); + Stretch(rect); + + var image = go.GetComponent(); + image.color = color; + image.raycastTarget = true; + return rect; + } + + public static RectTransform CreateCenteredCard( + Transform parent, + string name, + Vector2 size, + Color color) + { + var rect = CreatePanel(parent, name, color); + rect.anchorMin = new Vector2(0.5f, 0.5f); + rect.anchorMax = new Vector2(0.5f, 0.5f); + rect.pivot = new Vector2(0.5f, 0.5f); + rect.anchoredPosition = Vector2.zero; + rect.sizeDelta = size; + return rect; + } + + public static VerticalLayoutGroup AddVerticalLayout( + RectTransform rect, + int padding, + int spacing) + { + var layout = rect.gameObject.AddComponent(); + layout.padding = new RectOffset(padding, padding, padding, padding); + layout.spacing = spacing; + layout.childAlignment = TextAnchor.UpperCenter; + layout.childControlWidth = true; + layout.childControlHeight = true; + layout.childForceExpandWidth = true; + layout.childForceExpandHeight = false; + return layout; + } + + public static HorizontalLayoutGroup AddHorizontalLayout( + RectTransform rect, + int padding, + int spacing) + { + var layout = rect.gameObject.AddComponent(); + layout.padding = new RectOffset(padding, padding, padding, padding); + layout.spacing = spacing; + layout.childAlignment = TextAnchor.MiddleCenter; + layout.childControlWidth = true; + layout.childControlHeight = true; + layout.childForceExpandWidth = true; + layout.childForceExpandHeight = false; + return layout; + } + + public static Text CreateText( + Transform parent, + string name, + string content, + int fontSize, + Color color, + TextAnchor alignment = TextAnchor.MiddleCenter) + { + var go = new GameObject(name, typeof(RectTransform), typeof(Text)); + var rect = (RectTransform)go.transform; + rect.SetParent(parent, false); + + var text = go.GetComponent(); + text.font = DefaultFont; + text.text = content; + text.fontSize = fontSize; + text.color = color; + text.alignment = alignment; + text.horizontalOverflow = HorizontalWrapMode.Wrap; + text.verticalOverflow = VerticalWrapMode.Overflow; + text.raycastTarget = false; + text.supportRichText = true; + + return text; + } + + public static Button CreateButton( + Transform parent, + string name, + string label, + UnityEngine.Events.UnityAction onClick, + int fontSize = 24) + { + var go = new GameObject(name, typeof(RectTransform), typeof(Image), typeof(Button)); + var rect = (RectTransform)go.transform; + rect.SetParent(parent, false); + + var image = go.GetComponent(); + image.color = new Color(0.20f, 0.42f, 0.78f, 1f); + image.raycastTarget = true; + + var button = go.GetComponent