5 Commits
Author SHA1 Message Date
ThomasCharester e856478aff Проверить фикс утечки памяти 2026-03-24 18:05:48 +03:00
ThomasCharester 320847af5b Нашёл причину утечки памяти 2026-03-24 15:16:17 +03:00
ThomasCharester 60c28f54f2 Миксер
Почини интерфейс
2026-03-23 23:59:32 +03:00
ThomasCharester 1aceea1b79 Platformer level management 2026-03-23 12:01:33 +03:00
ThomasCharester 72070901ec HealthReworkFuckMojMozg 2026-03-22 10:32:07 +03:00
340 changed files with 14267 additions and 19032 deletions

No files matched your search

+244 -59
View File
@@ -5,48 +5,238 @@
</component>
<component name="ChangeListManager">
<list default="true" id="7a4e4e1b-6c5f-4c8d-968e-512e90aa8c7c" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEntitySettings.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEntitySettings.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Spawners.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Player/Player.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Player/Player.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AICarDriver.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AICarDriver.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIDebugRacer.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacer.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacer.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacerID.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacerID.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Agent.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Agent.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/AgentBehaviour.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/AgentBehaviour.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Flee.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Flee.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Pursue.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Pursue.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Seek.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Seek.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Steering.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Steering.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotator.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotator.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/CarControllerRB.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/CarControllerRB.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarController.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarController.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarInput.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarInput.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRBCarController.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRBCarController.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRacer.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRacer.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Racer.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Racer.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerSettings.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerSettings.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerType.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerType.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacistSpawnListDebug.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacistSpawnListDebug.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor/CheckPointAsset.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/WellEditor/CheckPointAsset.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/EventBus/EventBus.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/EventBus/EventBus.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/UIPanelEventsGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/UIPanelEventsGenerator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneId.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneId.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/New Palette.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/New Palette.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/CarTry.fbx" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/CarTry.fbx.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/CarTry.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/CarTry.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car001.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car001.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car005.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car005.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car006.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car006.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car007.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car007.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car008.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car008.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car_Scene.fbx" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car_Scene.fbx.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car_Scene.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/source/Sport_Car_Scene.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Gas_can.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Gas_can.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Mine_Mine_BaseColor.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Mine_Mine_BaseColor.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Obstacles.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Obstacles.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Ramp.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Ramp.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Road_edge.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Road_edge.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Rocket.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Rocket.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Seats_Seats_BaseColor.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Seats_Seats_BaseColor.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Blue.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Blue.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Green.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Green.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Purple.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Purple.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Red.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Red.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Yellow.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Sport_Car_Base_color_Yellow.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Tileable_Aspalth.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Cars/textures/Tileable_Aspalth.png.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Configs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/DamnTerrain.mat" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/DamnTerrain.mat.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/NewLayer.terrainlayer" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/NewLayer.terrainlayer.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Texturelabs_Concrete_137S.jpg" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Race/Texturelabs_Concrete_137S.jpg.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Bee.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Bee.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Boar.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Boar.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Cinemachine2DFollower.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Cinemachine2DFollower.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Snail.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Snail.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioInfoConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioInfoConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Scenes/Gameplay.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Scenes/Gameplay.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Scenes/SoundTest.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Configs/Scenes/SoundTest.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer 2.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer 2.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer 3.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer 3.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Configs/Scenes/Platformer.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIGreen.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIGreen.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIRed.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIRed.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/Player.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/Player.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Player.physicMaterial" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Player.physicMaterial.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerCounter.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerCounter.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerRacist.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerRacist.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerSceneChoose.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerSceneChoose.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerScores.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerScores.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerScores.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerScores.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1) 1.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1) 1.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1).prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1).prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/ThirdPersonConfig.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/ThirdPersonConfig.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/VFXCheckpoint.mat" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/VFXCheckpoint.mat.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/WinScreen.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/WinScreen.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/WinScreen.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/WinScreen.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay/NavMesh-NavMesh Surface.asset" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay/NavMesh-NavMesh Surface.asset.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/SoundTest.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/SoundTest.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/UITest.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/UITest.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/TextMesh Pro/Resources/Fonts &amp; Materials/LiberationSans SDF - Fallback.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/TextMesh Pro/Resources/Fonts &amp; Materials/LiberationSans SDF - Fallback.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioMixerConfigConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioMixerConfigConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourceSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourceSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CanvasSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/CanvasSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.PlayerScoreCounterEvents.Generated.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.PlayerScoreCounterEvents.Generated.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.PlayerScoresEvents.Generated.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.PlayerScoresEvents.Generated.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.WinScreenEvents.Generated.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Example.Race.UI.WinScreenEvents.Generated.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LoadingPanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LoadingPanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LogoPanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LogoPanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.MenuChoosePanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.MenuChoosePanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEntitySettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEntitySettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerPlayerSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerPlayerSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/RacerSettingsConfig.Generated.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/UIPanelSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/UIPanelSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/VolumeSettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/VolumeSettingsConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Packages/manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/manifest.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Packages/packages-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/packages-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/ScriptableBuildPipeline.json" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ScriptableBuildPipeline.json" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -57,12 +247,18 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Level/LevelEndTrigger.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.cysharp.unitask@a85b92a8e443/Runtime/UniTaskScheduler.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Generics/DisposableCollection.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.kyrylokuzyk.primetween@475cad00cbdc/Runtime/Internal/PrimeTweenManager.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.kyrylokuzyk.primetween@475cad00cbdc/Runtime/Internal/TweenData.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.kyrylokuzyk.primetween@475cad00cbdc/Runtime/Tween.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.addressables@8460f1c9c927/Runtime/ResourceManager/AsyncOperations/AsyncOperationHandle.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/1eb9db207454431c84a47bcd81e79c3746ae00/50/ee0759d6/Dictionary`2.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/41d29b352f6a475ab1bf7c6628b8279046ae00/ae/12c455a1/String.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/41d29b352f6a475ab1bf7c6628b8279046ae00/bb/29b6bce2/ParamsArray.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/493b407efcb64dddad59f28bb0b831d3212400/94/af20347f/Object.cs" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="ProjectColorInfo">{
@@ -77,6 +273,7 @@
&quot;keyToString&quot;: {
&quot;Attach to Unity Editor.Attach to Unity Editor.executor&quot;: &quot;Debug&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;XThreadsFramesViewSplitterKey&quot;: &quot;0.48350254&quot;,
&quot;git-widget-placeholder&quot;: &quot;NotLiminalPCG&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
@@ -88,7 +285,7 @@
}</component>
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
<configuration name="Standalone Player" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="$PROJECT_DIR$/../../Builds/Logo\Infratest.exe" />
<option name="EXE_PATH" value="$PROJECT_DIR$/../../Builds/Infra2\Infratest.exe" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="A:\Builds\Logo" />
<option name="PASS_PARENT_ENVS" value="1" />
@@ -96,7 +293,7 @@
<method v="2" />
</configuration>
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.10f1\Editor\Unity.exe" />
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.11f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-projectPath A:\Projects\Infra -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="A:\Projects\Infra" />
<option name="PASS_PARENT_ENVS" value="1" />
@@ -104,7 +301,7 @@
<method v="2" />
</configuration>
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.10f1\Editor\Unity.exe" />
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\6000.3.11f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath A:\Projects\Infra -testResults Logs/results.xml -logFile Logs/Editor.log -testPlatform EditMode -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="A:\Projects\Infra" />
<option name="PASS_PARENT_ENVS" value="1" />
@@ -121,10 +318,10 @@
</option>
<method v="2" />
</configuration>
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="3836">
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
<option name="pid" value="3836" />
<option name="pid" />
<option name="projectPathOnTarget" />
<option name="selectedOptions">
<list />
@@ -155,6 +352,13 @@
<workItem from="1773044760422" duration="3994000" />
<workItem from="1773048811603" duration="11294000" />
<workItem from="1773135989680" duration="4838000" />
<workItem from="1774165614280" duration="12483000" />
<workItem from="1774180394446" duration="1853000" />
<workItem from="1774211984885" duration="4696000" />
<workItem from="1774251299872" duration="4766000" />
<workItem from="1774257142351" duration="226000" />
<workItem from="1774340674565" duration="3991000" />
<workItem from="1774349307766" duration="1289000" />
</task>
<servers />
</component>
@@ -171,23 +375,4 @@
<component name="VcsManagerConfiguration">
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
<line>68</line>
<properties documentPath="A:\Projects\Infra\Assets\Code\Example\Platformer\PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'Dispose'">
<startOffsets>
<option value="2442" />
</startOffsets>
<endOffsets>
<option value="2491" />
</endOffsets>
</properties>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>
+95 -23
View File
@@ -5,12 +5,62 @@
</component>
<component name="ChangeListManager">
<list default="true" id="ed1a3c4f-83ac-4211-ae32-004a26afd5d8" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/PlayerCollisionDamager.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/PlayerCollisionDamager.cs.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Spawners.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infratest/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infratest/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AddressableAssetSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Boar.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Boar.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Snail.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Snail.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/EntityHealth.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/EntityHealth.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerPlayerFactory.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioGroupType.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioGroupType.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/Attributes.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/UIPanelEventsGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Generators/UIPanelEventsGenerator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings/Loading.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Loadings/Loading.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Platformer.mixer" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Platformer.mixer.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Audio/MainMixer.mixer" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Audio/MainMixer.mixer" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Assets/Tiles.aseprite.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Assets/Tiles.aseprite.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/New Palette.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/New Palette.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/SystemConfigsReferences.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Characters/Enemies/Snail.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Characters/Enemies/Snail.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer 2.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer 2.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer 3.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer 3.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioMixer.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioMixer.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/AudioSourcePrefabConfig.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LoadingPanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LoadingPanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LogoPanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.LogoPanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.MenuChoosePanelEvents.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/Code.Infrastructure.UI.Panels.MenuChoosePanelEvents.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Packages/manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/manifest.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Packages/packages-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/packages-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectVersion.txt" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -31,10 +81,14 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/30cb9806a8774f11bb35ea6b11076cb4110400/9e/e04a9ad9/Enumerable.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6a608067b36b43a4b2b9c2c9f46aac8b212200/95/3a3a110c/Vector3.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6a608067b36b43a4b2b9c2c9f46aac8b212200/ed/c16ca097/Vector2.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/e605204d165a49d89ae7579f3d894429468c00/50/2dbfce57/Dictionary`2.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/e605204d165a49d89ae7579f3d894429468c00/c2/98fb18b9/List`1.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/BeeRadar.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/PlayerCollisionDamager.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Snail.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Entity.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/EntityGUID.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlatformerEnemyFactory.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/PlayerEntity.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Platformer/Level/PlatformerLevelData.cs" root0="FORCE_HIGHLIGHTING" />
@@ -85,6 +139,7 @@
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Core/Container.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Core/ContainerBuilder.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Core/IInstaller.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Generics/DisposableCollection.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/ConstructorInjector.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
</component>
@@ -115,7 +170,7 @@
}</component>
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.10f1/Editor/Unity" />
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.11f1/Editor/Unity" />
<option name="PROGRAM_PARAMETERS" value="-projectPath A:\Projects\Infratest -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="A:\Projects\Infratest" />
<option name="PASS_PARENT_ENVS" value="1" />
@@ -135,7 +190,7 @@
<method v="2" />
</configuration>
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.10f1/Editor/Unity" />
<option name="EXE_PATH" value="$USER_HOME$/Unity/Hub/Editor/6000.3.11f1/Editor/Unity" />
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath A:\Projects\Infratest -testResults Logs/results.xml -logFile Logs/Editor.log -testPlatform EditMode -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="A:\Projects\Infratest" />
<option name="PASS_PARENT_ENVS" value="1" />
@@ -180,13 +235,15 @@
</option>
<method v="2" />
</configuration>
<configuration name="Attach to Unity Editor" 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">
<configuration name="Attach to Unity Editor" 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" ignored-value-for-modified-check="4065">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
<option name="pid" />
<option name="pid" value="4065" />
<option name="projectPathOnTarget" />
<option name="runtimes">
<list />
<list>
<MonoRuntime />
</list>
</option>
<option name="selectedOptions">
<list />
@@ -291,7 +348,9 @@
<workItem from="1771429673395" duration="3644000" />
<workItem from="1771433586006" duration="1485000" />
<workItem from="1773065611992" duration="4340000" />
<workItem from="1773758943752" duration="396000" />
<workItem from="1773758943752" duration="4321000" />
<workItem from="1774269975923" duration="8600000" />
<workItem from="1774282412199" duration="7290000" />
</task>
<servers />
</component>
@@ -325,30 +384,43 @@
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
<line>45</line>
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'OnContainerBuild'">
<line>68</line>
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'Dispose'">
<startOffsets>
<option value="1817" />
<option value="1914" />
</startOffsets>
<endOffsets>
<option value="1840" />
</endOffsets>
</properties>
<option name="timeStamp" value="75" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs</url>
<line>51</line>
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerSceneInstaller.cs" containingFunctionPresentation="Method 'PlatformerEnemyFactoryInitialized'">
<startOffsets>
<option value="1967" />
</startOffsets>
<endOffsets>
<option value="1991" />
<option value="1963" />
</endOffsets>
</properties>
<option name="timeStamp" value="77" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs</url>
<line>24</line>
<properties documentPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" containingFunctionPresentation="Method 'OnEnterState'">
<startOffsets>
<option value="857" />
</startOffsets>
<endOffsets>
<option value="882" />
</endOffsets>
</properties>
<option name="timeStamp" value="83" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs</url>
<line>69</line>
<properties documentPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" containingFunctionPresentation="Method 'OnExitState'">
<startOffsets>
<option value="2201" />
</startOffsets>
<endOffsets>
<option value="2254" />
</endOffsets>
</properties>
<option name="timeStamp" value="84" />
</line-breakpoint>
<breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
<properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
<option name="timeStamp" value="62" />
@@ -13,4 +13,7 @@ MonoBehaviour:
m_Name: AddressableAssetGroupSortSettings
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.AddressableAssetGroupSortSettings
sortOrder:
- 952fa753cff242529845c3df21690cd6
- ca92c08b019588d4aae558d0ff215daf
- 4d0e6e328b993834280aefa5514ffb63
- d790534e015d692428ac5a9ce7d2ceb6
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: d790534e015d692428ac5a9ce7d2ceb6
m_currentHash:
serializedVersion: 2
Hash: 6ac6f4ebd726e03a1c07efe42bb1b362
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -55,12 +55,15 @@ MonoBehaviour:
m_Id:
m_RemoteCatalogLoadPath:
m_Id:
m_ContentStateBuildPathProfileVariableName:
m_ContentStateBuildPathProfileVariableName: <default settings path>
m_CustomContentStateBuildPath:
m_ContentStateBuildPath:
m_BuildAddressablesWithPlayerBuild: 0
m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]'
m_GroupAssets:
- {fileID: 11400000, guid: 474eae8d8cac07b49a71a36bddcfea71, type: 2}
- {fileID: 11400000, guid: bd1a450260484850da61f533f9b6b17a, type: 2}
- {fileID: 11400000, guid: 6572d621368709a22b1df7ea0d26c1df, type: 2}
- {fileID: 11400000, guid: cd5d8f0bccfc1e5489a5c528087c4feb, type: 2}
m_BuildSettings:
m_LogResourceManagerExceptions: 1
@@ -15,115 +15,42 @@ MonoBehaviour:
m_GroupName: Default Local Group
m_GUID: d790534e015d692428ac5a9ce7d2ceb6
m_SerializeEntries:
- m_GUID: 00279b1c6fbb7ac80868388a292b0c44
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0d2cf1d8a32701f56851c8b734cf7928
m_Address: Assets/Resources_moved/UI/Panels/PlayerCounter.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0eb645a0c96b1c437bf0712d6b856b7c
m_Address: Assets/Resources_moved/Example/Platformer/Bee.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0f5388dd5b953e74281733a43c9bca5a
m_Address: Audio/UI/01. Wake Up, Get Up, Get Out There
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 10228ea17914708e586b8da1daae92ec
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlatformerCamera.asset
m_ReadOnly: 0
m_SerializedLabels:
- CameraConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 13852bf3f3ccace4e9deefd844eebb23
m_Address: Assets/Resources_moved/UI/Panels/LoadingPanel.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 14e849600b64a5a498f121440eebefd2
m_Address: Assets/Resources_moved/Configs/UI/PlayerSceneChoose.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 17c5e56eb6c99db40b6093c9d543bb4f
m_Address: Assets/Resources_moved/Configs/UI/CanvasSettingsConfig.asset
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1983ca5906382590d9638c6c751d8571
m_Address: Assets/Resources_moved/Audio/UI/launch_dnmenu1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1dca3345d7b309d70a26b3f646ccad08
m_Address: Assets/Resources_moved/Example/Platformer/CinemachineCamera.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2044ec9a33380e7239855e26a9d8bcc5
m_Address: Assets/Resources_moved/Audio/UI/launch_selectmenu.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 234ab51636edcbab88dbadfdb7fbfe65
m_Address: Example/Platformer/Characters/Player/Player
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2471ee3760db4ecfe8c313bb2c00daf0
m_Address: Assets/Resources_moved/Configs/Audio/Audio Source.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 292439c50bbcbb638889b0959c637d18
m_Address: Example/Platformer/Configs/Platformer
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 29779120ceccabb0ab008e48b44a39f4
m_Address: Example/Race/Configs/AIBot
m_ReadOnly: 0
m_SerializedLabels:
- RacerConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2e29259ec1cd556c6a33f0396d8f90e2
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchUpMenu.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2f99b96d93cb35086b74d1b8c4111f90
m_Address: Assets/Resources_moved/Example/Race/SceneChooser.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 30778c5a4d5c3f74bac4e5340344cdad
m_Address: Assets/Resources_moved/Configs/Volumes/MenuRetro.asset
m_ReadOnly: 0
m_SerializedLabels:
- PostProccessVolume
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3a4a23e1c0a57dd49b451aa86b9baa3a
m_Address: Assets/Resources_moved/Configs/Scenes/SoundTest.asset
- m_GUID: 38081c3b5216d4c329cc1cec80b1818c
m_Address: Assets/Resources_moved/Configs/Audio/AudioMixerConfig.asset
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3f2b0a19832dd31578147a7bb53cf931
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/GroundLayerMask.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 456d3ecaf92ca5a4a817184de151ad9f
m_Address: Assets/Resources_moved/Camera/CinemachineCameraCarFollow.prefab
@@ -136,12 +63,6 @@ MonoBehaviour:
m_SerializedLabels:
- CameraConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4ad92ea93f2a0664191607510b1b623d
m_Address: Assets/Resources_moved/Configs/Scenes/Gameplay.asset
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4bf97e6c7f046f849912182e4ded6c9e
m_Address: Assets/Resources_moved/Configs/Audio/Settings/AudioSourceSettingsConfig
1.asset
@@ -149,11 +70,6 @@ MonoBehaviour:
m_SerializedLabels:
- AudioSettingsConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4c9ce2b91ab2587cf8279e7d743d348b
m_Address: Assets/Resources_moved/Audio/UI/613916__drni__solar-inverter-humming-static-noise.flac
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4fcdb7f979b60194db1fb5c03b81bf8c
m_Address: UI/Panels/LoadingPanel
m_ReadOnly: 0
@@ -165,104 +81,35 @@ MonoBehaviour:
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 55c3ef7828ec424a59b3d4ceb1cdaece
m_Address: Assets/Resources_moved/Audio/UI/launch_upmenu1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 55ccf07d7c51c2a409a42ddcda3b3b30
m_Address: Assets/Resources_moved/Configs/UI/WinScreen.asset
m_ReadOnly: 0
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 62388720cc90ef87f9d8ed5328dbc6fe
m_Address: Assets/Resources_moved/Configs/Audio/AudioInfoConfig.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 670b67ade842b46af81fee330d074f9f
m_Address: Assets/Resources_moved/Audio/UI/buttonclickrelease.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 69e720c0a88f4f9499af76a887cd9fdf
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Player.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6a86e03165bcd491ba987514d0da38bd
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchSelect1.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6c22f498979461d3ea35e12a19f9be78
m_Address: Assets/Resources_moved/Example/Race/PlayerScores.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 749408a9b44d2581783d04d903ec0f72
m_Address: Assets/Resources_moved/Audio/UI/valve_sound.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 77a268730c52ad461920f3459fdda1a0
m_Address: Assets/Resources_moved/Example/Platformer/Snail.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 78f36de38978ecc0a9d9dff2ca9cf488
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7a5ae0cc826b85108aa9f0681d7f85cc
m_Address: Assets/Resources_moved/Example/Race/Configs/AIRed.asset
m_ReadOnly: 0
m_SerializedLabels:
- RacerConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7eaa3bbea72a3b313878e71bc992c5fd
m_Address: Assets/Resources_moved/Audio/UI/launch_select2.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 86d0b6ef35383e7409df5a352637fea7
m_Address: UI/Panels/SceneSelectPanel
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 89a9e669f83bef966b15cdd2da6d4f77
m_Address: Assets/Resources_moved/Audio/UI/buttonrollover.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8fdc11fcf9c4c2e279902e8d1b6df718
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/ButtonClickRelease.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9472c0e087e023ce9b93dfc75ffff25b
m_Address: Assets/Resources_moved/Audio/UI/buttonclick.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 95e6f3e122b08b58e96fe087fb5ce397
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchDownMenu.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9e77251929568a7c0806d17b11af8afb
m_Address: Assets/Resources_moved/Example/Race/PlayerRacist.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a63ae4e1d4b750b8a819dbadffa4b9f7
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/launchSelect2.asset
m_ReadOnly: 0
@@ -280,12 +127,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b93ef12d9a22d9b65ba68c45742f73a3
m_Address: Assets/Resources_moved/Configs/Camera/ThirdPersonConfig.asset
m_ReadOnly: 0
m_SerializedLabels:
- CameraConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: becf493a34b841e4d8ea927261a05e9b
m_Address: Camera/Camera
m_ReadOnly: 0
@@ -301,22 +142,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cbab6f2c86f23fd48b3ec4b8885b9889
m_Address: Assets/Scenes/SoundTest.unity
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cc76fd76d78cd364880ebe8330a05834
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Enemies.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d0a994964f42e0c0dad3da32f7b52c90
m_Address: Assets/Resources_moved/Example/Platformer/Boar.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d2750e654bd192d41a48144c43b41302
m_Address: Assets/Resources_moved/Configs/UI/Logo.asset
m_ReadOnly: 0
@@ -334,16 +159,6 @@ MonoBehaviour:
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d9b04c3e60dd01e77807be9f484d8e82
m_Address: Assets/Resources_moved/Audio/UI/launch_select1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: df809fbbdc1f51f43b4d42a7896a0919
m_Address: Assets/Scenes/Gameplay.unity
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e1fbe5b2798657342b569f723d16c9de
m_Address: UI/Canvas
m_ReadOnly: 0
@@ -360,28 +175,12 @@ MonoBehaviour:
m_SerializedLabels:
- UIPanelConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: eb48bfdd161d536498ed1b2810fa476e
m_Address: Example/Race/Racist (1)
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ec0362c4c0d045cccbe89aee2231c3be
m_Address: Assets/Resources_moved/Configs/Audio/Settings/AudioSourceSettingsConfig.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioSettingsConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ef1b55458defd6ca99e4006b21b9cb02
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f281706c5b7913f43891c237c5210d40
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlayerSettings.asset
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f5d189d2c8569c2489fe942137ea0f24
m_Address: Assets/Resources_moved/Camera/CinemachineCamera.prefab
m_ReadOnly: 0
@@ -393,28 +192,12 @@ MonoBehaviour:
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f60baf3e133aa2644a106742a1f2c2fb
m_Address: Assets/Resources_moved/Example/Race/WinScreen.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f75fc43e1e6bd3ca5b4c90a98a790033
m_Address: Example/Platformer
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f7cebe94899e9257497d042d1ec4fd76
m_Address: Assets/Resources_moved/Configs/Audio/Infos/UI/ButtonRollOver.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f8c793cd022fab58682fadd51648a3c1
m_Address: Example/Race/Configs/Player
m_ReadOnly: 0
m_SerializedLabels:
- RacerConfig
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: c6c4cec5a69c4d144a5dfabd0405f447, type: 2}
m_SchemaSet:
@@ -0,0 +1,48 @@
%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: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Duplicate Asset Isolation
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
m_GroupName: Duplicate Asset Isolation
m_GUID: 4d0e6e328b993834280aefa5514ffb63
m_SerializeEntries:
- m_GUID: 13c02b14c4d048fa9653293d54f6e0e1
m_Address: Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Unlit-Default.shader
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 36e335017ad71d54fbb10842863188ae
m_Address: Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/FallbackShader.shader
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 933532a4fcc9baf4fa0491de14d08ed7
m_Address: Packages/com.unity.render-pipelines.universal/Shaders/Lit.shader
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9dfc825aed78fcd4ba02077103263b40
m_Address: Packages/com.unity.render-pipelines.universal/Runtime/Materials/Sprite-Unlit-Default.mat
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e6e9a19c3678ded42a3bc431ebef7dbd
m_Address: Packages/com.unity.render-pipelines.universal/Shaders/Utils/FallbackError.shader
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: c6c4cec5a69c4d144a5dfabd0405f447, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: b7a101d996c2e9642a8382b9484b7688, type: 2}
- {fileID: 11400000, guid: 81a10561aabdb45419c7e5c285e2552f, type: 2}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7a5ae0cc826b85108aa9f0681d7f85cc
guid: 474eae8d8cac07b49a71a36bddcfea71
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -0,0 +1,247 @@
%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: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: PlatformerGroup
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
m_GroupName: PlatformerGroup
m_GUID: ca92c08b019588d4aae558d0ff215daf
m_SerializeEntries:
- m_GUID: 00279b1c6fbb7ac80868388a292b0c44
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Snail.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0eb645a0c96b1c437bf0712d6b856b7c
m_Address: Assets/Resources_moved/Example/Platformer/Bee.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 10228ea17914708e586b8da1daae92ec
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlatformerCamera.asset
m_ReadOnly: 0
m_SerializedLabels:
- CameraConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1dca3345d7b309d70a26b3f646ccad08
m_Address: Assets/Resources_moved/Example/Platformer/CinemachineCamera.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1e1fce0a447e4524eb3c7e8b0ec71c7c
m_Address: Assets/Resources_moved/Example/Platformer/Platformer 2.unity
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1ffad73500b8c4a46b36468ab4d5c56c
m_Address: Assets/Resources_moved/Example/Platformer/Platformer 3.unity
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 20b79feef28c6924f99d43b2d66b79ac
m_Address: Assets/Resources_moved/Example/Platformer/Audio/get2.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 22d559d7081d98649a627ca74e5e26d3
m_Address: Assets/Resources_moved/Example/Platformer/Audio/crush.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 234ab51636edcbab88dbadfdb7fbfe65
m_Address: Example/Platformer/Characters/Player/Player
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 292439c50bbcbb638889b0959c637d18
m_Address: Example/Platformer/Configs/Platformer
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2f48f0019cce4a047bb5878796f90316
m_Address: Example/Platformer/Audio/With_S2
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 35af072d3b1b6cf4688cd843ea8619ef
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/EnemyDeath
1.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 377250e1c2c80e20db7a825b90f8c4a1
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/Music1.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3f2b0a19832dd31578147a7bb53cf931
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/GroundLayerMask.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4433c918bf5643cd9a4b83ccdd369779
m_Address: "Assets/Resources_moved/Example/Platformer/Audio/35. \u306F\u3063\u305F\u308C\u4E94\u53F3\u885B\u9580.mp3"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4b5011c8b31164d418f96afe213172ce
m_Address: Example/Platformer/Audio/stare
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4e1c17d1e33b9994891321c0ef47c179
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/Hit.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 69e720c0a88f4f9499af76a887cd9fdf
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Player.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6a787ed54bab3244cacb4a73ebe09691
m_Address: Example/Platformer/Audio/staticend2
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6d3fc61919b807d0da6d9625d6c7ccb8
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/GotDamage.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7247c8f09e5f00b889ed31f15a5099e6
m_Address: "Assets/Resources_moved/Example/Platformer/Audio/36. \u30D7\u30ED\u30B4\u30EB\u30D5\u30A1\u30FC\u733F\u7530\u5F66.mp3"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 74a3a6c4ec774af4fa370074bfd17c40
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/Death.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 77a268730c52ad461920f3459fdda1a0
m_Address: Assets/Resources_moved/Example/Platformer/Snail.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 78f36de38978ecc0a9d9dff2ca9cf488
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Boar.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 79588608023cfce47b4005cea63a8396
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Platformer 3.asset
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 79892e8ea650c864fa8eb1184556cb42
m_Address: Assets/Resources_moved/Example/Platformer/Audio/insuit.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7d8290233b2e82e4e9a8f85ca8b2e26d
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/GameEnd.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 865efba1bf0303b46ad5262bd945e4bd
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/EnemyDeath.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8d4c5cacc797c0e45ae5f7f467619e98
m_Address: Assets/Resources_moved/Example/Platformer/Audio/jump2.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9fa1fde1ddb533d4b8f4a758cc83a696
m_Address: Assets/Resources_moved/Example/Platformer/Audio/laugh.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c98ca8f1bfb12944db084a76779f68f0
m_Address: Example/Platformer/Audio/COMPUTER_DIGITAL_L2076605
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cbab0864467bc624caa2e614a126d198
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Platformer 2.asset
m_ReadOnly: 0
m_SerializedLabels:
- SceneConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cc76fd76d78cd364880ebe8330a05834
m_Address: Assets/Resources_moved/Example/Platformer/Configs/LayerMasks/Enemies.asset
m_ReadOnly: 0
m_SerializedLabels:
- LayerMaskConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d0a994964f42e0c0dad3da32f7b52c90
m_Address: Assets/Resources_moved/Example/Platformer/Boar.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d6dea95659be7f90294dfefb3c4c9791
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Audio/Music2.asset
m_ReadOnly: 0
m_SerializedLabels:
- AudioInfoConfig
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ed92a969702a16c4e812b41bbb8ec1b9
m_Address: Assets/Resources_moved/Example/Platformer/Audio/deepbreaths.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ee1bcba8581e635469885eb08401a519
m_Address: Assets/Resources_moved/Example/Platformer/Audio/get.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ef1b55458defd6ca99e4006b21b9cb02
m_Address: Assets/Resources_moved/Example/Platformer/Configs/Enemies/Bee.asset
m_ReadOnly: 0
m_SerializedLabels:
- PlatformerEntity
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f281706c5b7913f43891c237c5210d40
m_Address: Assets/Resources_moved/Example/Platformer/Configs/PlayerSettings.asset
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f5e32ea95f06f484daca2ff3a1f1a3d8
m_Address: Example/Platformer/Audio/static2
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f75fc43e1e6bd3ca5b4c90a98a790033
m_Address: Example/Platformer
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: c6c4cec5a69c4d144a5dfabd0405f447, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 94d9efa444455f9b4b65669d5b7b5be0, type: 2}
- {fileID: 11400000, guid: 4c421b07d46102b0692fd842f4634428, type: 2}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 29779120ceccabb0ab008e48b44a39f4
guid: 6572d621368709a22b1df7ea0d26c1df
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -24,7 +24,7 @@ MonoBehaviour:
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_StripDownloadOptions: 0
m_StripDownloadOptions: 1
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
@@ -38,7 +38,7 @@ MonoBehaviour:
m_Id: c177911d3f5ed754588b22d7ec9ed060
m_LoadPath:
m_Id: 0625bc81bb6ebfe4badeca8150066832
m_BundleMode: 0
m_BundleMode: 1
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
@@ -0,0 +1,48 @@
%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: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Duplicate Asset Isolation_BundledAssetGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
m_Group: {fileID: 11400000, guid: 474eae8d8cac07b49a71a36bddcfea71, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_StripDownloadOptions: 0
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: c177911d3f5ed754588b22d7ec9ed060
m_LoadPath:
m_Id: 0625bc81bb6ebfe4badeca8150066832
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 0
m_AssetLoadMode: 0
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4ad92ea93f2a0664191607510b1b623d
guid: b7a101d996c2e9642a8382b9484b7688
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -0,0 +1,16 @@
%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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Duplicate Asset Isolation_ContentUpdateGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 11400000, guid: 474eae8d8cac07b49a71a36bddcfea71, type: 2}
m_StaticContent: 1
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3a4a23e1c0a57dd49b451aa86b9baa3a
guid: 81a10561aabdb45419c7e5c285e2552f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -0,0 +1,48 @@
%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: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: PlatformerGroup_BundledAssetGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
m_Group: {fileID: 11400000, guid: 6572d621368709a22b1df7ea0d26c1df, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_StripDownloadOptions: 1
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: c177911d3f5ed754588b22d7ec9ed060
m_LoadPath:
m_Id: 0625bc81bb6ebfe4badeca8150066832
m_BundleMode: 2
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 0
m_AssetLoadMode: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 94d9efa444455f9b4b65669d5b7b5be0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
%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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: PlatformerGroup_ContentUpdateGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 11400000, guid: 6572d621368709a22b1df7ea0d26c1df, type: 2}
m_StaticContent: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4c421b07d46102b0692fd842f4634428
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,48 @@
%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: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: UISounds_BundledAssetGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
m_Group: {fileID: 11400000, guid: bd1a450260484850da61f533f9b6b17a, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_StripDownloadOptions: 1
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: c177911d3f5ed754588b22d7ec9ed060
m_LoadPath:
m_Id: 0625bc81bb6ebfe4badeca8150066832
m_BundleMode: 2
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 0
m_AssetLoadMode: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5cfb32127ee8a24e9a702950663dc4c2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
%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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: UISounds_ContentUpdateGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 11400000, guid: bd1a450260484850da61f533f9b6b17a, type: 2}
m_StaticContent: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6dfe3b626615e5ea1b39251624a4c98c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,73 @@
%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: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: UISounds
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
m_GroupName: UISounds
m_GUID: 952fa753cff242529845c3df21690cd6
m_SerializeEntries:
- m_GUID: 1983ca5906382590d9638c6c751d8571
m_Address: Assets/Resources_moved/Audio/UI/launch_dnmenu1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2044ec9a33380e7239855e26a9d8bcc5
m_Address: Assets/Resources_moved/Audio/UI/launch_selectmenu.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4c9ce2b91ab2587cf8279e7d743d348b
m_Address: Assets/Resources_moved/Audio/UI/613916__drni__solar-inverter-humming-static-noise.flac
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 55c3ef7828ec424a59b3d4ceb1cdaece
m_Address: Assets/Resources_moved/Audio/UI/launch_upmenu1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 670b67ade842b46af81fee330d074f9f
m_Address: Assets/Resources_moved/Audio/UI/buttonclickrelease.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 749408a9b44d2581783d04d903ec0f72
m_Address: Assets/Resources_moved/Audio/UI/valve_sound.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7eaa3bbea72a3b313878e71bc992c5fd
m_Address: Assets/Resources_moved/Audio/UI/launch_select2.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 89a9e669f83bef966b15cdd2da6d4f77
m_Address: Assets/Resources_moved/Audio/UI/buttonrollover.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9472c0e087e023ce9b93dfc75ffff25b
m_Address: Assets/Resources_moved/Audio/UI/buttonclick.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d9b04c3e60dd01e77807be9f484d8e82
m_Address: Assets/Resources_moved/Audio/UI/launch_select1.wav
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: c6c4cec5a69c4d144a5dfabd0405f447, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 5cfb32127ee8a24e9a702950663dc4c2, type: 2}
- {fileID: 11400000, guid: 6dfe3b626615e5ea1b39251624a4c98c, type: 2}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bd1a450260484850da61f533f9b6b17a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
-4
View File
@@ -22,10 +22,6 @@ namespace Code.Debug
_stateMachine.SwitchState((AppStates)id);
}
public void SwitchGameplay()
{
_stateMachine.SwitchState(AppStates.Gameplay).AllowStateTransition(AppStates.MainMenu);
}
public void SwitchPlatformer()
{
_stateMachine.SwitchState(AppStates.Platformer).AllowStateTransition(AppStates.MainMenu);
@@ -1,5 +1,8 @@
using System.Collections.Generic;
using Code.Infrastructure.Audio;
using Cysharp.Threading.Tasks;
using PrimeTween;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Entity.Enemies
@@ -14,7 +17,36 @@ namespace Code.Example.Platformer.Entity.Enemies
[SerializeField] private Transform _currentTarget;
private Tween _patrolAction;
private float _attackThreshold = 0.5f;
[Inject] private IAudioService _audioService;
[SerializeField] private EntityHealth health;
private void Start()
{
health.OnEntityDamage = OnEntityDamage;
health.OnEntityDeath = OnEntityDeath;
}
private void OnEntityDeath()
{
animator.SetBool(Died, true);
animator.SetTrigger(OnDeath);
Die().Forget();
}
private async UniTaskVoid Die()
{
await UniTask.WaitForSeconds(1);
_audioService.PlayOneShot(AudioNames.Platformer, 3 , AudioGroupType.SFX);
Destroy(gameObject);
}
private void OnEntityDamage(int obj)
{
_audioService.PlayOneShot(AudioNames.Platformer, 2, AudioGroupType.SFX);
UnityEngine.Debug.Log(gameObject.name + " damaged");
animator.SetTrigger(OnHit);
}
protected override void Move()
{
if (onPatrol && !_patrolAction.isAlive)
@@ -25,6 +57,7 @@ namespace Code.Example.Platformer.Entity.Enemies
}
else if(_currentTarget)
{
TryAttack();
var direction = _currentTarget.position - transform.position;
direction.Normalize();
@@ -39,6 +72,11 @@ namespace Code.Example.Platformer.Entity.Enemies
}
}
private void TryAttack()
{
if ((transform.position - _currentTarget.position).magnitude < _attackThreshold) _currentTarget.GetComponent<EntityHealth>().GiveDamage(1);
}
private void OnControlPointReached()
{
if (++_currentPatrolPoint >= partolPoints.Count) _currentPatrolPoint = 0;
@@ -1,4 +1,8 @@
using System;
using Code.Infrastructure.Audio;
using Code.Infrastructure.Configs;
using Cysharp.Threading.Tasks;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Entity.Enemies
@@ -11,11 +15,46 @@ namespace Code.Example.Platformer.Entity.Enemies
private float _acceleration = 3f;
[SerializeField] private EntityHealth health;
[Inject] private IAudioService _audioService;
private Transform _target;
private float _attackThreshold = 0.5f;
private void Start()
{
health.OnEntityDamage = OnEntityDamage;
health.OnEntityDeath = OnEntityDeath;
}
private void OnEntityDeath()
{
animator.SetBool(Died, true);
animator.SetTrigger(OnDeath);
Die().Forget();
}
private async UniTaskVoid Die()
{
await UniTask.WaitForSeconds(1);
_audioService.PlayOneShot(AudioNames.Platformer, 3 , AudioGroupType.SFX);
Destroy(gameObject);
}
private void OnEntityDamage(int obj)
{
_audioService.PlayOneShot(AudioNames.Platformer, 2, AudioGroupType.SFX);
UnityEngine.Debug.Log(gameObject.name + " damaged");
animator.SetTrigger(OnHit);
}
protected override void Move()
{
if (health.IsDead) return;
if (_target)
{
_directionRight = ((_target.position - transform.position)).x > float.Epsilon;
TryAttack();
_directionRight = (_target.position - transform.position).x > float.Epsilon;
UnityEngine.Debug.DrawLine(transform.position, (transform.position + (_target.position - transform.position)), Color.salmon);
CheckupDirection();
@@ -30,7 +69,7 @@ namespace Code.Example.Platformer.Entity.Enemies
rigidbody2D.linearVelocityX = _directionRight ? 0.5f : -0.5f;
}
}
protected override void HandleFlipX() => spriteRenderer.flipX = rigidbody2D.linearVelocity.x > -0.01f;
private void CheckupDirection()
@@ -45,9 +84,13 @@ namespace Code.Example.Platformer.Entity.Enemies
LayerMasks.Masks[LayerMaskType.PlatformerGround]))
_directionRight = true;
}
private void TryAttack()
{
if ((transform.position - _target.position).magnitude < _attackThreshold) _target.GetComponent<EntityHealth>().GiveDamage(1);
}
private Transform _target;
public void GotTarget(Transform target)
{
_target = target;
@@ -0,0 +1,12 @@
using UnityEngine;
namespace Code.Example.Platformer.Entity.Enemies
{
public class PlayerCollisionDamager : MonoBehaviour
{
private void OnTriggerStay2D(Collider2D other)
{
other.GetComponent<EntityHealth>().GiveDamage(1);
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 55c5190afe54409f89d7a16c315e48f9
timeCreated: 1774276433
@@ -1,4 +1,7 @@
using Code.Infrastructure.Audio;
using Code.Infrastructure.Configs;
using Cysharp.Threading.Tasks;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Entity.Enemies
@@ -9,6 +12,35 @@ namespace Code.Example.Platformer.Entity.Enemies
[SerializeField] private Vector2 groundRight;
[SerializeField] private bool _directionRight;
[SerializeField] private EntityHealth health;
[Inject] private IAudioService _audioService;
private void Start()
{
health.OnEntityDamage = OnEntityDamage;
health.OnEntityDeath = OnEntityDeath;
}
private void OnEntityDeath()
{
animator.SetBool(Died, true);
animator.SetTrigger(OnDeath);
Die().Forget();
}
private async UniTaskVoid Die()
{
await UniTask.WaitForSeconds(1);
_audioService.PlayOneShot(AudioNames.Platformer, 3 , AudioGroupType.SFX);
Destroy(gameObject);
}
private void OnEntityDamage(int obj)
{
_audioService.PlayOneShot(AudioNames.Platformer, 2, AudioGroupType.SFX);
UnityEngine.Debug.Log(gameObject.name + " damaged");
animator.SetTrigger(OnHit);
}
protected override void Move()
{
CheckupDirection();
@@ -1,31 +1,74 @@
using System;
using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Entity
{
public abstract class Entity : MonoBehaviour
public interface IGameplayFreezeable : IGlobalSubscriber
{
private static readonly int VelocityY = Animator.StringToHash("VelocityY");
private static readonly int VelocityX = Animator.StringToHash("VelocityX");
private static readonly int OnGround = Animator.StringToHash("OnGround");
void Freeze();
void UnFreeze();
}
public abstract class Entity : MonoBehaviour, IGameplayFreezeable
{
protected static readonly int VelocityY = Animator.StringToHash("VelocityY");
protected static readonly int VelocityX = Animator.StringToHash("VelocityX");
protected static readonly int OnGround = Animator.StringToHash("OnGround");
protected static readonly int OnHit = Animator.StringToHash("OnHit");
protected static readonly int OnDeath = Animator.StringToHash("OnDeath");
protected static readonly int Died = Animator.StringToHash("Died");
[SerializeField] protected Rigidbody2D rigidbody2D;
[SerializeField] protected new Rigidbody2D rigidbody2D;
[SerializeField] protected Animator animator;
[SerializeField] protected SpriteRenderer spriteRenderer;
[SerializeField] private Vector2 groundPoint;
private PlatformerEntityData _data;
private PlatformerEntityData _data; // TODO
protected bool isFreezed = true;
protected bool onGround;
private EventBus _eventBus;
private Vector2 _frozenVelocity;
public void SetData(PlatformerEntityData data)
{
_data = data;
}
protected bool onGround;
[Inject]
private void Construct(EventBus eventBus)
{
_eventBus = eventBus;
_eventBus.Subscribe(this);
}
protected virtual void OnDestroy()
{
_eventBus.Unsubscribe(this);
}
public void Freeze()
{
_frozenVelocity = rigidbody2D.linearVelocity;
rigidbody2D.linearVelocity = Vector2.zero;
rigidbody2D.bodyType = RigidbodyType2D.Kinematic;
isFreezed = true;
}
public void UnFreeze()
{
rigidbody2D.linearVelocity = _frozenVelocity;
rigidbody2D.bodyType = RigidbodyType2D.Dynamic;
isFreezed = false;
}
protected virtual void Update()
{
if(isFreezed) return;
animator.SetFloat(VelocityX, rigidbody2D.linearVelocityX);
animator.SetFloat(VelocityY, rigidbody2D.linearVelocityY);
}
@@ -34,6 +77,8 @@ namespace Code.Example.Platformer.Entity
protected virtual void FixedUpdate()
{
if(isFreezed) return;
onGround = CheckGround();
animator.SetBool(OnGround, onGround);
@@ -0,0 +1,24 @@
using System;
using Unity.Collections;
using UnityEngine;
namespace Code.Example.Platformer.Entity
{
public class EntityGUID : MonoBehaviour
{
[SerializeField, ReadOnly] private string _id = GenerateId();
public string Id => _id;
[ContextMenu("Reset Id")]
private void ResetId()
{
_id = GenerateId();
}
private static string GenerateId()
{
return Guid.NewGuid().ToString();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 597458061f454fbc9767838561ac16b6
timeCreated: 1773761214
@@ -1,3 +1,7 @@
using System;
using Code.Infrastructure.EventBus;
using Cysharp.Threading.Tasks;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Entity
@@ -6,14 +10,45 @@ namespace Code.Example.Platformer.Entity
{
private int _health;
private int _maxHealth;
public void SetMaxHealth(int maxHealth) => _maxHealth = maxHealth;
public bool IsDead { get; private set; }
private float _damageThreshold;
public void Setup(int maxHealth, float damageThreshold)
{
_maxHealth = maxHealth;
_health = maxHealth;
_damageThreshold = damageThreshold;
}
public bool IsDead { get; private set; }
private bool _isDamageable = true;
[Inject] private EventBus _eventBus;
public Action<int> OnEntityHeal;
public Action<int> OnEntityDamage;
public Action OnEntityDeath;
private async UniTaskVoid WaitThreshold()
{
await UniTask.WaitForSeconds(_damageThreshold);
_isDamageable = true;
}
public void GiveDamage(int damage)
{
if (!_isDamageable) return;
_health -= damage;
if(_health <= 0) IsDead = true;
_isDamageable = false;
OnEntityDamage?.Invoke(_health);
if(_health <= 0)
{
IsDead = true;
OnEntityDeath?.Invoke();
}
WaitThreshold().Forget();
}
public void Heal(int heal)
@@ -21,6 +56,9 @@ namespace Code.Example.Platformer.Entity
if (IsDead) return;
if (_health + heal > _maxHealth) _health = _maxHealth;
else _health += heal;
OnEntityHeal?.Invoke(_health);
}
}
}
@@ -4,9 +4,12 @@ using System.Linq;
using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus;
using Cysharp.Threading.Tasks;
using Reflex.Core;
using Reflex.Injectors;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using Object = UnityEngine.Object;
namespace Code.Example.Platformer.Entity
{
@@ -15,7 +18,7 @@ namespace Code.Example.Platformer.Entity
UniTaskVoid WarmEnemy(PlatformerEntityType enemyType);
void ReleaseEnemy(PlatformerEntityType racerType);
UniTaskVoid SpawnEnemy(
void SpawnEnemy(
PlatformerEntityType enemyType,
Vector3 position);
}
@@ -67,10 +70,6 @@ namespace Code.Example.Platformer.Entity
await _enemyPrefabsHandle[enemyType].ToUniTask();
var entity = _enemyPrefabsHandle[enemyType].Result.GetComponent<Entity>();
entity.SetData(_enemyConfigs[enemyType].EntityData);
var health = _enemyPrefabsHandle[enemyType].Result.GetComponent<EntityHealth>();
health.SetMaxHealth(_enemyConfigs[enemyType].EntityData.maxHealth);
_eventBus.RaiseEvent<IPlatformerEnemyLoadedHandle>(x => x.PlatformerEnemyLoaded(enemyType, entity));
}
@@ -81,13 +80,23 @@ namespace Code.Example.Platformer.Entity
_enemyPrefabsHandle.Remove(racerType);
}
public async UniTaskVoid SpawnEnemy(
public void SpawnEnemy(
PlatformerEntityType enemyType,
Vector3 position)
{
if (enemyType == PlatformerEntityType.Player) return;
await Addressables.InstantiateAsync(_enemyConfigs[enemyType].prefabReference, position, Quaternion.identity);
var gameObject = Object.Instantiate(_enemyPrefabsHandle[enemyType].Result, position, Quaternion.identity);
var entity = gameObject.GetComponent<Entity>();
entity.SetData(_enemyConfigs[enemyType].EntityData);
var health = gameObject.GetComponent<EntityHealth>();
health.Setup(_enemyConfigs[enemyType].EntityData.maxHealth, _enemyConfigs[enemyType].EntityData.damageRecieveThreshold);
GameObjectInjector.InjectObject(gameObject, Container.RootContainer);
_eventBus.RaiseEvent<IPlatformerEnemySpawnedHandle>(x=>x.PlatformerEnemySpawned(entity));
}
public void Dispose()
@@ -111,4 +120,8 @@ namespace Code.Example.Platformer.Entity
{
public void PlatformerEnemyLoaded(PlatformerEntityType type, Entity entity);
}
public interface IPlatformerEnemySpawnedHandle : IGlobalSubscriber
{
public void PlatformerEnemySpawned(Entity entity);
}
}
@@ -1,6 +1,7 @@
using System;
using Code.Infrastructure.Generators;
using UnityEngine.AddressableAssets;
using UnityEngine.Serialization;
namespace Code.Example.Platformer.Entity
{
@@ -14,6 +15,7 @@ namespace Code.Example.Platformer.Entity
public int damage;
public PlatformerEntityType type;
public int maxHealth;
public float damageRecieveThreshold;
}
public enum PlatformerEntityType
@@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus;
using Cysharp.Threading.Tasks;
@@ -9,16 +7,16 @@ using Reflex.Injectors;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.SceneManagement;
using Object = UnityEngine.Object;
namespace Code.Example.Platformer.Entity
{
public interface IPlatformerPlayerFactory
{
UniTaskVoid LoadPlayer();
UniTaskVoid WarmPlayer();
void ReleasePlayer();
UniTaskVoid SpawnPlayer(Vector3 position);
void SpawnPlayer(Vector3 position);
}
public class PlatformerPlayerFactory : IPlatformerPlayerFactory, IDisposable
@@ -50,7 +48,7 @@ namespace Code.Example.Platformer.Entity
_eventBus.RaiseEvent<IPlatformerPlayerFactoryInitializedHandle>(x => x.PlatformerPlayerFactoryInitialized());
}
public async UniTaskVoid LoadPlayer()
public async UniTaskVoid WarmPlayer()
{
if (_playerPrefabHandle.IsValid())
{
@@ -63,8 +61,6 @@ namespace Code.Example.Platformer.Entity
_playerPrefabHandle = Addressables.LoadAssetAsync<GameObject>(_playerConfig.prefabReference);
await _playerPrefabHandle.ToUniTask();
var racer = _playerPrefabHandle.Result.GetComponent<Entity>();
racer.SetData(_playerConfig.EntityData);
_eventBus.RaiseEvent<IPlatformerPlayerLoadedHandle>(x => x.PlatformerPlayerLoaded());
}
@@ -74,17 +70,26 @@ namespace Code.Example.Platformer.Entity
_playerPrefabHandle.Release();
}
public async UniTaskVoid SpawnPlayer(Vector3 position)
public void SpawnPlayer(Vector3 position)
{
var player = await Addressables.InstantiateAsync(_playerConfig.prefabReference, position, Quaternion.identity).ToUniTask();
var player = Object.Instantiate(_playerPrefabHandle.Result, position, Quaternion.identity);
var racer = player.GetComponent<Entity>();
racer.SetData(_playerConfig.EntityData);
var health = player.GetComponent<EntityHealth>();
health.Setup(_playerConfig.EntityData.maxHealth, _playerConfig.EntityData.damageRecieveThreshold);
GameObjectInjector.InjectObject(player, Container.RootContainer); // TODO САМОЕ НЕСТАБИЛЬНОЕ ДЕРЬМО ВО ВСЕЛЕННОЙ КОНТЕЙНЕР ДОЛЖЕН БЫТЬ КОНТЕКСТНЫМ
_eventBus.RaiseEvent<IPlatformerPlayerSpawnedHandle>(x => x.PlatformerPlayerSpawned(player.GetComponent<Entity>()));
_eventBus.RaiseEvent<IPlatformerPlayerSpawnedHandle>(
x => x.PlatformerPlayerSpawned(player.GetComponent<Entity>()));
}
public void Dispose()
{
UnityEngine.Debug.LogWarning($"Enemies released");
_playerPrefabHandle.Release();
UnityEngine.Debug.LogWarning($"Player released");
if(_playerPrefabHandle.IsValid()) _playerPrefabHandle.Release();
_playerConfigHandle.Release();
}
@@ -1,6 +1,6 @@
using Code.Infrastructure.Audio;
using Code.Infrastructure.Camera;
using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.Input;
using Reflex.Attributes;
using UnityEngine;
@@ -14,8 +14,9 @@ namespace Code.Example.Platformer.Entity
private IInputService _inputService;
[Inject]
private void Construct(IInputService inputService, IAudioService audioService)
private void Construct(IInputService inputService, IAudioService audioService, EventBus eventBus)
{
_eventBus = eventBus;
_audioService = audioService;
_inputService = inputService;
@@ -31,7 +32,13 @@ namespace Code.Example.Platformer.Entity
//cameraFactory.GetCinematicCamera(CameraMode.Platformer).Follow = transform; , CameraFactory cameraFactory
}
private void OnDestroy()
protected override void OnDestroy()
{
base.OnDestroy();
if(!health.IsDead) UnbindControls();
}
private void UnbindControls()
{
_inputService.UnbindActionPerformed((int)ActionMappings.Platformer, (int)PlatformerActions.Move,
MovementPerformed);
@@ -65,6 +72,8 @@ namespace Code.Example.Platformer.Entity
rigidbody2D.AddForceY(100f);
_acceleration = 1f;
_audioService.PlayOneShot(AudioNames.Platformer, 6, AudioGroupType.SFX);
}
[SerializeField] private Vector2 attackOffset;
@@ -75,7 +84,7 @@ namespace Code.Example.Platformer.Entity
//
//
_audioService.PlayOneShot(AudioNames.UISounds, 1);
_audioService.PlayOneShot(AudioNames.Platformer, 1, AudioGroupType.SFX);
animator.SetBool(OnAttack, true);
}
@@ -89,7 +98,6 @@ namespace Code.Example.Platformer.Entity
foreach (var damaged in damagedOnes)
{
damaged.gameObject.GetComponent<EntityHealth>().GiveDamage(1);
_audioService.PlayOneShot(AudioNames.UISounds, 2);
}
}
@@ -105,5 +113,54 @@ namespace Code.Example.Platformer.Entity
}
public void AttackEnd() => animator.SetBool(OnAttack, false);
[SerializeField] private EntityHealth health;
private EventBus _eventBus;
private void Start()
{
health.OnEntityDeath = OnEntityDeath;
health.OnEntityDamage = OnEntityDamage;
}
private void OnEntityDamage(int obj)
{
UnityEngine.Debug.Log("Player damaged");
_audioService.PlayOneShot(AudioNames.Platformer, 8, AudioGroupType.SFX);
_audioService.ApplyParameter(
"PlatformerDamage",
1f,
0.5f,
() => _audioService.ApplyParameter(
"PlatformerDamage",
5000f,
1f));
_eventBus.RaiseEvent<IPlayerDamagedHandle>(x=>x.PlayerDamaged());
}
private void OnEntityDeath()
{
_moveDirection = Vector2.zero;
animator.SetBool(Died, true);
UnbindControls();
_eventBus.RaiseEvent<IPlayerDiedHandle>(x=>x.PlayerDied());
// Destroy(gameObject, 1f);
}
}
public interface IPlayerDiedHandle : IGlobalSubscriber
{
void PlayerDied();
}
public interface IPlayerDamagedHandle : IGlobalSubscriber
{
void PlayerDamaged();
}
}
@@ -0,0 +1,14 @@
using Code.Infrastructure.EventBus;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Platformer.Level
{
public class LevelEndTrigger : MonoBehaviour
{
[Inject] private EventBus _eventBus;
private void OnTriggerEnter2D(Collider2D other) =>
_eventBus.RaiseEvent<IPlayerReachedFinishHandle>(x=> x.PlayerReachedFinish());
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8241eab603dc4d86bb4bac79c0cb9740
timeCreated: 1774254263
@@ -0,0 +1,28 @@
using Code.Example.Platformer.Level;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.SceneLoader;
using Reflex.Core;
using UnityEngine;
namespace Code.Example.Platformer
{
public class Platformer2SceneInstaller :
MonoBehaviour,
IInstaller
{
// [SerializeField] private PlatformerCanvas gameplayPlatformerCanvas;
[SerializeField] private PlatformerFirstLevelData firstLevelData;
public void InstallBindings(ContainerBuilder containerBuilder)
{
containerBuilder.RegisterValue(firstLevelData);
containerBuilder.OnContainerBuilt += OnContainerBuild;
}
private void OnContainerBuild(Container container)
{
container.Resolve<EventBus>()
.RaiseEvent<IOnPlatformer2SceneLoadedHandler>(x => x.OnPlatformer2SceneInitialized(container));
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9f7e699014b54f2ca9338e1168db97e3
timeCreated: 1774253993
@@ -0,0 +1,28 @@
using Code.Example.Platformer.Level;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.SceneLoader;
using Reflex.Core;
using UnityEngine;
namespace Code.Example.Platformer
{
public class Platformer3SceneInstaller:
MonoBehaviour,
IInstaller
{
// [SerializeField] private PlatformerCanvas gameplayPlatformerCanvas;
[SerializeField] private PlatformerFirstLevelData firstLevelData;
public void InstallBindings(ContainerBuilder containerBuilder)
{
containerBuilder.RegisterValue(firstLevelData);
containerBuilder.OnContainerBuilt += OnContainerBuild;
}
private void OnContainerBuild(Container container)
{
container.Resolve<EventBus>()
.RaiseEvent<IOnPlatformer3SceneLoadedHandler>(x => x.OnPlatformer3SceneInitialized(container));
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f8ad38e6ff54474d8df1d26cb18c2d09
timeCreated: 1774254152
@@ -18,10 +18,9 @@ namespace Code.Example.Platformer
IPlatformerPlayerFactoryInitializedHandle,
IDisposable
{
// [SerializeField] private PlatformerCanvas gameplayPlatformerCanvas;
[SerializeField] private PlatformerFirstLevelData firstLevelData;
private Loading _sceneInit;
private Container _container;
private void LoadingComplete()
{
@@ -36,33 +35,21 @@ namespace Code.Example.Platformer
// Container
_sceneInit = new(3, LoadingComplete);
// containerBuilder.RegisterValue(gameplayPlatformerCanvas);
containerBuilder.Parent.Resolve<EventBus>().Subscribe(this);
containerBuilder.RegisterValue(firstLevelData);
containerBuilder.RegisterType(typeof(PlatformerEnemyFactory), new []{typeof(IPlatformerEnemyFactory)}, Lifetime.Scoped, Resolution.Eager);
containerBuilder.RegisterType(typeof(PlatformerPlayerFactory), new []{typeof(IPlatformerPlayerFactory)}, Lifetime.Scoped, Resolution.Eager);
containerBuilder.OnContainerBuilt += OnContainerBuild;
}
private Container _container;
private void OnContainerBuild(Container container)
{
// gameplayPlatformerCanvas.GameplayPlatformerCanvas.worldCamera =
// container.Resolve<CameraStateMachineContext>().cameraLoadedData.Camera;
_container = container;
_sceneInit.DoProgress();
}
public void PlatformerEnemyFactoryInitialized()
{
_sceneInit.DoProgress();
}
public void PlatformerEnemyFactoryInitialized() => _sceneInit.DoProgress();
public void PlatformerPlayerFactoryInitialized()
{
_sceneInit.DoProgress();
}
public void PlatformerPlayerFactoryInitialized() => _sceneInit.DoProgress();
public void Dispose()
{
+218 -46
View File
@@ -9,55 +9,61 @@ using Code.Infrastructure.Input;
using Code.Infrastructure.Loadings;
using Code.Infrastructure.SceneLoader;
using Code.Infrastructure.UI;
using Code.Infrastructure.UI.Panels;
using Reflex.Core;
using Unity.Cinemachine;
using UnityEngine.SceneManagement;
namespace Code.Example.Platformer
{
public interface IPlayerReachedFinishHandle : IGlobalSubscriber
{
void PlayerReachedFinish();
}
[State(typeof(AppStates),typeof(AppStateMachineContext))]
[StateRaisingEvent]
public partial class PlatformerState :
IOnPlatformerSceneLoadedHandler,
IOnPlatformer2SceneLoadedHandler,
IOnPlatformer3SceneLoadedHandler,
ICinematicMachineHandle,
IPlatformerEnemyLoadedHandle,
IPlatformerPlayerLoadedHandle,
IPlatformerPlayerSpawnedHandle
{
IPlatformerPlayerSpawnedHandle,
IReadyToPlayHandle,
IPlayerReachedFinishHandle,
ILoadingPanelOpenedHandle,
ILoadingPanelClosedHandle,
IPlatformerEnemySpawnedHandle,
IPlayerDiedHandle
{
private IPlatformerEnemyFactory _enemyFactory;
private IPlatformerPlayerFactory _playerFactory;
private PlatformerFirstLevelData _currentLevelData;
private Entity.Entity _playerEntity;
private IAudioFactory _audioFactory;
private Container _fixdamncontainer;
private Loading _loading;
public PlatformerState(AppStateMachineContext context, EventBus eventBus) : base(context, eventBus)
{
}
public override AppStates myState => AppStates.Platformer;
protected override void OnEnterState()
{
EventBus.Subscribe(this);
// Scene
// Camera
// Enemy snail
// Enemy bee
// Enemy boar
// Player
_loading = new(6, LoadingCompleted);
// LoadingScreen
_loading = new(1, StartInitialLoading);
Context.UIService.OpenPanel(UIPanelType.Loading);
Context.SceneLoader.LoadSceneAsync(SceneId.Platformer, LoadSceneMode.Single).Forget();
Context.InputService.EnableMap(ActionMappings.Platformer);
Context.CameraFactory.LoadCinemachineCamera(CameraMode.Platformer).Forget();
}
private Loading _loading;
private void LoadingCompleted()
{
Context.AudioService.CancelMusic(AudioNames.UISounds,0);
Context.UIService.ClosePanel(UIPanelType.Loading);
_enemyFactory.SpawnEnemy(PlatformerEntityType.Snail, _firstLevelData.enemySpawnPoints[0].position);
_playerFactory.SpawnPlayer(_firstLevelData.playerCheckPoints[0].position);
}
protected override void OnExitState()
{
@@ -68,39 +74,64 @@ namespace Code.Example.Platformer
_playerFactory.ReleasePlayer();
Context.CameraFactory.ReleaseCinemachineCamera(CameraMode.Platformer);
EventBus.Unsubscribe(this);
Context.InputService.DisableMap(ActionMappings.Platformer);
Context.AudioService.ChangeGroupVolume(
AudioGroupType.Music,
0f,
0.5f,
ReleasePlatformerMusic);
EventBus.Unsubscribe(this);
}
public void OnPlatformerSceneLoaded()
private void ReleasePlatformerMusic()
{
Context.AudioService.CancelMusic(AudioNames.Platformer, 0);
Context.AudioService.CancelMusic(AudioNames.Platformer, 7);
_audioFactory.ReleaseAudios(AudioNames.Platformer);
}
private void StartInitialLoading()
{
// Dependency scene
// Level scene
// Camera
// Enemy snail
// Enemy bee
// Enemy boar
// Player
// Music
_loading = new(8, InitialLoadingCompleted);
Context.AudioService.ChangeGroupVolume(
AudioGroupType.Music,
1f,
0.5f,
() => Context.AudioService.PlayRepeatedly(AudioNames.Platformer,0, AudioGroupType.Music));
Context.SceneLoader.LoadSceneAsync(SceneId.Platformer, LoadSceneMode.Single).Forget();
Context.InputService.EnableMap(ActionMappings.Platformer);
Context.CameraFactory.LoadCinemachineCamera(CameraMode.Platformer).Forget();
}
private IPlatformerEnemyFactory _enemyFactory;
private IPlatformerPlayerFactory _playerFactory;
private PlatformerFirstLevelData _firstLevelData;
private Container _fixdamncontainer;
public void OnPlatformerSceneInitialized(Container container)
private void InitialLoadingCompleted()
{
_fixdamncontainer = container;
_firstLevelData = container.Resolve<PlatformerFirstLevelData>();
_enemyFactory = container.Resolve<IPlatformerEnemyFactory>();
_loading = new Loading(2, CloseLevel1LoadingScreen);
_enemyFactory.WarmEnemy(PlatformerEntityType.Bee);
_enemyFactory.WarmEnemy(PlatformerEntityType.Boar);
_enemyFactory.WarmEnemy(PlatformerEntityType.Snail);
_enemyFactory.SpawnEnemy(PlatformerEntityType.Snail, _currentLevelData.enemySpawnPoints[0].position);
_playerFactory = container.Resolve<IPlatformerPlayerFactory>();
_playerFactory.LoadPlayer();
_loading.DoProgress();
_playerFactory.SpawnPlayer(_currentLevelData.playerCheckPoints[0].position);
}
private void CloseLevel1LoadingScreen()
{
Context.UIService.ClosePanel(UIPanelType.Loading);
EventBus.RaiseEvent<IGameplayFreezeable>(x=> x.UnFreeze());
}
public void CinemachineLoaded(CinemachineCamera cinemachineCamera)
{
@@ -119,7 +150,148 @@ namespace Code.Example.Platformer
public void PlatformerPlayerSpawned(Entity.Entity entity)
{
_playerEntity = entity;
Context.CameraFactory.GetCinematicCamera(CameraMode.Platformer).Follow = entity.transform;
_loading.DoProgress();
}
public void PlatformerEnemySpawned(Entity.Entity entity)
{
_loading.DoProgress();
}
public void OnReadyToPlay(AudioNames groupName)
{
if(groupName == AudioNames.Platformer) _loading.DoProgress();
}
public void PlayerReachedFinish()
{
_loading = new Loading(1, StartLevel2Loading);
Context.AudioService.ChangeGroupVolume(
AudioGroupType.Music,
0f,
0.5f,
() => Context.AudioService.CancelMusic(AudioNames.Platformer, 0));
Context.UIService.OpenPanel(UIPanelType.Loading);
EventBus.RaiseEvent<IGameplayFreezeable>(x=> x.Freeze());
SceneManager.MoveGameObjectToScene(_playerEntity.gameObject, Context.SceneLoader.GetScene(SceneId.Platformer));
}
private void StartLevel2Loading()
{
_loading = new(2, StartLevel2Gameplay);
Context.SceneLoader.UnloadSceneAsync(SceneId.Platformer2).Forget();
Context.SceneLoader.LoadSceneAsync(SceneId.Platformer3, LoadSceneMode.Additive).Forget();
}
private void StartLevel2Gameplay()
{
Context.AudioService.ChangeGroupVolume(
AudioGroupType.Music,
1f,
0.5f,
() => Context.AudioService.PlayRepeatedly(AudioNames.Platformer,7, AudioGroupType.Music));
Context.UIService.ClosePanel(UIPanelType.Loading);
EventBus.RaiseEvent<IGameplayFreezeable>(x=> x.UnFreeze());
}
public void OnPlatformerSceneLoaded()
{
Context.SceneLoader.LoadSceneAsync(SceneId.Platformer2, LoadSceneMode.Additive).Forget();
}
public void OnPlatformerSceneInitialized(Container container)
{
_fixdamncontainer = container;
_audioFactory = container.Resolve<IAudioFactory>();
_audioFactory.LoadAudioClips(AudioNames.Platformer);
_enemyFactory = container.Resolve<IPlatformerEnemyFactory>();
_enemyFactory.WarmEnemy(PlatformerEntityType.Bee);
_enemyFactory.WarmEnemy(PlatformerEntityType.Boar);
_enemyFactory.WarmEnemy(PlatformerEntityType.Snail);
_playerFactory = container.Resolve<IPlatformerPlayerFactory>();
_playerFactory.WarmPlayer();
_loading.DoProgress();
}
public void OnPlatformer2SceneLoaded()
{
SceneManager.SetActiveScene(Context.SceneLoader.GetScene(SceneId.Platformer2));
}
public void OnPlatformer2SceneInitialized(Container container)
{
_currentLevelData = container.Resolve<PlatformerFirstLevelData>();
_loading.DoProgress();
}
public void OnPlatformer3SceneLoaded()
{
SceneManager.SetActiveScene(Context.SceneLoader.GetScene(SceneId.Platformer3));
_enemyFactory.SpawnEnemy(PlatformerEntityType.Boar, _currentLevelData.enemySpawnPoints[0].position);
_playerEntity.transform.position = _currentLevelData.playerCheckPoints[0].position;
_loading.DoProgress();
}
public void OnPlatformer3SceneInitialized(Container container)
{
_currentLevelData = container.Resolve<PlatformerFirstLevelData>();
_loading.DoProgress();
}
public void LoadingPanelOpened(UIPanel panel)
{
_loading.DoProgress();
}
public void LoadingPanelClosed()
{
}
public void PlayerDied()
{
_loading = new(2, EndGameLoading);
Context.AudioService.ChangeGroupVolume(
AudioGroupType.Music,
0f,
0.5f,
OffTheMusic);
Context.UIService.OpenPanel(UIPanelType.Loading);
}
private void OffTheMusic()
{
ReleasePlatformerMusic();
_loading.DoProgress();
}
private void EndGameLoading()
{
Context.StateMachine.SwitchState(AppStates.MainMenu)
.AllowStateTransition(AppStates.Platformer);
}
}
}
-3
View File
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 28672941a49242ad95c4a99705410c30
timeCreated: 1769522077
@@ -1,65 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
using UnityEngine;
namespace Code.Example.Race
{
public class PlayerPrefsRacePoopshitter
{
private List<RaceData> _races = new();
public PlayerPrefsRacePoopshitter()
{
GetRaces();
}
public List<RaceData> GetRaces()
{
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
using (StreamReader reader = new(path))
{
var json = reader.ReadToEnd();
_races = JsonConvert.DeserializeObject<List<RaceData>>(json);
}
// for (int i = 0; i < _raceCount; i++)
// races.Add(new(
// PlayerPrefs.GetFloat($"Race{i}"),
// PlayerPrefs.GetInt($"Place{i}")));
return _races;
}
public void AddRace(RaceData race)
{
// PlayerPrefs.SetFloat($"Race{_raceCount}", race.raceTimeSeconds);
// PlayerPrefs.SetInt($"Place{_raceCount}", race.place);
// PlayerPrefs.SetInt("RaceCount", ++_raceCount);
_races.Add(race);
var json = JsonConvert.SerializeObject(_races, Formatting.Indented);
var path = Path.Combine(Application.persistentDataPath,"raceData.json");
using (StreamWriter writer = new(path))
{
writer.Write(json);
}
}
}
[Serializable]
public struct RaceData
{
public float raceTimeSeconds;
public int place;
public RaceData(float raceTimeSeconds, int place)
{
this.raceTimeSeconds = raceTimeSeconds;
this.place = place;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: e984eddc1697449487c9a790345dfb0b
timeCreated: 1770653240
-108
View File
@@ -1,108 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Code.Example.Race.Racer;
using Code.Example.Race.Track;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.Loadings;
using UnityEngine;
namespace Code.Example.Race
{
public class RaceGame : IRacerLoadedHandle, IDisposable
{
private RaceScores _scores;
private IRacerFactory _racerFactory;
private RaceTrackData _raceTrackData;
private EventBus _eventBus;
public RaceGame(EventBus eventBus, IRacerFactory racerFactory, RaceTrackData raceTrackData, RaceScores scores)
{
_eventBus = eventBus;
_racerFactory = racerFactory;
_raceTrackData = raceTrackData;
_eventBus.Subscribe(this);
_scores = scores;
RandomizeRacers(raceTrackData.trackData.RacerPoints.Count);
}
private float _timeStart;
public float RaceTime => Time.time - _timeStart;
public void StartRacers()
{
_timeStart = Time.time;
foreach (var racer in PlacedRacers)
{
racer.StartRacer();
}
}
// DEBUG
private List<RacerType> _randomizedTypes = new();
private void RandomizeRacers(int count)
{
_raceGameLoading = new Loading(count, RacersLoadCompleted);
_randomizedTypes.Add(RacerType.Player);
for (var i = 0; i < count - 1; i++)
_randomizedTypes.Add((RacerType)UnityEngine.Random.Range(1, 3));
foreach (var type in _randomizedTypes) _racerFactory.LoadRacer(type);
}
private void RacersLoadCompleted() =>
_eventBus.RaiseEvent<IRaceGameHandle>(x => x.RaceGameReady());
public List<Racer.Racer> PlacedRacers { get; } = new();
public void PlaceRacers()
{
for (var i = 0; i < _raceTrackData.trackData.RacerPoints.Count; i++)
{
PlacedRacers.Add(UnityEngine.Object.Instantiate(
_racerPrefabs[_randomizedTypes[i]],
_raceTrackData.trackData.RacerPoints[i].transform).GetComponent<Racer.Racer>());
PlacedRacers[^1].SetData(_racerPrefabs[_randomizedTypes[i]].Data);
PlacedRacers[^1].Id = i;
_scores.SubscribeRacer(PlacedRacers[^1]);
}
foreach (var racer in PlacedRacers)
{
racer.Initialize(_raceTrackData.trackData.Checkpoints.Select(x=> x.transform).ToList());
}
}
private Dictionary<RacerType, Racer.Racer> _racerPrefabs = new();
private Loading _raceGameLoading;
public void RacerLoaded(RacerType type, Racer.Racer racer)
{
if (racer)
_racerPrefabs.Add(type, racer);
_raceGameLoading.DoProgress();
}
public void Dispose()
{
foreach (var racer in PlacedRacers) _scores.UnsubscribeRacer(racer);
_eventBus.Unsubscribe(this);
_racerPrefabs.Clear();
}
}
public interface IRaceGameHandle : IGlobalSubscriber
{
void RaceGameReady();
void RaceGameEnded(RaceScores scores);
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 0ffa5c181be7447cb1c41392018b193f
timeCreated: 1769692114
-80
View File
@@ -1,80 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Code.Example.Race.Racer.Player;
using Code.Example.Race.Track;
using Code.Infrastructure.EventBus;
using Reflex.Attributes;
namespace Code.Example.Race
{
public class RaceScores : IRacerPassedCheckpointHandler, IDisposable, IPlayerPassedCheckpointHandler
{
private Dictionary<Racer.Racer, ScoreData> _scores = new();
private EventBus _eventBus;
public RaceScores(EventBus eventBus)
{
_eventBus = eventBus;
_eventBus.Subscribe(this);
}
public void SubscribeRacer(Racer.Racer racer)
{
_scores.Add(racer, new ScoreData());
}
public void ChangeScore(Racer.Racer racer, int additionalScore)
{
_scores[racer].checkpointsPassed += additionalScore;
_eventBus.RaiseEvent<IScoreChangedHandle>(x=> x.ScoreChanged(racer,_scores[racer], GetScores()));
}
public void LapPassed(Racer.Racer racer)
{
_scores[racer].lapsPassed++;
_eventBus.RaiseEvent<IScoreChangedHandle>(x=> x.ScoreChanged(racer,_scores[racer], GetScores()));
if (_scores[racer].lapsPassed >= _raceTrackData.trackData.LapCount)
_eventBus.RaiseEvent<IRaceGameHandle>(x=> x.RaceGameEnded(this));
}
public void UnsubscribeRacer(Racer.Racer racer)
{
_scores.Remove(racer);
}
public List<KeyValuePair<Racer.Racer, ScoreData>> GetScores()
{
return _scores.OrderByDescending(x => x.Value.checkpointsPassed).ToList();
}
public void OnRacerPassedCheckpoint(Racer.Racer racer) => ChangeScore(racer,1);
public void Dispose()
{
_eventBus.Unsubscribe(this);
}
[Inject] private RaceTrackData _raceTrackData;
public void OnPlayerPassedCheckpoint(Racer.Racer racer)
{
var player = (PlayerRacer)racer;
_raceTrackData.trackData.Checkpoints[player.CurrentWaypointIndex].Show();
}
public void OnPlayerLapPassed(Racer.Racer racer)
{
}
}
public class ScoreData
{
public int checkpointsPassed;
public int lapsPassed;
}
public interface IScoreChangedHandle : IGlobalSubscriber
{
void ScoreChanged(Racer.Racer racer, ScoreData score, List<KeyValuePair<Racer.Racer, ScoreData>> scores);
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: b45fb028abcf43129f5c8100e7215f1f
timeCreated: 1770051193
-3
View File
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: db04851257b24d4698e8101ef2d54b2d
timeCreated: 1769522144
-3
View File
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 391fdca5d5c94a86bcbd0f7cda609ee7
timeCreated: 1769522152
@@ -1,36 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI
{
public class AICarDriver : CarControllerRB
{
public override void SetSteering(Vector2 steeringLinear)
{
SteeringInput = steeringLinear;
}
protected override void Brake()
{
if (CarRb.linearVelocity.magnitude > 10f && (SteeringInput.y > CarRb.linearVelocity.y || SteeringInput.x > CarRb.linearVelocity.x))
{
foreach (var wheel in wheels)
{
wheel.wheelCollider.brakeTorque = 100 * racer.Data.brakeAcceleration * Time.fixedDeltaTime;
}
// carLights.isBackLightOn = true;
// carLights.OperateBackLights();
}
else
{
foreach (var wheel in wheels)
{
wheel.wheelCollider.brakeTorque = 0;
}
// carLights.isBackLightOn = false;
// carLights.OperateBackLights();
}
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: c82b0db1441e417098bccb9ca1575e3e
timeCreated: 1770639201
@@ -1,45 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
namespace Code.Example.Race.Racer.AI
{
public class AIDebugRacer : Racer
{
[SerializeField] private NavMeshAgent navMeshAgent;
[SerializeField] private List<Transform> waypoints;
private int _currentWaypointIndex;
private void Awake()
{
navMeshAgent.destination = waypoints[_currentWaypointIndex].position;
_currentWaypointIndex++;
}
public override void NextWaypoint()
{
if(_currentWaypointIndex >= waypoints.Count) _currentWaypointIndex = 0;
navMeshAgent.destination = waypoints[_currentWaypointIndex++].position;
}
public override void StartRacer()
{
}
public override void StopRacer()
{
}
public override void SetData(RacerData data)
{
}
public override void Initialize(List<Transform> waypoints)
{
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 6644b39029d14164961d83a37749e6cc
timeCreated: 1769522190
@@ -1,36 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
namespace Code.Example.Race.Racer.AI
{
public class AIRacer : Racer
{
[SerializeField] private NavMeshAgent navMeshAgent;
public override void SetData(RacerData data)
{
Data = data;
navMeshAgent.angularSpeed = data.angularSpeed;
navMeshAgent.speed = data.speed;
}
public override void Initialize(List<Transform> waypoints)
{
navMeshAgent.isStopped = true;
Waypoints = waypoints;
navMeshAgent.destination = Waypoints[CurrentWaypointIndex].position;
CurrentWaypointIndex++;
}
public override void StartRacer() => navMeshAgent.isStopped = false;
public override void StopRacer() => navMeshAgent.isStopped = true;
public override void NextWaypoint()
{
if(CurrentWaypointIndex >= Waypoints.Count) CurrentWaypointIndex = 0;
navMeshAgent.destination = Waypoints[CurrentWaypointIndex++].position;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 05f30660967e40209aa88719fa498c78
timeCreated: 1769694590
@@ -1,110 +0,0 @@
using System.Collections.Generic;
using Code.Example.Race.Racer.AI.ID;
using Code.Example.Race.Track;
using Code.Infrastructure.EventBus;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Race.Racer.AI
{
public class AIRacerID : Racer
{
[Inject] private EventBus _eventBus;
[SerializeField] private CarControllerRB carController;
public override void SetData(RacerData data)
{
Data = data;
_velocity = Vector3.zero;
_steering = new Steering();
}
public override void Initialize(List<Transform> waypoints)
{
Waypoints = waypoints;
}
public override void NextWaypoint()
{
if (++CurrentWaypointIndex < Waypoints.Count) return;
CurrentWaypointIndex = 0;
_eventBus.RaiseEvent<IRacerPassedCheckpointHandler>(x=> x.LapPassed(this));
}
public override void StartRacer()
{
_running = true;
}
public override void StopRacer()
{
_running = false;
}
[SerializeField] private AgentBehaviour agent;
private float _orientation;
private float _rotation;
private Vector3 _velocity;
private Steering _steering;
private bool _running;
private float NormalizeAngle(float angle)
{
switch (angle)
{
case > 360.0f:
{
while (angle > 360.0f) angle -= 360.0f;
break;
}
case < 0.0f:
{
while (angle < 0.0f) angle += 360.0f;
break;
}
}
return angle;
}
public virtual void Update()
{
if (!_running) return;
var steering =
transform.InverseTransformDirection(
agent.GetSteering(Waypoints[CurrentWaypointIndex]).linear);
carController.SetSteering(new Vector2(steering.x, steering.z));
// var displacement = _velocity * Time.deltaTime;
// _orientation += _rotation * Time.deltaTime;
// _orientation = NormalizeAngle(_orientation);
//
// transform.Translate(displacement, Space.World);
// transform.Rotate(Vector3.up, _orientation);
}
public virtual void LateUpdate()
{
if (!_running) return;
//
// _steering = agent.GetSteering(Waypoints[CurrentWaypointIndex]);
//
// _velocity += _steering.linear * Time.deltaTime;
// _rotation += _steering.angular * Time.deltaTime;
// if (_velocity.magnitude > Data.speed)
// {
// _velocity = _velocity.normalized * Data.speed;
// }
// if (_steering.angular == 0.0f)
// {
// _rotation = 0.0f;
// }
// if (_steering.linear.sqrMagnitude == 0.0f)
// {
// _velocity = Vector3.zero;
// }
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: fdcd01ab3c5147e4bfa3619d60fec5fc
timeCreated: 1770394482
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 4f9bd0b568944e1f9b11f60f0fb79590
timeCreated: 1770394574
@@ -1,53 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI.ID
{
public class Agent : MonoBehaviour
{
public float maxSpeed;
public float maxAccel;
public float orientation;
public float rotation;
public Vector3 velocity;
protected Steering steering;
private void Start()
{
velocity = Vector3.zero;
steering = new Steering();
}
public virtual void Update ()
{
Vector3 displacement = velocity * Time.deltaTime;
orientation += rotation * Time.deltaTime;
// необходимо ограничить значение переменной orientation
// диапазоном (0-360)
if (orientation < 0.0f)
orientation += 360.0f;
else if (orientation > 360.0f)
orientation -= 360.0f;
transform.Translate(displacement, Space.World);
transform.rotation = new Quaternion();
transform.Rotate(Vector3.up, orientation);
}
public virtual void LateUpdate()
{
velocity += steering.linear * Time.deltaTime;
rotation += steering.angular * Time.deltaTime;
if (velocity.magnitude > maxSpeed)
{
velocity = velocity.normalized * maxSpeed; // Исправлено: корректное нормирование вектора
}
if (steering.angular == 0.0f)
{
rotation = 0.0f;
}
if (steering.linear.sqrMagnitude == 0.0f)
{
velocity = Vector3.zero;
}
// Удалена строка: steering = new Steering();
// (создание нового объекта каждый кадр приведет к утечке памяти и сбросу данных)
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 6d51ddde70f34264954a75923b43dcee
timeCreated: 1770394764
@@ -1,11 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI.ID
{
public abstract class AgentBehaviour : MonoBehaviour
{
[SerializeField] protected AIRacerID agent;
public abstract Steering GetSteering(Transform target);
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5af0fc1b61bd44d9a53fd01f93fe6029
timeCreated: 1770394682
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 70ca406222fb4e8e848ccf43db320cc9
timeCreated: 1770395746
@@ -1,17 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI.ID.Behaviours
{
public class Flee : AgentBehaviour
{
public override Steering GetSteering(Transform target)
{
Steering steering = new Steering();
steering.linear = transform.position - target.position;
steering.linear.Normalize();
// steering.linear *= agent.Data.maxAcceleration;
return steering;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 437d2ae2cd65457a82abc34df278228d
timeCreated: 1770395798
@@ -1,42 +0,0 @@
using UnityEngine;
using System.Collections;
namespace Code.Example.Race.Racer.AI.ID.Behaviours
{
public class Pursue : Seek
{
public float maxPrediction;
private GameObject _targetAux;
private GameObject _target;
public void Awake()
{
_targetAux = _target;
_target = new GameObject();
}
void OnDestroy()
{
Destroy(_targetAux);
}
public override Steering GetSteering(Transform targetTransform)
{
var direction = _targetAux.transform.position - transform.position;
var distance = direction.magnitude;
var speed = agent.CarRigidbody.linearVelocity.magnitude;
float prediction;
if (speed <= distance / maxPrediction)
prediction = maxPrediction;
else
prediction = distance / speed;
_target.transform.position = _targetAux.transform.position;
// _target.transform.position += targetAgent.velocity * prediction;
return base.GetSteering(_target.transform);
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: c3a071d2cab443528dd16bdc044bab65
timeCreated: 1770998212
@@ -1,18 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI.ID.Behaviours
{
public class Seek : AgentBehaviour
{
public override Steering GetSteering(Transform target)
{
Steering steering = new Steering();
steering.linear = target.position - transform.position;
UnityEngine.Debug.DrawRay(transform.position, steering.linear, Color.yellow, 5f);
// steering.linear *= agent.Data.maxAcceleration;
steering.linear.Normalize();
return steering;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: aa69eb79c9ec48b682606dac0c0d4f2d
timeCreated: 1770395751
@@ -1,16 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.AI.ID
{
public struct Steering
{
public float angular;
public Vector3 linear;
public Steering(float angular, Vector3 linear)
{
this.angular = angular;
this.linear = linear;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 0395b595869e49b5b177fe54db531823
timeCreated: 1770394582
-3
View File
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 2c5dfd92289c4aa38bb9a8bafc07d204
timeCreated: 1769699718
@@ -1,32 +0,0 @@
using UnityEngine;
using UnityEngine.AI;
namespace Code.Example.Race.Racer.Car
{
public class CarWheelRotator : MonoBehaviour
{
[SerializeField] private NavMeshAgent agent;
[SerializeField] private Transform[] wheels;
[SerializeField] private bool rotateDebug;
private void Update()
{
Vector3 wheelRotation;
foreach (var wheel in wheels)
{
if (rotateDebug)
{
UnityEngine.Debug.DrawRay(
wheel.position,
Vector3.Project(agent.velocity, agent.gameObject.transform.right),
Color.yellow, 900f);
UnityEngine.Debug.Log(Vector3.Project(agent.velocity, agent.gameObject.transform.right).magnitude);
}
wheelRotation = wheel.localRotation.eulerAngles;
wheelRotation.y = Vector3.Project(agent.velocity, agent.gameObject.transform.right).magnitude * 10f;
wheel.localRotation = Quaternion.Euler(wheelRotation);
}
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 3634956b4d55431b8772a8612e2e3a4d
timeCreated: 1769699734
@@ -1,23 +0,0 @@
using PrimeTween;
using UnityEngine;
namespace Code.Example.Race.Racer.Car
{
public class CarWheelRotatorPlayer : MonoBehaviour
{
[SerializeField] private Transform[] wheels;
[SerializeField] private bool rotateDebug;
public void RotateWheels(float amount)
{
// UnityEngine.Debug.Log("Rotating Wheels: " + amount);
foreach (var wheel in wheels)
{
var wheelRotation = wheel.localRotation.eulerAngles;
wheelRotation.y = amount;
Tween.LocalRotation(wheel,wheelRotation, 1f);
// wheel.localRotation = Quaternion.Euler(wheelRotation);
}
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: c90fde90552d48f592b955cbf1ec5c77
timeCreated: 1769705011
@@ -1,165 +0,0 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Code.Example.Race.Racer
{
public abstract class CarControllerRB : MonoBehaviour
{
public enum ControlMode
{
Keyboard,
Buttons
};
public enum Axel
{
Front,
Rear
}
[Serializable]
public struct Wheel
{
public GameObject wheelModel;
public WheelCollider wheelCollider;
public GameObject wheelEffectObj;
public ParticleSystem smokeParticle;
public Axel axel;
}
public ControlMode control;
public Vector3 _centerOfMass;
public List<Wheel> wheels;
protected Rigidbody CarRb;
protected Vector2 SteeringInput = Vector2.zero;
public abstract void SetSteering(Vector2 steeringLinear);
[SerializeField] protected Racer racer;
// private CarLights carLights;
private void Start()
{
CarRb = GetComponent<Rigidbody>();
CarRb.centerOfMass = _centerOfMass;
// carLights = GetComponent<CarLights>();
}
protected virtual void Update()
{
// GetInputs();
AnimateWheels();
// WheelEffects();
}
private void FixedUpdate()
{
Move();
Steer();
Brake();
}
// public void MoveInput(float input)
// {
// moveInput = input;
// }
//
// public void SteerInput(float input)
// {
// steerInput = input;
// }
void GetInputs()
{
// if (control == ControlMode.Keyboard)
// {
// moveInput = Input.GetAxis("Vertical");
// steerInput = Input.GetAxis("Horizontal");
// }
}
private void Move()
{
foreach (var wheel in wheels)
{
wheel.wheelCollider.motorTorque = SteeringInput.y * 600 * racer.Data.maxAcceleration * Time.fixedDeltaTime;
// wheel.wheelCollider.motorTorque = _playerCarInput.MovementInput.y * 600 * _playerRacer.Data.maxAcceleration * Time.fixedDeltaTime;
}
}
private void Steer()
{
foreach (var wheel in wheels)
{
if (wheel.axel != Axel.Front) continue;
var steerAngle = SteeringInput.x * racer.Data.turnSensitivity * racer.Data.maxSteerAngle;
// var _steerAngle = _playerCarInput.MovementInput.x * _playerRacer.Data.turnSensitivity * _playerRacer.Data.maxSteerAngle;
wheel.wheelCollider.steerAngle = steerAngle;
// wheel.wheelCollider.steerAngle = Mathf.Lerp(wheel.wheelCollider.steerAngle, _steerAngle, 0.6f);
}
}
protected virtual void Brake()
{
//|| _playerCarInput.MovementInput.y == 0
// if (_playerCarInput.Brake )
// {
// foreach (var wheel in wheels)
// {
// wheel.wheelCollider.brakeTorque = 300 * _racer.Data.brakeAcceleration * Time.fixedDeltaTime;
// }
//
// // carLights.isBackLightOn = true;
// // carLights.OperateBackLights();
// }
// else
// {
// foreach (var wheel in wheels)
// {
// wheel.wheelCollider.brakeTorque = 0;
// }
//
// // carLights.isBackLightOn = false;
// // carLights.OperateBackLights();
// }
}
private void AnimateWheels()
{
foreach (var wheel in wheels)
{
Quaternion rot;
Vector3 pos;
wheel.wheelCollider.GetWorldPose(out pos, out rot);
wheel.wheelModel.transform.position = pos;
wheel.wheelModel.transform.rotation = rot;
}
}
private void WheelEffects()
{
foreach (var wheel in wheels)
{
//var dirtParticleMainSettings = wheel.smokeParticle.main;
if (wheel.axel == Axel.Rear && wheel.wheelCollider.isGrounded &&
CarRb.linearVelocity.magnitude >= 10.0f)
{
// wheel.wheelEffectObj.GetComponentInChildren<TrailRenderer>().emitting = true;
// wheel.smokeParticle.Emit(1);
}
else
{
// wheel.wheelEffectObj.GetComponentInChildren<TrailRenderer>().emitting = false;
}
}
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5f093c913ff54cb99cd22d7e473931e7
timeCreated: 1770299509
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 7d9a0a4882314e2f91bb356ea0f82538
timeCreated: 1769705255
@@ -1,55 +0,0 @@
using Code.Example.Race.Racer.AI;
using Code.Example.Race.Racer.Car;
using UnityEngine;
namespace Code.Example.Race.Racer.Player
{
public class PlayerCarController : MonoBehaviour
{
[SerializeField] private Rigidbody _rigidbody;
[SerializeField] private PlayerCarInput _playerCarInput;
[SerializeField] private PlayerRacer _playerRacer;
[SerializeField] private CarWheelRotatorPlayer _wheels;
private void Update()
{
if (_playerCarInput.MovementInput == Vector2.zero) return;
// var movementForward = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
//
// _rigidbody.AddForce(movementForward * Time.fixedDeltaTime, ForceMode.Force);
var force = transform.forward * (_playerCarInput.MovementInput.y * _playerRacer.Data.speed);
_rigidbody.AddForce(force, ForceMode.Force);
// if (Mathf.Abs(_playerCarInput.MovementInput.y) < 0.1f && _rigidbody.linearVelocity.magnitude > 0.3f)
// {
// _rigidbody.AddForce(-_rigidbody.linearVelocity * (_playerRacer.Data.brakeForce * Time.fixedDeltaTime),
// ForceMode.Force);
// }
var steerInput = _playerCarInput.MovementInput.x;
if (_playerCarInput.MovementInput.y < 0)
steerInput = -_playerCarInput.MovementInput.x;
// var steer = steerInput * maxSteerAngle;
//
// if (frontLeftWheel) frontLeftWheel.localRotation = Quaternion.Euler(0, steer, 0);
// if (frontRightWheel) frontRightWheel.localRotation = Quaternion.Euler(0, steer, 0);
if (!(_rigidbody.linearVelocity.magnitude > 0.5f)) return;
// var turn = steerInput * _playerRacer.Data.turnSpeed * Time.fixedDeltaTime;
// _rigidbody.MoveRotation(_rigidbody.rotation * Quaternion.Euler(0, turn, 0));
if (!(_rigidbody.linearVelocity.magnitude is > 1f or < -1f)) return;
var rotateAmount = _playerCarInput.MovementInput.x * _playerRacer.Data.angularSpeed;
_wheels.RotateWheels(rotateAmount * 10 * Time.fixedDeltaTime);
var wheelRotation = transform.rotation.eulerAngles;
wheelRotation.y += rotateAmount;
transform.rotation = Quaternion.Euler(wheelRotation);
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 4b9e2e4a3ddc437ab250f609ea7fc33e
timeCreated: 1769705285
@@ -1,41 +0,0 @@
using Code.Infrastructure.Input;
using Reflex.Attributes;
using UnityEngine;
using UnityEngine.InputSystem;
namespace Code.Example.Race.Racer.Player
{
public class PlayerCarInput : MonoBehaviour
{
private IInputService _inputService;
public Vector2 MovementInput { get; private set; }
public bool Brake { get; private set; }
[Inject]
public void Construct(IInputService inputService)
{
_inputService = inputService;
_inputService.BindActionPerformed((int)ActionMappings.Race, (int)RaceActions.Move, MovementPerformed);
_inputService.BindActionCancelled((int)ActionMappings.Race, (int)RaceActions.Move, MovementEnded);
_inputService.BindActionPerformed((int)ActionMappings.Race, (int)RaceActions.Brake, BrakePerformed);
_inputService.BindActionCancelled((int)ActionMappings.Race, (int)RaceActions.Brake, BrakeEnded);
}
private void MovementPerformed(InputAction.CallbackContext context) => MovementInput = context.ReadValue<Vector2>();
private void MovementEnded(InputAction.CallbackContext context) => MovementInput = Vector2.zero;
private void BrakePerformed(InputAction.CallbackContext context) => Brake = true;
private void BrakeEnded(InputAction.CallbackContext context) => Brake = false;
private void OnDestroy()
{
if (_inputService == null) return;
_inputService.UnbindActionPerformed((int)ActionMappings.Race, (int)RaceActions.Move, MovementPerformed);
_inputService.UnbindActionCancelled((int)ActionMappings.Race, (int)RaceActions.Move, MovementEnded);
_inputService.UnbindActionPerformed((int)ActionMappings.Race, (int)RaceActions.Brake, BrakePerformed);
_inputService.UnbindActionCancelled((int)ActionMappings.Race, (int)RaceActions.Brake, BrakeEnded);
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: e52315b65c57499981981e2507aaf7bc
timeCreated: 1769705872
@@ -1,44 +0,0 @@
using UnityEngine;
namespace Code.Example.Race.Racer.Player
{
public class PlayerRBCarController : CarControllerRB
{
[SerializeField] private PlayerCarInput playerCarInput;
public override void SetSteering(Vector2 steeringLinear)
{
}
protected override void Update()
{
SteeringInput = playerCarInput.MovementInput;
base.Update();
}
protected override void Brake()
{
if (playerCarInput.Brake )
{
foreach (var wheel in wheels)
{
wheel.wheelCollider.brakeTorque = 300 * racer.Data.brakeAcceleration * Time.fixedDeltaTime;
}
// carLights.isBackLightOn = true;
// carLights.OperateBackLights();
}
else
{
foreach (var wheel in wheels)
{
wheel.wheelCollider.brakeTorque = 0;
}
// carLights.isBackLightOn = false;
// carLights.OperateBackLights();
}
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: bad2326aa0f24acb9bdfeb5fb7d3d208
timeCreated: 1770640123
@@ -1,43 +0,0 @@
using System.Collections.Generic;
using Code.Example.Race.Track;
using Code.Infrastructure.EventBus;
using Reflex.Attributes;
using UnityEngine;
namespace Code.Example.Race.Racer.Player
{
public class PlayerRacer : Racer
{
[Inject] private EventBus _eventBus;
public Transform CameraPosition;
public override void SetData(RacerData data)
{
Data = data;
}
public override void Initialize(List<Transform> waypoints)
{
Waypoints = waypoints;
}
public override void NextWaypoint()
{
if (++CurrentWaypointIndex < Waypoints.Count) return;
CurrentWaypointIndex = 0;
_eventBus.RaiseEvent<IPlayerPassedCheckpointHandler>(x=> x.OnPlayerLapPassed(this));
_eventBus.RaiseEvent<IRacerPassedCheckpointHandler>(x=> x.LapPassed(this));
}
public bool RaceStarted { get; set; }
public override void StartRacer()
{
RaceStarted = true;
}
public override void StopRacer()
{
RaceStarted = false;
}
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 6d3497d41c87415eab67cfc865262b79
timeCreated: 1769619757
-22
View File
@@ -1,22 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
namespace Code.Example.Race.Racer
{
public abstract class Racer : MonoBehaviour
{
protected List<Transform> Waypoints;
public int CurrentWaypointIndex { get; protected set; }
public RacerData Data { get; protected set; }
public int Id { get; set; }
public abstract void SetData(RacerData data);
public abstract void Initialize(List<Transform> waypoints);
public abstract void NextWaypoint();
public abstract void StartRacer();
public abstract void StopRacer();
[SerializeField] protected Rigidbody carRigidbody;
public Rigidbody CarRigidbody => GetComponent<Rigidbody>();
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 7f87ed38713d4b779df9e46c83b03fb7
timeCreated: 1769619306
@@ -1,97 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Code.Infrastructure.Configs;
using Code.Infrastructure.EventBus;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using EventBus = Code.Infrastructure.EventBus.EventBus;
namespace Code.Example.Race.Racer
{
public interface IRacerFactory
{
RacerSettingsConfig GetConfig(RacerType racerType);
UniTaskVoid LoadRacer(RacerType racerType);
void ReleaseRacer(RacerType racerType);
}
public class RacerFactory : IDisposable, IRacerFactory
{
private Dictionary<RacerType, RacerSettingsConfig> _racerConfigs;
private Dictionary<RacerType, AsyncOperationHandle<GameObject>> _racerPrefabsHandle = new();
private string _racerConfigsLabel;
private AsyncOperationHandle<IList<RacerSettingsConfig>> _racerConfigsHandle;
private EventBus _eventBus;
public RacerFactory(IConfigLocator configLocator, EventBus eventBus)
{
_eventBus = eventBus;
_racerConfigsLabel = configLocator.TryGetManyConfigAssetReferences<RacerSettingsConfig>();
LoadConfigs().Forget();
}
private async UniTaskVoid LoadConfigs()
{
_racerConfigsHandle = Addressables.LoadAssetsAsync<RacerSettingsConfig>(_racerConfigsLabel);
await _racerConfigsHandle.ToUniTask();
_racerConfigs = _racerConfigsHandle.Result.ToDictionary(x => x.racerData.type);
_eventBus.RaiseEvent<IRacerFactoryInitializedHandle>(x => x.RacerFactoryInitialized());
}
public RacerSettingsConfig GetConfig(RacerType racerType) => _racerConfigs[racerType];
public async UniTaskVoid LoadRacer(RacerType racerType)
{
if (_racerPrefabsHandle.ContainsKey(racerType))
{
_eventBus.RaiseEvent<IRacerLoadedHandle>(x => x.RacerLoaded(racerType, null));
return;
}
UnityEngine.Debug.LogWarning($"Racer loaded {racerType}");
_racerPrefabsHandle.Add(racerType,
Addressables.LoadAssetAsync<GameObject>(_racerConfigs[racerType].prefabReference));
await _racerPrefabsHandle[racerType].ToUniTask();
var racer = _racerPrefabsHandle[racerType].Result.GetComponent<Racer>();
racer.SetData(_racerConfigs[racerType].racerData);
_eventBus.RaiseEvent<IRacerLoadedHandle>(x => x.RacerLoaded(racerType, racer));
}
public void ReleaseRacer(RacerType racerType)
{
_racerPrefabsHandle[racerType].Release();
_racerPrefabsHandle.Remove(racerType);
}
public void Dispose()
{
UnityEngine.Debug.LogWarning($"Racers released");
foreach (var prefab in _racerPrefabsHandle)
prefab.Value.Release();
_racerPrefabsHandle.Clear();
_racerConfigsHandle.Release();
}
}
public interface IRacerFactoryInitializedHandle : IGlobalSubscriber
{
public void RacerFactoryInitialized();
}
public interface IRacerLoadedHandle : IGlobalSubscriber
{
public void RacerLoaded(RacerType type, Racer racer);
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5ab404f94a89460eae107b9d453fa64d
timeCreated: 1769620039
@@ -1,27 +0,0 @@
using System;
using Code.Infrastructure.Generators;
using UnityEngine.AddressableAssets;
namespace Code.Example.Race.Racer
{
[Config("Configs/Gameplay/RacerSettings", true)]
public class RacerSettings
{
[ToConfig] public RacerData racerData;
[ToConfig] public AssetReference prefabReference;
}
[Serializable]
public struct RacerData
{
public string name;
public float speed;
public float angularSpeed;
public float maxAcceleration;
public float brakeAcceleration;
public float turnSensitivity;
public float maxSteerAngle;
public RacerType type;
}
}
@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: f25b32b493144bfc9ca0c5016741d012
timeCreated: 1769619229
@@ -1,9 +0,0 @@
namespace Code.Example.Race.Racer
{
public enum RacerType
{
Player,
AIGreen,
AIRed
}
}
Loaded 100 of 340 files, more files were not shown because too many files have changed in this diff. Show more