add: README.md

This commit is contained in:
Cviat 2026-07-16 16:59:45 +03:00
commit 523d44ca1b
8 changed files with 269 additions and 242 deletions

2
.gitignore vendored
View File

@ -70,3 +70,5 @@ crashlytics-build.properties
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treaming[Aa]ssets/aa/*
.idea/

View File

@ -1,205 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="BackgroundAgentGlobalSettings">
<option name="selectedModelId" value="auto" />
</component>
<component name="ChangeListManager">
<list default="true" id="37b12283-8a0a-43da-aacd-c2755b5c992a" name="Изменения" comment="">
<change beforePath="$PROJECT_DIR$/.idea/.idea.Race_fields/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Race_fields/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/300Mind/2D Game UI Kit/Scene/Demo Scene.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/300Mind/2D Game UI Kit/Scene/Demo Scene.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/New Terrain.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/New Terrain.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/test.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/test.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/tsst.physicMaterial" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/tsst.physicMaterial.meta" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CopilotPersistence">
<persistenceIdMap>
<entry key="_C:/development/resource/unity_projects/Race_fields" value="3GRCwtOMIARCtFQezbYkJf6x6U6" />
</persistenceIdMap>
</component>
<component name="EmbeddingIndexingInfo">
<option name="cachedIndexableFilesCount" value="1" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="main" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/Assets/_Project/Art/Terrain.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/_Project/Art/Terrain/Materials.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/_Project/Art/Terrain/TerrainData.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/_Project/Art/Terrain/Textures.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/_Project/Prefabs/Environment/Terrain.meta" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.render-pipelines.universal@be00b5bbd9a1/Shaders/Terrain/TerrainLit.shader" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="McpProjectServerCommands">
<commands />
<urls />
</component>
<component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" />
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 4
}</component>
<component name="ProjectId" id="3GRCwtOMIARCtFQezbYkJf6x6U6" />
<component name="ProjectSessionTemplates">
<option name="panelTemplate">
<template>
<option name="modeId" value="file:///c%3A/snapshot/copilot-language-server-internal/dist/assets/agents/Plan.agent.md" />
<option name="model">
<model>
<option name="modelType" value="builtin_id" />
<option name="modelValue" value="auto" />
</model>
</option>
<option name="targetType" value="LOCAL" />
</template>
</option>
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
&quot;RunOnceActivity.MCP Project settings loaded&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
&quot;copilot.chat.legacySessionMetadata.migrated&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;cviat&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}</component>
<component name="RunManager" selected="Подключиться к редактору Unity.Подключиться к редактору Unity">
<configuration name="Модульные тесты (пакетный режим)" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.5.1f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath C:\development\resource\unity_projects\Race_fields -testResults Logs/results.xml -logFile Logs/Editor.log -testPlatform EditMode -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="C:\development\resource\unity_projects\Race_fields" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="ENV_FILE_PATHS" value="" />
<option name="REDIRECT_INPUT_PATH" value="" />
<option name="MIXED_MODE_DEBUG" value="0" />
<method v="2" />
</configuration>
<configuration name="Запустить Unity" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.5.1f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-projectPath C:\development\resource\unity_projects\Race_fields -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="C:\development\resource\unity_projects\Race_fields" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="ENV_FILE_PATHS" value="" />
<option name="REDIRECT_INPUT_PATH" value="" />
<option name="MIXED_MODE_DEBUG" value="0" />
<method v="2" />
</configuration>
<configuration name="Подключиться к редактору Unity" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" useMixedMode="false">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
<option name="pid" />
<option name="projectPathOnTarget" />
<option name="runtimes">
<list />
</option>
<option name="selectedOptions">
<list />
</option>
<method v="2" />
</configuration>
<configuration name="Attach to" type="UnityDevicePlayer" factoryName="UnityAttachToDevicePlayer">
<method v="2" />
</configuration>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Задача по умолчанию">
<changelist id="37b12283-8a0a-43da-aacd-c2755b5c992a" name="Изменения" comment="" />
<created>1783925238013</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1783925238013</updated>
<workItem from="1783925238814" duration="9520000" />
<workItem from="1784116617232" duration="2185000" />
<workItem from="1784178408556" duration="1250000" />
<workItem from="1784186487671" duration="4963000" />
<workItem from="1784200126756" duration="1138000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="UnityCheckinConfiguration" checkUnsavedScenes="true" />
<component name="UnityProjectConfiguration" hasMinimizedUI="true" />
<component name="UnityProjectDiscoverer">
<option name="hasUnityReference" value="true" />
<option name="unityProject" value="true" />
<option name="unityProjectFolder" value="true" />
</component>
<component name="UnityUnitTestConfiguration" currentTestLauncher="Both" />
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="FILTERS">
<map>
<entry key="branch">
<value>
<list>
<option value="origin/cviat" />
</list>
</value>
</entry>
</map>
</option>
</State>
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
<MESSAGE value="Initial commit" />
<option name="LAST_COMMIT_MESSAGE" value="" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
<properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
<option name="timeStamp" value="1" />
</breakpoint>
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
<properties exception="System.Threading.Tasks.TaskCanceledException" breakIfHandledByOtherCode="false" displayValue="System.Threading.Tasks.TaskCanceledException" />
<option name="timeStamp" value="2" />
</breakpoint>
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
<properties exception="System.Threading.ThreadAbortException" breakIfHandledByOtherCode="false" displayValue="System.Threading.ThreadAbortException" />
<option name="timeStamp" value="3" />
</breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>

View File

@ -7,17 +7,17 @@ TerrainLayer:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NewLayer
m_DiffuseTexture: {fileID: 0}
m_NormalMapTexture: {fileID: 0}
m_DiffuseTexture: {fileID: 10307, guid: 0000000000000000f000000000000000, type: 0}
m_NormalMapTexture: {fileID: 2800000, guid: a2c3f97d8a8a0054683d166f08fed9a9, type: 3}
m_MaskMapTexture: {fileID: 0}
m_TileSize: {x: 2, y: 2}
m_TileSize: {x: 20, y: 20}
m_TileOffset: {x: 0, y: 0}
m_Specular: {r: 0, g: 0, b: 0, a: 0}
m_Metallic: 0
m_Smoothness: 0
m_Smoothness: 0.424
m_NormalScale: 1
m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0}
m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1}
m_DiffuseRemapMax: {x: 0.7169812, y: 0.5299214, z: 0.21306516, w: 1}
m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0}
m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1}
m_SmoothnessSource: 1

View File

@ -13,32 +13,27 @@ MonoBehaviour:
m_Name: PC_Renderer
m_EditorClassIdentifier:
debugShaders:
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
type: 3}
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959,
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}
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
- {fileID: 5169210368067817717}
m_RendererFeatureMap: ad6b866f10d7b46cf5d0f22d71b9bc47
xrSystemData: {fileID: 0}
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
m_AssetVersion: 2
m_AssetVersion: 3
m_PrepassLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 4294967295
@ -56,11 +51,28 @@ MonoBehaviour:
m_RenderingMode: 2
m_DepthPrimingMode: 0
m_CopyDepthMode: 0
m_DepthAttachmentFormat: 0
m_DepthTextureFormat: 0
m_AccurateGbufferNormals: 0
m_IntermediateTextureMode: 0
m_TileOnlyMode: 0
--- !u!114 &5169210368067817717
MonoBehaviour:
m_ObjectHideFlags: 1
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: e32e72b6a3f58a24c9033e2b9275eea0, type: 3}
m_Name: ScreenSpaceShadows
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ScreenSpaceShadows
m_Active: 1
m_Shader: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, type: 3}
--- !u!114 &7833122117494664109
MonoBehaviour:
m_ObjectHideFlags: 0
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
@ -84,12 +96,3 @@ MonoBehaviour:
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}

View File

@ -159,7 +159,7 @@ TerrainCollider:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 765191281}
m_Material: {fileID: 0}
m_Material: {fileID: 13400000, guid: fde663cc303af38428fced16ed2ec0d1, type: 2}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
@ -505,6 +505,133 @@ MonoBehaviour:
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!1 &1735981100
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1735981103}
- component: {fileID: 1735981102}
- component: {fileID: 1735981101}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1735981101
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1735981100}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_CustomShadowLayers: 0
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
m_RenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_ShadowRenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_Version: 4
m_LightLayerMask: 1
m_ShadowLayerMask: 1
m_RenderingLayers: 1
m_ShadowRenderingLayers: 1
--- !u!108 &1735981102
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1735981100}
m_Enabled: 1
serializedVersion: 13
m_Type: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize2D: {x: 0.5, y: 0.5}
m_Shadows:
m_Type: 1
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: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ForceVisible: 0
m_ShapeRadius: 0.025
m_ShadowAngle: 0
m_LightUnit: 1
m_LuxAtDistance: 1
m_EnableSpotReflector: 1
--- !u!4 &1735981103
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1735981100}
serializedVersion: 2
m_LocalRotation: {x: 0.4066569, y: 0, z: 0, w: 0.913581}
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: 47.99, y: 0, z: 0}
--- !u!146 &1899711170 stripped
WheelCollider:
m_CorrespondingSourceObject: {fileID: 8455356023009735661, guid: 1c6eef4db4f06c940a02fc3a54abcaab, type: 3}
@ -522,3 +649,4 @@ SceneRoots:
- {fileID: 765191284}
- {fileID: 1186595579}
- {fileID: 829907302}
- {fileID: 1735981103}

BIN
Docs/cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 KiB

99
README.md Normal file
View File

@ -0,0 +1,99 @@
# Race Fields
![Race Fields](Docs/cover.png)
Race Fields - Unity-проект аркадной гонки в полевом сеттинге. Основная заготовка проекта строится вокруг управляемого багги, камеры третьего лица, заготовок игровых режимов, усилений, оружия, VR/arcade cabinet модулей и структуры для дальнейшего наполнения трассами, префабами и данными.
## Требования
- Unity `6000.5.1f1`
- Universal Render Pipeline `17.5.0`
- Input System `1.19.0`
- Unity Test Framework `1.7.0`
Версия Unity зафиксирована в `ProjectSettings/ProjectVersion.txt`, зависимости - в `Packages/manifest.json`.
## Быстрый старт
1. Откройте корень проекта в Unity Hub.
2. Используйте Unity `6000.5.1f1` или совместимую версию Unity 6.
3. Откройте сцену `Assets/_Project/Scenes/Demo Scene.unity`.
4. Запустите Play Mode.
Базовое управление багги:
- `W` / `Up Arrow` - газ
- `S` / `Down Arrow` - назад
- `A` / `Left Arrow` - поворот влево
- `D` / `Right Arrow` - поворот вправо
- `Space` - тормоз
## Основные сцены
- `Assets/_Project/Scenes/Demo Scene.unity` - рабочая демо-сцена проекта.
- `Assets/Scenes/SampleScene.unity` - стандартная примерная сцена Unity, оставлена отдельно от основной структуры проекта.
## Структура проекта
```text
Race_fields/
+-- Assets/
| +-- _Project/ # основной код и ресурсы игры
| | +-- Art/ # визуальные ассеты: модели, материалы, текстуры, UI, VFX, terrain
| | +-- Audio/ # музыка, звуковые эффекты и голосовые ассеты
| | +-- Prefabs/ # игровые префабы: техника, камеры, окружение, UI, оружие, VFX
| | +-- Scenes/ # основные сцены проекта
| | +-- ScriptableObjects/ # игровые настройки и данные: режимы, трассы, транспорт, оружие
| | +-- Scripts/ # C#-код проекта
| | +-- Settings/ # настройки Addressables, билда, ввода, физики и рендера
| | +-- Tests/ # EditMode и PlayMode тесты
| | +-- ThirdParty/ # сторонние ассеты, которые относятся к проекту
| +-- 300Mind/ # импортированный 2D Game UI Kit
| +-- Scenes/ # стандартные/вспомогательные сцены Unity
| +-- Settings/ # общие настройки ассетов Unity
| +-- TutorialInfo/ # стандартные tutorial-ассеты Unity
| +-- _Recovery/ # восстановленные/резервные ассеты Unity
+-- Docs/ # изображения и материалы для документации
+-- Packages/ # Unity Package Manager manifest и lock-файлы
+-- ProjectSettings/ # настройки проекта Unity
+-- UserSettings/ # локальные настройки редактора
+-- Logs/ # локальные логи Unity
+-- Library/ # кеш Unity, не хранится в репозитории
+-- Temp/ # временные файлы Unity
+-- obj/ # временные файлы сборки IDE/.NET
```
## Код
Код проекта хранится в `Assets/_Project/Scripts/` и разделен по игровым подсистемам:
- `Vehicles/` - управление транспортом, колеса, мотор, подвеска и визуальная синхронизация.
- `Camera/` - камеры игры, включая `BuggyFollowCamera` для камеры третьего лица.
- `Input/` - ввод для клавиатуры/геймпада, AI, VR и arcade cabinet.
- `GameFlow/` - сессии, состояния игры и будущая машина состояний.
- `GameModes/` - режимы игры: arena, challenges, survival race, tournament.
- `PowerUps/` - усиления: boost, repair, shield и специальные эффекты.
- `Weapons/` - оружие, ракеты, мины, шок-эффекты и targeting.
- `Damage/` - урон, разрушаемые объекты и эффекты повреждений.
- `Harvesters/` - логика комбайнов/сборщиков, AI, звук и визуальная часть.
- `World/` - трассы, чекпоинты, hazards, spawners и сегменты мира.
- `UI/` - HUD, меню, гараж, результаты и операторская панель.
- `VR/` - VR rig, комфорт и калибровка.
- `ArcadeCabinet/` - модули для аркадного автомата: hardware, payments, diagnostics, calibration.
- `Editor/` - редакторские инструменты, включая сборку префабов багги.
- `Core/`, `Data/`, `Utilities/` - общие сервисы, данные и вспомогательные классы.
## Полезные редакторские инструменты
В проекте есть editor-команда:
```text
Race Fields/Setup/Rebuild Buggy Prefab
```
Она пересобирает префаб багги `Assets/_Project/Prefabs/Vehicles/Player/Buggy_Player.prefab`, настраивает физику колес и обновляет префаб камеры `Assets/_Project/Prefabs/Cameras/Buggy_ThirdPersonCamera.prefab`.
## Документация и ассеты README
- `README.md` - основное описание проекта.
- `Docs/cover.png` - изображение, используемое в шапке README.