├── Images ├── 1.png ├── 1s.png ├── 2.png ├── 2s.png ├── 3.png ├── 3s.png ├── 4.png ├── 4s.png └── icon.png ├── Assets ├── Scripts │ ├── Utils │ │ ├── SceneCamera.cs.meta │ │ ├── GameUtils.cs.meta │ │ ├── MathUtils.cs.meta │ │ ├── SceneCamera.cs │ │ └── MathUtils.cs │ ├── UI.meta │ ├── Audio.meta │ ├── Ball.meta │ ├── Blocks.meta │ ├── Events.meta │ ├── Game.meta │ ├── Laser.meta │ ├── Level.meta │ ├── Paddle.meta │ ├── Utils.meta │ ├── Ball │ │ ├── Helpers.meta │ │ ├── Systems.meta │ │ ├── Components.meta │ │ ├── Components │ │ │ ├── MegaBallTag.cs │ │ │ ├── BallHitEvent.cs.meta │ │ │ ├── BallLostEvent.cs.meta │ │ │ ├── MegaBallTag.cs.meta │ │ │ ├── BallSpawnRequest.cs.meta │ │ │ ├── BallStartMovingTag.cs │ │ │ ├── BallStartMovingTag.cs.meta │ │ │ ├── BallStuckToPaddle.cs.meta │ │ │ ├── BallLostEvent.cs │ │ │ ├── BallData.cs │ │ │ ├── BallHitEvent.cs │ │ │ ├── HitByBallEvent.cs │ │ │ ├── BallStuckToPaddle.cs │ │ │ ├── BallData.cs.meta │ │ │ ├── BallSpawnRequest.cs │ │ │ └── HitByBallEvent.cs.meta │ │ ├── Helpers │ │ │ ├── BallsHelper.cs.meta │ │ │ └── BallsHelper.cs │ │ └── Systems │ │ │ ├── BallSpawnerSystem.cs.meta │ │ │ ├── BallStartMovingSystem.cs.meta │ │ │ ├── ClearHitEventsSystem.cs.meta │ │ │ ├── BallProtectionCheatSystem.cs.meta │ │ │ ├── BallSpeedIncreaseSystem.cs.meta │ │ │ ├── BallStuckToPaddleSystem.cs.meta │ │ │ ├── BallCollisionResolvingSystem.cs.meta │ │ │ ├── BallStartMovingInputProcessingSystem.cs.meta │ │ │ ├── BallLossCheckSystem.cs.meta │ │ │ ├── BallSpawnCheatInputProcessingSystem.cs.meta │ │ │ ├── BallProtectionCheatSystem.cs │ │ │ ├── ClearHitEventsSystem.cs │ │ │ ├── BallStartMovingInputProcessingSystem.cs │ │ │ ├── BallSpeedIncreaseSystem.cs │ │ │ ├── BallLossCheckSystem.cs │ │ │ ├── BallStuckToPaddleSystem.cs │ │ │ └── BallSpawnCheatInputProcessingSystem.cs │ ├── Game │ │ ├── Systems.meta │ │ ├── Components.meta │ │ ├── Components │ │ │ ├── GameWinState.cs │ │ │ ├── GameData.cs.meta │ │ │ ├── GameOverState.cs │ │ │ ├── GameStartState.cs │ │ │ ├── MainMenuState.cs │ │ │ ├── BenchmarkModeTag.cs │ │ │ ├── GameOverState.cs.meta │ │ │ ├── GameProcessState.cs │ │ │ ├── GameSettings.cs.meta │ │ │ ├── GameStateData.cs.meta │ │ │ ├── GameWinState.cs.meta │ │ │ ├── InputSettings.cs.meta │ │ │ ├── MainMenuState.cs.meta │ │ │ ├── OptionsMenuState.cs │ │ │ ├── OwnerPlayerId.cs.meta │ │ │ ├── PlayerData.cs.meta │ │ │ ├── PlayerIndex.cs.meta │ │ │ ├── ScenePrefabs.cs.meta │ │ │ ├── BenchmarkModeTag.cs.meta │ │ │ ├── ChangeStateCommand.cs.meta │ │ │ ├── GamePausedEvent.cs.meta │ │ │ ├── GameProcessState.cs.meta │ │ │ ├── GameStartState.cs.meta │ │ │ ├── OptionsMenuState.cs.meta │ │ │ ├── GameSettingsAuthoring.cs.meta │ │ │ ├── HiScoreUpdatedEvent.cs.meta │ │ │ ├── InputSettingsAuthoring.cs.meta │ │ │ ├── ScenePrefabsAuthoring.cs.meta │ │ │ ├── StartBenchmarkRequest.cs │ │ │ ├── StartBenchmarkRequest.cs.meta │ │ │ ├── BenchmarkModeTagAuthoring.cs.meta │ │ │ ├── PlayerIndex.cs │ │ │ ├── OwnerPlayerId.cs │ │ │ ├── GamePausedEvent.cs │ │ │ ├── HiScoreUpdatedEvent.cs │ │ │ ├── PlayerData.cs │ │ │ ├── GameStateData.cs │ │ │ ├── GameData.cs │ │ │ ├── ChangeStateCommand.cs │ │ │ ├── ScenePrefabs.cs │ │ │ ├── InputSettings.cs │ │ │ ├── BenchmarkModeTagAuthoring.cs │ │ │ ├── InputSettingsAuthoring.cs │ │ │ ├── GameSettings.cs │ │ │ ├── ScenePrefabsAuthoring.cs │ │ │ └── GameSettingsAuthoring.cs │ │ └── Systems │ │ │ ├── GameSystem.cs.meta │ │ │ ├── GameOverSystem.cs.meta │ │ │ ├── GameStartSystem.cs.meta │ │ │ ├── GameWinSystem.cs.meta │ │ │ ├── SystemGroups.cs.meta │ │ │ ├── GameStateChangeSystem.cs.meta │ │ │ ├── GameWinCheckSystem.cs.meta │ │ │ ├── BenchmarkProcessSystem.cs.meta │ │ │ ├── PauseInputProcessingSystem.cs.meta │ │ │ ├── GameOverCheckSystem.cs.meta │ │ │ ├── PauseInputProcessingSystem.cs │ │ │ ├── GameWinCheckSystem.cs │ │ │ ├── GameOverCheckSystem.cs │ │ │ ├── SystemGroups.cs │ │ │ ├── GameStateChangeSystem.cs │ │ │ ├── BenchmarkProcessSystem.cs │ │ │ ├── GameOverSystem.cs │ │ │ └── GameWinSystem.cs │ ├── Level │ │ ├── Components │ │ │ ├── WallTag.cs │ │ │ ├── LevelTag.cs │ │ │ ├── WallTag.cs.meta │ │ │ ├── LevelTag.cs.meta │ │ │ ├── LevelTagAuthoring.cs.meta │ │ │ ├── LevelsSettings.cs.meta │ │ │ ├── WallTagAuthoring.cs.meta │ │ │ ├── LevelDespawnRequest.cs │ │ │ ├── LevelsSettingsAuthoring.cs.meta │ │ │ ├── LevelDespawnRequest.cs.meta │ │ │ ├── LevelTagAuthoring.cs │ │ │ ├── WallTagAuthoring.cs │ │ │ └── LevelsSettings.cs │ │ ├── Components.meta │ │ ├── Systems.meta │ │ └── Systems │ │ │ ├── LevelDespawnSystem.cs.meta │ │ │ └── LevelDespawnSystem.cs │ ├── PowerUps.meta │ ├── Rendering.meta │ ├── UI │ │ ├── Panels.meta │ │ ├── Systems.meta │ │ ├── Components.meta │ │ ├── Panels │ │ │ ├── OptionsUI.cs.meta │ │ │ ├── TitleUI.cs.meta │ │ │ ├── GamePanelUI.cs.meta │ │ │ └── OptionsUI.cs │ │ ├── Components │ │ │ ├── UISettingsAuthoring.cs.meta │ │ │ └── UISettingsAuthoring.cs │ │ └── Systems │ │ │ ├── OptionsUIPresentationSystem.cs.meta │ │ │ ├── TitleUIPresentationSystem.cs.meta │ │ │ ├── GamePanelUIPresentationSystem.cs.meta │ │ │ ├── TitleUIPresentationSystem.cs │ │ │ └── OptionsUIPresentationSystem.cs │ ├── Audio │ │ ├── Components.meta │ │ ├── Systems.meta │ │ ├── Components │ │ │ ├── StopAudioSource.cs │ │ │ ├── AudioSettingsData.cs.meta │ │ │ ├── StartAudioSource.cs.meta │ │ │ ├── StopAudioSource.cs.meta │ │ │ ├── AudioSettingsDataAuthoring.cs.meta │ │ │ ├── StartAudioSource.cs │ │ │ ├── AudioSettingsData.cs │ │ │ └── AudioSettingsDataAuthoring.cs │ │ └── Systems │ │ │ └── AudioSystem.cs.meta │ ├── Blocks │ │ ├── Components.meta │ │ ├── Components │ │ │ ├── GoldBlock.cs │ │ │ ├── GoldBlock.cs.meta │ │ │ ├── BlocksSpawnRequest.cs.meta │ │ │ ├── BlocksSpawnRequest.cs │ │ │ ├── BlockData.cs │ │ │ └── BlockData.cs.meta │ │ ├── Systems.meta │ │ └── Systems │ │ │ ├── BlocksSpawnerSystem.cs.meta │ │ │ └── BlockHitSystem.cs.meta │ ├── Events │ │ ├── Components.meta │ │ ├── Extensions.meta │ │ ├── Systems.meta │ │ ├── Components │ │ │ ├── EventsHolderTag.cs │ │ │ ├── EventsHolderTag.cs.meta │ │ │ ├── SingleFrameComponent.cs.meta │ │ │ ├── SingleFrameEntityTag.cs │ │ │ ├── SingleFrameEntityTag.cs.meta │ │ │ ├── SingleFrameComponentAuthoring.cs.meta │ │ │ ├── SingleFrameComponent.cs │ │ │ └── SingleFrameComponentAuthoring.cs │ │ ├── Extensions │ │ │ ├── ExtensionMethods.cs.meta │ │ │ └── ExtensionMethods.cs │ │ └── Systems │ │ │ ├── SingleFrameEntitySystem.cs.meta │ │ │ └── SingleFrameEntitySystem.cs │ ├── Laser │ │ ├── Components.meta │ │ ├── Systems.meta │ │ ├── Components │ │ │ ├── LaserShotTag.cs │ │ │ ├── LaserShotTag.cs.meta │ │ │ ├── HitByLaserEvent.cs.meta │ │ │ ├── LaserSpawnRequest.cs.meta │ │ │ ├── HitByLaserEvent.cs │ │ │ └── LaserSpawnRequest.cs │ │ └── Systems │ │ │ ├── LaserSpawnerSystem.cs.meta │ │ │ ├── LaserTriggeringSystem.cs.meta │ │ │ ├── LaserShotInputProcessingSystem.cs.meta │ │ │ ├── LaserDestroySystem.cs.meta │ │ │ ├── LaserDestroySystem.cs │ │ │ ├── LaserShotInputProcessingSystem.cs │ │ │ ├── LaserTriggeringSystem.cs │ │ │ └── LaserSpawnerSystem.cs │ ├── Paddle │ │ ├── Components.meta │ │ ├── Systems.meta │ │ ├── Components │ │ │ ├── LaserPaddleTag.cs │ │ │ ├── StickPaddleTag.cs │ │ │ ├── BallLink.cs.meta │ │ │ ├── PaddleData.cs.meta │ │ │ ├── LaserPaddleTag.cs.meta │ │ │ ├── StickPaddleTag.cs.meta │ │ │ ├── PaddleDyingStateData.cs.meta │ │ │ ├── PaddleMaterialsConfig.cs.meta │ │ │ ├── PaddleSpawnRequest.cs.meta │ │ │ ├── PaddleMaterialsConfigAuthoring.cs.meta │ │ │ ├── PaddleSpawnRequest.cs │ │ │ ├── PaddleData.cs │ │ │ ├── PaddleMaterialsConfig.cs │ │ │ ├── BallLink.cs │ │ │ ├── PaddleInputData.cs │ │ │ ├── PaddleDyingStateData.cs │ │ │ ├── PaddleInputData.cs.meta │ │ │ └── PaddleMaterialsConfigAuthoring.cs │ │ └── Systems │ │ │ ├── PaddleAIInputSystem.cs.meta │ │ │ ├── PaddleBallHitSystem.cs.meta │ │ │ ├── PaddleDyingSystem.cs.meta │ │ │ ├── PaddleSpawnerSystem.cs.meta │ │ │ ├── StickPaddleSystem.cs.meta │ │ │ ├── PaddleInputCleanupSystem.cs.meta │ │ │ ├── PaddleInputPollSystem.cs.meta │ │ │ ├── PaddleBallLossCheckSystem.cs.meta │ │ │ ├── PaddleMovementSystem.cs.meta │ │ │ ├── PaddleInputCleanupSystem.cs │ │ │ ├── PaddleAIInputSystem.cs │ │ │ ├── PaddleBallLossCheckSystem.cs │ │ │ ├── PaddleMovementSystem.cs │ │ │ └── PaddleBallHitSystem.cs │ ├── PowerUps │ │ ├── Systems.meta │ │ ├── Components.meta │ │ ├── Systems │ │ │ ├── Implementations.meta │ │ │ ├── PowerUpsHelper.cs.meta │ │ │ ├── PowerUpLossCheckSystem.cs.meta │ │ │ ├── PowerUpReceivingSystem.cs.meta │ │ │ ├── PowerUpSpawnerSystem.cs.meta │ │ │ ├── PowerUpTriggeringSystem.cs.meta │ │ │ ├── Implementations │ │ │ │ ├── BreakPowerUpSystem.cs.meta │ │ │ │ ├── CatchPowerUpSystem.cs.meta │ │ │ │ ├── EnlargePowerUpSystem.cs.meta │ │ │ │ ├── LaserPowerUpSystem.cs.meta │ │ │ │ ├── MegaBallPowerUpSystem.cs.meta │ │ │ │ ├── PlayerPowerUpSystem.cs.meta │ │ │ │ ├── SlowPowerUpSystem.cs.meta │ │ │ │ ├── DisruptionPowerUpSystem.cs.meta │ │ │ │ ├── BreakPowerUpSystem.cs │ │ │ │ ├── PlayerPowerUpSystem.cs │ │ │ │ ├── SlowPowerUpSystem.cs │ │ │ │ ├── CatchPowerUpSystem.cs │ │ │ │ └── LaserPowerUpSystem.cs │ │ │ ├── PowerUpsHelper.cs │ │ │ ├── PowerUpLossCheckSystem.cs │ │ │ ├── PowerUpTriggeringSystem.cs │ │ │ └── PowerUpReceivingSystem.cs │ │ └── Components │ │ │ ├── PowerUpData.cs.meta │ │ │ ├── PowerUpReceivedEvent.cs.meta │ │ │ ├── PowerUpReceivedEvent.cs │ │ │ └── PowerUpData.cs │ └── Rendering │ │ ├── Systems.meta │ │ ├── Components.meta │ │ ├── Components │ │ ├── TextureSheetConfig.cs.meta │ │ ├── MaterialTextureSTData.cs.meta │ │ ├── PlayTextureAnimation.cs.meta │ │ ├── TextureAnimationData.cs.meta │ │ ├── TextureSheetConfigAuthoring.cs.meta │ │ ├── TextureSheetConfig.cs │ │ ├── TextureAnimationData.cs │ │ ├── MaterialColorData.cs │ │ ├── MaterialTextureSTData.cs │ │ ├── MaterialColorData.cs.meta │ │ ├── PlayTextureAnimation.cs │ │ └── TextureSheetConfigAuthoring.cs │ │ └── Systems │ │ └── TextureAnimationSystem.cs.meta ├── Audio │ ├── BallLoss.mp3 │ ├── GameOver.mp3 │ ├── BlockDamage.mp3 │ ├── LaserShot.mp3 │ ├── PaddleCatch.mp3 │ ├── PaddleHit.mp3 │ ├── RoundStart.mp3 │ ├── BlockDestroy.mp3 │ ├── RoundCleared.mp3 │ ├── PowerUpReceived.mp3 │ ├── BallLoss.mp3.meta │ ├── BlockDamage.mp3.meta │ ├── BlockDestroy.mp3.meta │ ├── GameOver.mp3.meta │ ├── LaserShot.mp3.meta │ ├── PaddleCatch.mp3.meta │ ├── PaddleHit.mp3.meta │ ├── RoundCleared.mp3.meta │ ├── RoundStart.mp3.meta │ └── PowerUpReceived.mp3.meta ├── Levels │ ├── level1.png │ ├── level2.png │ ├── level3.png │ ├── level4.png │ ├── level5.png │ ├── benchmark1.png │ ├── template.png │ └── TextureImporter.preset.meta ├── Textures │ ├── back1.png │ ├── balls.png │ ├── icon.png │ ├── laser.png │ ├── title.png │ ├── bricks.png │ ├── paddles.png │ ├── player1.png │ ├── player2.png │ ├── player3.png │ ├── player4.png │ ├── powerups.png │ ├── wall_hor.png │ ├── game_panel.png │ ├── icon_back.png │ ├── icon_fore.png │ ├── wall_vert.png │ ├── paddles_big.png │ ├── game_area.renderTexture.meta │ └── game_area.renderTexture ├── Font │ ├── PressStart2P.ttf │ └── PressStart2P.ttf.meta ├── Prefabs │ ├── Ball.prefab.meta │ ├── Wall.prefab.meta │ ├── Block.prefab.meta │ ├── Laser.prefab.meta │ ├── Paddle.prefab.meta │ ├── PowerUp.prefab.meta │ ├── Background.prefab.meta │ ├── BenchmarkLevel.prefab.meta │ └── DefaultLevel.prefab.meta ├── Scenes │ ├── Arkanoid.unity.meta │ ├── SubScenes │ │ └── Entities.unity.meta │ └── SubScenes.meta ├── Audio.meta ├── Font.meta ├── Levels.meta ├── Prefabs.meta ├── SceneDependencyCache │ ├── 40234a03c5f2a03f6a0a44f91dc05f82.sceneWithBuildSettings │ ├── 5d1abeed48aee068f333aa7e640c5a7d.sceneWithBuildSettings │ ├── 658c0b895b89fa01d1223975fd9abe5e.sceneWithBuildSettings │ ├── 40234a03c5f2a03f6a0a44f91dc05f82.sceneWithBuildSettings.meta │ ├── 5d1abeed48aee068f333aa7e640c5a7d.sceneWithBuildSettings.meta │ └── 658c0b895b89fa01d1223975fd9abe5e.sceneWithBuildSettings.meta ├── Scenes.meta ├── Scripts.meta ├── Shaders.meta ├── Materials.meta ├── Resources.meta ├── Settings.meta ├── Textures.meta ├── StreamingAssets.meta ├── SceneDependencyCache.meta ├── Materials │ ├── Ball.mat.meta │ ├── Block.mat.meta │ ├── HWall.mat.meta │ ├── LWall.mat.meta │ ├── Paddle.mat.meta │ ├── RWall.mat.meta │ ├── Background.mat.meta │ ├── Laser.mat.meta │ ├── PowerUp.mat.meta │ ├── Shadow.mat.meta │ ├── PaddleBig.mat.meta │ ├── HWall.mat │ ├── RWall.mat │ ├── LWall.mat │ └── Background.mat ├── DefaultVolumeProfile.asset.meta ├── Settings │ ├── UniversalRPSettings.asset.meta │ ├── UniversalRPRendererSettings.asset.meta │ ├── UniversalRenderPipelineGlobalSettings.asset.meta │ └── UniversalRPRendererSettings.asset └── Shaders │ ├── UnlitST.shader.meta │ ├── UnlitSTInput.hlsl.meta │ └── UnlitSTInput.hlsl ├── ProjectSettings ├── ProjectVersion.txt ├── CommonBurstAotSettings.json ├── ClusterInputManager.asset ├── PresetManager.asset ├── MultiplayerManager.asset ├── XRSettings.asset ├── VersionControlSettings.asset ├── TimeManager.asset ├── EditorBuildSettings.asset ├── VFXManager.asset ├── URPProjectSettings.asset ├── BurstAotSettings_Android.json ├── BurstAotSettings_StandaloneWindows.json ├── AudioManager.asset ├── TimelineSettings.asset ├── EntitiesClientSettings.asset ├── RiderScriptEditorPersistedState.asset ├── ShaderGraphSettings.asset ├── TagManager.asset ├── UnityConnectSettings.asset ├── PackageManagerSettings.asset ├── MemorySettings.asset ├── DynamicsManager.asset ├── EditorSettings.asset ├── NavMeshAreas.asset └── Physics2DSettings.asset ├── .gitignore ├── LICENSE └── Packages └── manifest.json /Images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/1.png -------------------------------------------------------------------------------- /Images/1s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/1s.png -------------------------------------------------------------------------------- /Images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/2.png -------------------------------------------------------------------------------- /Images/2s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/2s.png -------------------------------------------------------------------------------- /Images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/3.png -------------------------------------------------------------------------------- /Images/3s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/3s.png -------------------------------------------------------------------------------- /Images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/4.png -------------------------------------------------------------------------------- /Images/4s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/4s.png -------------------------------------------------------------------------------- /Images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Images/icon.png -------------------------------------------------------------------------------- /Assets/Scripts/Utils/SceneCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4355fb8f74f4f44a86df032ccbe541b -------------------------------------------------------------------------------- /Assets/Audio/BallLoss.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/BallLoss.mp3 -------------------------------------------------------------------------------- /Assets/Audio/GameOver.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/GameOver.mp3 -------------------------------------------------------------------------------- /Assets/Levels/level1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/level1.png -------------------------------------------------------------------------------- /Assets/Levels/level2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/level2.png -------------------------------------------------------------------------------- /Assets/Levels/level3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/level3.png -------------------------------------------------------------------------------- /Assets/Levels/level4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/level4.png -------------------------------------------------------------------------------- /Assets/Levels/level5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/level5.png -------------------------------------------------------------------------------- /Assets/Textures/back1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/back1.png -------------------------------------------------------------------------------- /Assets/Textures/balls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/balls.png -------------------------------------------------------------------------------- /Assets/Textures/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/icon.png -------------------------------------------------------------------------------- /Assets/Textures/laser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/laser.png -------------------------------------------------------------------------------- /Assets/Textures/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/title.png -------------------------------------------------------------------------------- /Assets/Audio/BlockDamage.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/BlockDamage.mp3 -------------------------------------------------------------------------------- /Assets/Audio/LaserShot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/LaserShot.mp3 -------------------------------------------------------------------------------- /Assets/Audio/PaddleCatch.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/PaddleCatch.mp3 -------------------------------------------------------------------------------- /Assets/Audio/PaddleHit.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/PaddleHit.mp3 -------------------------------------------------------------------------------- /Assets/Audio/RoundStart.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/RoundStart.mp3 -------------------------------------------------------------------------------- /Assets/Font/PressStart2P.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Font/PressStart2P.ttf -------------------------------------------------------------------------------- /Assets/Levels/benchmark1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/benchmark1.png -------------------------------------------------------------------------------- /Assets/Levels/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Levels/template.png -------------------------------------------------------------------------------- /Assets/Scripts/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 016c38ba8d3e45c5b6f08dc78843b566 3 | timeCreated: 1590145230 -------------------------------------------------------------------------------- /Assets/Textures/bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/bricks.png -------------------------------------------------------------------------------- /Assets/Textures/paddles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/paddles.png -------------------------------------------------------------------------------- /Assets/Textures/player1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/player1.png -------------------------------------------------------------------------------- /Assets/Textures/player2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/player2.png -------------------------------------------------------------------------------- /Assets/Textures/player3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/player3.png -------------------------------------------------------------------------------- /Assets/Textures/player4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/player4.png -------------------------------------------------------------------------------- /Assets/Textures/powerups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/powerups.png -------------------------------------------------------------------------------- /Assets/Textures/wall_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/wall_hor.png -------------------------------------------------------------------------------- /Assets/Audio/BlockDestroy.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/BlockDestroy.mp3 -------------------------------------------------------------------------------- /Assets/Audio/RoundCleared.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/RoundCleared.mp3 -------------------------------------------------------------------------------- /Assets/Scripts/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad30372e903f4df7a509916b933ed871 3 | timeCreated: 1649010111 -------------------------------------------------------------------------------- /Assets/Scripts/Ball.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e151db21dfb94562a18bd2771ea7aba1 3 | timeCreated: 1649081444 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00e34c56a3ac4db0bf629bbc0ae64b6d 3 | timeCreated: 1649081582 -------------------------------------------------------------------------------- /Assets/Scripts/Events.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b592027804ad4f2f8222c34c17917473 3 | timeCreated: 1648029684 -------------------------------------------------------------------------------- /Assets/Scripts/Game.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 149adc0cb8ce49f29d9cc2dc1d6982eb 3 | timeCreated: 1647937922 -------------------------------------------------------------------------------- /Assets/Scripts/Laser.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fff293037a8c4423a721dca2b63b3f59 3 | timeCreated: 1651084479 -------------------------------------------------------------------------------- /Assets/Scripts/Level.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2b201394b8041ad86cc5e9d327141ea 3 | timeCreated: 1649869328 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 916166dd809b4f83b1ebbc9dcaa9089a 3 | timeCreated: 1649081524 -------------------------------------------------------------------------------- /Assets/Scripts/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49c09e8044834672a9dfeea75d43530c 3 | timeCreated: 1650968651 -------------------------------------------------------------------------------- /Assets/Textures/game_panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/game_panel.png -------------------------------------------------------------------------------- /Assets/Textures/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/icon_back.png -------------------------------------------------------------------------------- /Assets/Textures/icon_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/icon_fore.png -------------------------------------------------------------------------------- /Assets/Textures/wall_vert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/wall_vert.png -------------------------------------------------------------------------------- /Assets/Audio/PowerUpReceived.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Audio/PowerUpReceived.mp3 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Helpers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad6a8b9a97db4b99a248fb22d472fb03 3 | timeCreated: 1650544505 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4178053b9b244c8aae7e3611b6d2c2e 3 | timeCreated: 1649081458 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff26b856ea3c46e5aac017a66f85072f 3 | timeCreated: 1649081751 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/WallTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct WallTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84678e5a312749769cb7cd16881c45c4 3 | timeCreated: 1648475796 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fdf93d00217d46a181ed1e075fb3e0d5 3 | timeCreated: 1649081666 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Panels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed96611ad3374c2c8355f2bfe4e17971 3 | timeCreated: 1650269653 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62ee9a43df4d49cd9cdc49f5439ac73d 3 | timeCreated: 1650269641 -------------------------------------------------------------------------------- /Assets/Textures/paddles_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/Textures/paddles_big.png -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51cadc9b57a246d58a2bbd6199751582 3 | timeCreated: 1649010138 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59cecdfe821c404eaf92257be8d1e03c 3 | timeCreated: 1649010145 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cebda8db9fb4e9b98aa48fd7bdc7ab2 3 | timeCreated: 1649081452 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8daec3d967ad49cebd4faf564f9d2ea1 3 | timeCreated: 1649081620 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/GoldBlock.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GoldBlock : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d4dacbd58a44c5eb12a214414700285 3 | timeCreated: 1649081626 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2140881af144494917ef91d4f38102d 3 | timeCreated: 1648029693 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Extensions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b913a9d65b7c47a9a255493114637de6 3 | timeCreated: 1648029972 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63095ec6d9e64168b1a63202f6e608d9 3 | timeCreated: 1648029965 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02786c28d1534d24be091074bebadab8 3 | timeCreated: 1649081743 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 122966dd77ae46ca9f805fa0757a77cb 3 | timeCreated: 1651084594 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afe829f9fb38435e8558612589ce9796 3 | timeCreated: 1651084509 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a6b705af1184865a21f86d5972490e7 3 | timeCreated: 1649869353 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct LevelTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Level/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fae252e6f99141e58bc285e282829e7e 3 | timeCreated: 1649869377 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bc57953a59a491d8733d713de785beb 3 | timeCreated: 1649081540 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a783f0d4e3943b1b3431506b766d4c9 3 | timeCreated: 1649081548 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb5a7d51bf02493a940a1e02aa9692be 3 | timeCreated: 1648475812 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49450b9d6a6c4756b110615a2b17fc69 3 | timeCreated: 1649081684 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e751545842164e3ab200271bb6e6428c 3 | timeCreated: 1650269605 -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.1.10f1 2 | m_EditorVersionWithRevision: 6000.1.10f1 (3c681a6c22ff) 3 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/MegaBallTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct MegaBallTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameWinState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameWinState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/LaserShotTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct LaserShotTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d4c17bc5a4440a7abe3083f393ed230 3 | timeCreated: 1648475804 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 086b598c62764808a4e08d4cbc031574 3 | timeCreated: 1649081678 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Panels/OptionsUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eee24a83c3264b619cbe9593ffc1bc0d 3 | timeCreated: 1751877593 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Panels/TitleUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b171533ffb254b5bb7c75b79972cc05a 3 | timeCreated: 1590145234 -------------------------------------------------------------------------------- /Assets/Scripts/Utils/GameUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79683c485c9d433c862a1b63e7e9a66f 3 | timeCreated: 1717357742 -------------------------------------------------------------------------------- /Assets/Scripts/Utils/MathUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b4c1575c53f4e09a78826f1a427365b 3 | timeCreated: 1649686201 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Helpers/BallsHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed640002b9794db898902424803e4a68 3 | timeCreated: 1650544616 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d0cb25d187a469eafdbc58a9160a041 3 | timeCreated: 1655297789 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameOverState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameOverState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameStartState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameStartState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/MainMenuState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct MainMenuState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b651391808294c67b65c6b367094a282 3 | timeCreated: 1649670686 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/WallTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d81d7619ea0844b385916b9288eeb74c 3 | timeCreated: 1664626879 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/LaserPaddleTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct LaserPaddleTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/StickPaddleTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct StickPaddleTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/UI/Panels/GamePanelUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 752967dda5f64665a1a08074927e8a30 3 | timeCreated: 1655211796 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/StopAudioSource.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct StopAudioSource : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Systems/AudioSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd6ae7fa11654777afa58ceed4eac2fc 3 | timeCreated: 1650366289 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallHitEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e894e9936ccf4691b455fa542fa7d361 3 | timeCreated: 1650009002 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallLostEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92be84fd86b14dc58218ed8b5bf48840 3 | timeCreated: 1648806318 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/MegaBallTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c047933454ed460b8a6f128c3b060947 3 | timeCreated: 1651080774 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/GoldBlock.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7464bb1867d48efa32da5506a878350 3 | timeCreated: 1649752721 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/EventsHolderTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct EventsHolderTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/BenchmarkModeTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BenchmarkModeTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameOverState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f29123a640c84a53b12cc7be4b6edf8a 3 | timeCreated: 1655295723 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameProcessState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameProcessState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee4b3ec40b45419fbb50800381599f7e 3 | timeCreated: 1664626820 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameStateData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a795995b997e49cdbe3c18dadc0eeeb1 3 | timeCreated: 1591547264 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameWinState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 296aacdc109c4a339df5d03355d48bf7 3 | timeCreated: 1655295720 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/InputSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54405f02f2fe4eb384252b80c72c7a4d 3 | timeCreated: 1664626831 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/MainMenuState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02822741aebd42dfbb64f0625589bfd8 3 | timeCreated: 1655295726 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/OptionsMenuState.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct OptionsMenuState : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/OwnerPlayerId.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e5f2eabd71b45fb8fbead5b867f06cc 3 | timeCreated: 1649869137 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/PlayerData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbc5452da9b147f9bed63698d3a63004 3 | timeCreated: 1647883019 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/PlayerIndex.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46787693c6dc489b921e4493533e73b9 3 | timeCreated: 1651665576 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ScenePrefabs.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be949e27b099425484ab751c18d79b97 3 | timeCreated: 1664626856 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameOverSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0b179c745cb4196af391ef3ff285ebe 3 | timeCreated: 1648125757 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameStartSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8ad2b93a42f472d9c600bbda04cb063 3 | timeCreated: 1718135639 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameWinSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b27223519853458b9ad70598c2a061b2 3 | timeCreated: 1648131351 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/SystemGroups.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 325218f4d6c24114999b76bdcb2372fa 3 | timeCreated: 1676795733 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/LaserShotTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a368418cbfc6487a944bf0ae09cf5acf 3 | timeCreated: 1651084714 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf86a2da86934b239bf34003f1824636 3 | timeCreated: 1664626875 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/BallLink.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10b30b133f1e4096a4f1056d2a628512 3 | timeCreated: 1650049790 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae6a7d6c12cc4806834c0f8e5dff44dd 3 | timeCreated: 1647947563 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a645c5766b934395ab2c3c3c2646fcba 3 | timeCreated: 1649936966 -------------------------------------------------------------------------------- /ProjectSettings/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/AudioSettingsData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 015a5d9a2c8d46ff95feb515bcd11448 3 | timeCreated: 1664625888 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/StartAudioSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b21781d35f04131b5d0f309130ae9f6 3 | timeCreated: 1649010126 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/StopAudioSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 662edd3b45c14dc283f5f360bff1056b 3 | timeCreated: 1649010130 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallSpawnRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5a86ec7dbe344c7963f5ecfce373d36 3 | timeCreated: 1591529677 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallStartMovingTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallStartMovingTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallStartMovingTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ad3e4763cb446c5a9c4ab1d77d22ce1 3 | timeCreated: 1655193097 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallStuckToPaddle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35b098cd6d854122b7fddf063e1f9cc8 3 | timeCreated: 1650005321 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallSpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1c360aa83db465d8083b7ee98602e1f 3 | timeCreated: 1591546366 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallStartMovingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57fe099a3fb24d8699ba842fa3525c6a 3 | timeCreated: 1655193059 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/ClearHitEventsSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f305e06bb0ab4539b708594fffe6d98d 3 | timeCreated: 1717006640 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Systems/BlocksSpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef4e43894c1d419b84de911f0592cd15 3 | timeCreated: 1591546336 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/EventsHolderTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a833ebb80bef443b998773394ff499c6 3 | timeCreated: 1648034059 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/BenchmarkModeTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a11f7c0cbb6f4165867a7e4ae4f3a740 3 | timeCreated: 1716491693 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ChangeStateCommand.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc6391e0007b4c15a9a00374b4107de9 3 | timeCreated: 1650978848 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GamePausedEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60c0a6635e3e4fb7a7d5cc43605c4649 3 | timeCreated: 1650202271 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameProcessState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8950cfec76e94cba8494cf5cbdf84b18 3 | timeCreated: 1655295717 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameStartState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39997f0af4b5457cb1d805a0eef9afcd 3 | timeCreated: 1718135656 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/OptionsMenuState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf375a50ad084ed3af0a12af77d53ee2 3 | timeCreated: 1751892442 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameStateChangeSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29b346899a6948478a270641a7f39cf8 3 | timeCreated: 1648118007 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameWinCheckSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df98c27a7cea42eaa365653cc27c1982 3 | timeCreated: 1647614097 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/HitByLaserEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72128639db1b4c4a9d6583b0390630d5 3 | timeCreated: 1651085199 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/LaserSpawnRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2d66b50e41a4dff88d941f45963acb4 3 | timeCreated: 1651084587 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserSpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33e79d5e1078481c97695a56208e23e4 3 | timeCreated: 1651084484 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelTagAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8040f66e45b14c90bebbe64843b04b19 3 | timeCreated: 1648129140 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelsSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 917a409a5cdd43c3959d93ebf795e6eb 3 | timeCreated: 1664626885 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/WallTagAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8396a5dcf0d4c27a41f4dcef044aca3 3 | timeCreated: 1649690097 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/LaserPaddleTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be67aac1531a4d90ac585a57cf32892f 3 | timeCreated: 1651083781 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/StickPaddleTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3d609b9b503435a897e8184122fe742 3 | timeCreated: 1650013915 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleAIInputSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de46115eeb3e4a5ea7ee2d05a37ba2a9 3 | timeCreated: 1655301987 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleBallHitSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a8b9b9e6541477fb48c2e9c9dc43adc 3 | timeCreated: 1649689439 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleDyingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9664f73d7516408e8132612ca90e0d0b 3 | timeCreated: 1647937928 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleSpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e81196fc3b6943e29066d827290f213f 3 | timeCreated: 1591546360 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/StickPaddleSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30a56816ad2a475aa32689508a5cce5f 3 | timeCreated: 1650017161 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Components/PowerUpData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf720a9dc7e440a99da9ea1ff1b23aa0 3 | timeCreated: 1648465486 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpsHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adedfbe33ac744d8ae5b959e2a95ca12 3 | timeCreated: 1651230335 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Components/UISettingsAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79efc25aacf84cd0bc1a98d431b96ddd 3 | timeCreated: 1650209197 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallProtectionCheatSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36ed6007453144fcb3c98a6f1f05d1fe 3 | timeCreated: 1651140317 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallSpeedIncreaseSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14cb29f7bf7d4adb9e84656d057ad3e0 3 | timeCreated: 1649678446 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallStuckToPaddleSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e01cf27729504ea9b08c32eb97cf3fb8 3 | timeCreated: 1648063142 -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/BlocksSpawnRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 124c12fba1d6402a9919e8d9e136f765 3 | timeCreated: 1591546398 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameComponent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92bf56249dad495a8da49dfb3b5f2100 3 | timeCreated: 1648029785 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameEntityTag.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct SingleFrameEntityTag : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameEntityTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7500cdeecdf4291abb252d9019ff10d 3 | timeCreated: 1648034055 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameSettingsAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40dcf6ecd68f44c4bb4571a84ef1cd00 3 | timeCreated: 1647869733 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/HiScoreUpdatedEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c63a2026dbca4f9db56441a947fc7953 3 | timeCreated: 1650203687 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/InputSettingsAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6746a1290afd4e3db80c85500fc6a346 3 | timeCreated: 1655304658 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ScenePrefabsAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb7fa9300a244e59a9edb1c8520f6c0a 3 | timeCreated: 1648044448 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/StartBenchmarkRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct StartBenchmarkRequest : IComponentData 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/StartBenchmarkRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cfeab47504342109a1feec64cf2465c 3 | timeCreated: 1716468157 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/BenchmarkProcessSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4c32e2f18e14f9bb8ba8e51b329818f 3 | timeCreated: 1716458926 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/PauseInputProcessingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b577b7af79d344cbaaf8021bf1a3008e 3 | timeCreated: 1655194673 -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserTriggeringSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3fe92afd1fc437ea068ad7d8367c283 3 | timeCreated: 1651085072 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelDespawnRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct LevelDespawnRequest : IComponentData 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleDyingStateData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 809fc65552e04e1fae6795a00092ba02 3 | timeCreated: 1649935527 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleMaterialsConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a50682dceb434c409398819a8e896415 3 | timeCreated: 1664626912 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleSpawnRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80f99781d52b475cb93d81ec008a218a 3 | timeCreated: 1591546402 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleInputCleanupSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6053051de2f4adb9f3e58dc921d575f 3 | timeCreated: 1650382113 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleInputPollSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76bd891cf05f4ceeb19db784a242cd27 3 | timeCreated: 1650012633 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpLossCheckSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98990aa86e144af48d00b541131d96dd 3 | timeCreated: 1648475111 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpReceivingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cecd63ef9714342a489af2cb3659dda 3 | timeCreated: 1648475769 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpSpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7d52af61f6f40c6b7aac7bfc6718bc7 3 | timeCreated: 1648465704 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureSheetConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d08d22416dcb421280ff753574fac9b0 3 | timeCreated: 1664626928 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems/OptionsUIPresentationSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5e83d8daa5c4203b03ea3117433b7d7 3 | timeCreated: 1751878685 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems/TitleUIPresentationSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f780e05a143844549d631df8e1185d4a 3 | timeCreated: 1664705038 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/AudioSettingsDataAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7f22c27fa704af3b613d40bdd2cd662 3 | timeCreated: 1650369991 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallLostEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallLostEvent : IComponentData, IEnableableComponent 4 | { 5 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallCollisionResolvingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a22a53e8b2454e6a863ab67900df9b9c 3 | timeCreated: 1647510479 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/BenchmarkModeTagAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78be1838c27448ae91b6e80780e1eab5 3 | timeCreated: 1716491699 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/PlayerIndex.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct PlayerIndex : IComponentData 4 | { 5 | public int Value; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserShotInputProcessingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46b77ef2387d4c719a8dfd9a7737d243 3 | timeCreated: 1655194640 -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelsSettingsAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12dd79eaa3f74f49b1e3ddb304f1abd4 3 | timeCreated: 1654446116 -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleBallLossCheckSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6287e472449487b82ea1fd8a6fce527 3 | timeCreated: 1648806402 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Components/PowerUpReceivedEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc4900def79240999d90c694fb25dcd8 3 | timeCreated: 1648470263 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpTriggeringSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e47a02becc94322a8c7866f5cb8f9e9 3 | timeCreated: 1648470206 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/MaterialTextureSTData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bff471f826824db798eac4c3b6dc68cb 3 | timeCreated: 1648196119 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/PlayTextureAnimation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b57e6b16cf014d15b046697c128fa4fe 3 | timeCreated: 1649152940 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureAnimationData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23ea25cb144e4b65b93a67faf982c5f4 3 | timeCreated: 1648202312 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Systems/TextureAnimationSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b73b69b68a344ec807627a47a39e0ef 3 | timeCreated: 1648201368 -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems/GamePanelUIPresentationSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72e878991d4f467ca99fba43b74af967 3 | timeCreated: 1650204444 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallData : IComponentData 4 | { 5 | public Entity OwnerPaddle; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallStartMovingInputProcessingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2aae1624b4a34ac2b0b81a967275b9de 3 | timeCreated: 1655194656 -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameComponentAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a44cb611d5a4ccebb1df9962b50c50f 3 | timeCreated: 1651054126 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/OwnerPlayerId.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct OwnerPlayerId : IComponentData 4 | { 5 | public Entity Value; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleMaterialsConfigAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 300e4f50c4f946d18c54b84c9bcc0641 3 | timeCreated: 1651067172 -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureSheetConfigAuthoring.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1b3425753234dfca2eccf0e7c5bfd0f 3 | timeCreated: 1649147437 -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GamePausedEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GamePausedEvent : IComponentData 4 | { 5 | public bool Paused; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/BreakPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66e8375a47a340bc992cc4ebb7478c91 3 | timeCreated: 1651067853 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/CatchPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 713503b638ae4bc582b4d113a0b81cf7 3 | timeCreated: 1650012808 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/EnlargePowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f6cfb50fec74103887a323af96f3a92 3 | timeCreated: 1651059884 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/LaserPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd75af2d3bf9435fa41dfa66414e6cc1 3 | timeCreated: 1651083891 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/MegaBallPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0c739f9f37d43258ddb9776dcb2966f 3 | timeCreated: 1651069477 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/PlayerPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 989c20c38bca44a2aadb42b340b0e122 3 | timeCreated: 1649936954 -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/SlowPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d579951099b54cf9b3bba1843fd34c81 3 | timeCreated: 1649936957 -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallHitEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallHitEvent : IBufferElementData 4 | { 5 | public Entity HitEntity; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/HiScoreUpdatedEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct HiScoreUpdatedEvent : IComponentData 4 | { 5 | public int Score; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/DisruptionPowerUpSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3818882fa7404af987aa1429921a3a7f 3 | timeCreated: 1649936950 -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/StartAudioSource.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct StartAudioSource : IComponentData 4 | { 5 | public AudioClipKeys Key; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/BlocksSpawnRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BlocksSpawnRequest : IComponentData 4 | { 5 | public Entity BlockPrefab; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/PlayerData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct PlayerData : IComponentData 4 | { 5 | public int Lives; 6 | public int Score; 7 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleSpawnRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct PaddleSpawnRequest : IComponentData 4 | { 5 | public Entity OwnerPlayer; 6 | } -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/HitByBallEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct HitByBallEvent : IComponentData, IEnableableComponent 4 | { 5 | public Entity Ball; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/HitByLaserEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct HitByLaserEvent : IComponentData, IEnableableComponent 4 | { 5 | public Entity LaserShot; 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallStuckToPaddle.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallStuckToPaddle : IComponentData 4 | { 5 | public float StuckTime; 6 | public float Offset; 7 | } -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameComponent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct SingleFrameComponent : IBufferElementData 4 | { 5 | public ComponentType TargetComponent; 6 | } -------------------------------------------------------------------------------- /Assets/Prefabs/Ball.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aef2492d465fac2428fb8143660f65e5 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Wall.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fb40a4c3651fe64cacb4f9131c73801 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameStateData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameStateData : IComponentData 4 | { 5 | public float StateTimer; 6 | public ComponentType CurrentState; 7 | } -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureSheetConfig.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct TextureSheetConfig : IComponentData 4 | { 5 | public int FrameColumns; 6 | public int FrameRows; 7 | } -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Block.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b07f95f1070d4444591246059b25d9d6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Laser.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8fcf142aaf79ad4c9e611d26fe5b419 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/Paddle.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12afeaf2bb15d604ab614517d7cfa828 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/PowerUp.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d44d7918665bb7d48a0a300e89070876 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/Arkanoid.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49c770e176a611d4d8aa69e017eb0362 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Font.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b0ea16fcf6b7ce4e8a22879773eff6b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Levels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91bdbeb97e6c8fc48bf27a0dd44923ac 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f622040152c49b4da5e3b9075bcddae 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Background.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcd69fe52dd7dbc42a6a3c8843bf20b2 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/BenchmarkLevel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbc7dbf12c80c98489fff7d8b292dcc9 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefabs/DefaultLevel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e217fb74179ec4e44b7e2baf6c1fcbc2 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/40234a03c5f2a03f6a0a44f91dc05f82.sceneWithBuildSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/SceneDependencyCache/40234a03c5f2a03f6a0a44f91dc05f82.sceneWithBuildSettings -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/5d1abeed48aee068f333aa7e640c5a7d.sceneWithBuildSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/SceneDependencyCache/5d1abeed48aee068f333aa7e640c5a7d.sceneWithBuildSettings -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/658c0b895b89fa01d1223975fd9abe5e.sceneWithBuildSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugenyN/DOTS-Arkanoid/HEAD/Assets/SceneDependencyCache/658c0b895b89fa01d1223975fd9abe5e.sceneWithBuildSettings -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13f796c6e4f4e3440a3858f0b64c6cf2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08e1857d1c264fd41beb48beafbd3ea3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5516532ab187194fbd3e241a0e730fc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e5767e5c0c34d541bd999186fb21ce7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3363bf68f75d614ba72ffbae277d040 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SubScenes/Entities.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34092ce709668474bab93cc6a81afe8d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 294682fe811fd064689ca99bfbcb6912 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9b95e32e0846204ab6c552bb61b51d8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SubScenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a95ec7d0a1ff9c40b223e984640267f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61ce7eefb7f1a5540a9780ba2756d531 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/MultiplayerManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!655991488 &1 4 | MultiplayerManager: 5 | m_ObjectHideFlags: 0 6 | m_EnableMultiplayerRoles: 0 7 | m_ActiveMultiplayerRole: 0 8 | -------------------------------------------------------------------------------- /Assets/SceneDependencyCache.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2769c30b7807729468f2fb34d2daf577 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Components/PowerUpReceivedEvent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct PowerUpReceivedEvent : IComponentData, IEnableableComponent 4 | { 5 | public Entity PowerUp; 6 | public PowerUpType Type; 7 | } -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Components/LaserSpawnRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | public struct LaserSpawnRequest : IComponentData 5 | { 6 | public float3 Position; 7 | public Entity OwnerPlayer; 8 | } -------------------------------------------------------------------------------- /Assets/Materials/Ball.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1aa23a8bbfef1ef46865b1793b97dc13 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Block.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 630ce805ed16d7940b71ebbf1f9dcfde 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/HWall.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fad209a078996643b8fad189d93cf86 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/LWall.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fd99115ad89df64396e26c67a46477c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Paddle.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ea5af18329b9ce4dbcf9b0609f7d74e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/RWall.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 146b0228a78610a4aa04ed1af2433102 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct GameData : IComponentData 4 | { 5 | public int Level; 6 | public int HighScore; 7 | public float BallSpeed; 8 | public int PlayersCount; 9 | } -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureAnimationData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct TextureAnimationData : IComponentData 4 | { 5 | public float Time; 6 | public int FrameIndex; 7 | public bool IndexDecrement; 8 | } -------------------------------------------------------------------------------- /Assets/Materials/Background.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc2e0a479b99a02479a31fe3fe862da3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Laser.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 232158faf03fad0419150c8c762ca114 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/PowerUp.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2decd6122bd7f54f831dd60bde268a6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Shadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7687ca27bcd620a49967a4bea8fbcac2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/PaddleBig.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe0ae9d741561f643974440f50d74788 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DefaultVolumeProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 596a07fd539f8e64e814c3efcee40cd8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | public struct PaddleData : IComponentData 5 | { 6 | public float3 Size; 7 | public float Speed; 8 | public PowerUpType ExclusivePowerUp; 9 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleMaterialsConfig.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class PaddleMaterialsConfig : IComponentData 5 | { 6 | public Material NormalPaddleMaterial; 7 | public Material BigPaddleMaterial; 8 | } -------------------------------------------------------------------------------- /Assets/Settings/UniversalRPSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ec7a99f21349db4c82dd4a7476a0d78 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/40234a03c5f2a03f6a0a44f91dc05f82.sceneWithBuildSettings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40234a03c5f2a03f6a0a44f91dc05f82 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/5d1abeed48aee068f333aa7e640c5a7d.sceneWithBuildSettings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d1abeed48aee068f333aa7e640c5a7d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/SceneDependencyCache/658c0b895b89fa01d1223975fd9abe5e.sceneWithBuildSettings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 658c0b895b89fa01d1223975fd9abe5e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRPRendererSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e768e0650c3dce84297d29d7171c14c6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/game_area.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91ce735ebe3ce2a4e869ec7fe9ab3e55 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /Assets/Levels/TextureImporter.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc62bf2f83efccc46a107f33990bbc3d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/MaterialColorData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | using Unity.Rendering; 4 | 5 | [MaterialProperty("_BaseColor")] 6 | public struct MaterialColorData : IComponentData 7 | { 8 | public float4 Value; 9 | } -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/MaterialTextureSTData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | using Unity.Rendering; 4 | 5 | [MaterialProperty("_BaseMap_ST")] 6 | public struct MaterialTextureSTData : IComponentData 7 | { 8 | public float4 Value; 9 | } -------------------------------------------------------------------------------- /Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b177cb4c709593146b88f0f9176f9653 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ChangeStateCommand.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct ChangeStateCommand : IComponentData 4 | { 5 | public ComponentType TargetState; 6 | 7 | public static ChangeStateCommand Create() => new() { TargetState = ComponentType.ReadWrite() }; 8 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/BallLink.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct BallLink : IBufferElementData 4 | { 5 | public Entity Ball; 6 | 7 | public static implicit operator BallLink(Entity e) 8 | { 9 | return new BallLink {Ball = e}; 10 | } 11 | } -------------------------------------------------------------------------------- /Assets/Shaders/UnlitST.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3182f7ac8228ba940ba40d6861b0cba4 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Shaders/UnlitSTInput.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd6a87963c6773e4cbc0da16718a656b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/BlockData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public enum BlockTypes 4 | { 5 | None, White, Orange, LightBlue, Green, Red, Blue, Pink, Yellow, Silver, Gold 6 | } 7 | 8 | public struct BlockData : IComponentData 9 | { 10 | public BlockTypes Type; 11 | public int Health; 12 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleInputData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public enum InputActionType 4 | { 5 | None, 6 | Fire, 7 | Pause, 8 | Exit, 9 | SpawnBallCheat 10 | } 11 | 12 | public struct PaddleInputData : IComponentData 13 | { 14 | public float Movement; 15 | public InputActionType Action; 16 | } 17 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c7a07eafff724c4fbd9eaa76c212dd8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/BallSpawnRequest.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | public struct BallSpawnRequest : IComponentData 5 | { 6 | public float3 Position; 7 | public float3 Velocity; 8 | public Entity OwnerPaddle; 9 | public Entity OwnerPlayer; 10 | public bool StuckToPaddle; 11 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Components/HitByBallEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5642f3e35b208d6488e53e3490e1d52c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Components/BlockData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0001e5c86b22dc46a01922c41c04c33 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Blocks/Systems/BlockHitSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6839c15fca3e3243ac7aed352a186c3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleDyingStateData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public enum PaddleDyingState 4 | { 5 | Dying, 6 | DyingComplete, 7 | RespawnOrGameOver 8 | } 9 | 10 | public struct PaddleDyingStateData : IComponentData 11 | { 12 | public PaddleDyingState State; 13 | public float StateTimer; 14 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpsHelper.cs: -------------------------------------------------------------------------------- 1 | public static class PowerUpsHelper 2 | { 3 | public static bool IsExclusivePowerUp(PowerUpType powerUpType) 4 | { 5 | return powerUpType == PowerUpType.Catch || 6 | powerUpType == PowerUpType.Enlarge || 7 | powerUpType == PowerUpType.Laser; 8 | } 9 | } -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/Arkanoid.unity 10 | guid: 9fc0d4010bbf28b4594072e72b8655ab 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallLossCheckSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4864657f585b81840b6b20617c4a0ac7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Events/Extensions/ExtensionMethods.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbc8a1a089e35374a8dc55d7a5798397 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameOverCheckSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f19afcb75f68af4f9b2f431a0c48b72 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserDestroySystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bad6fd07b5784a519763e532dff6d2b4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelDespawnRequest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 234a4003933f4fe47b520e6080ed759e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Level/Systems/LevelDespawnSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 687b6cc7afef3a74a87055cba019a02e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleInputData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 145ec430f5c0db0488b9fa9b3b20e74c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleMovementSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aec1a3100e323014ba80a5161c090527 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Events/Systems/SingleFrameEntitySystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54302fbe94c4f514d9447011046caff8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/MaterialColorData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 711f40d4788387248a812bb60e152314 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallSpawnCheatInputProcessingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cf157a138f108943b266fa7f2830d01 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ScenePrefabs.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct ScenePrefabs : IComponentData 4 | { 5 | public Entity BallEntityPrefab; 6 | public Entity BlockEntityPrefab; 7 | public Entity PaddleEntityPrefab; 8 | public Entity PowerUpEntityPrefab; 9 | public Entity LevelEntityPrefab; 10 | public Entity LaserEntityPrefab; 11 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Components/PowerUpData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public enum PowerUpType 4 | { 5 | Break, 6 | Catch, 7 | Disruption, 8 | Enlarge, 9 | Laser, 10 | MegaBall, 11 | Player, 12 | Slow, 13 | /*Twin*/ 14 | PowerUpsCount 15 | } 16 | 17 | public struct PowerUpData : IComponentData 18 | { 19 | public PowerUpType Type; 20 | } -------------------------------------------------------------------------------- /Assets/Scripts/Utils/SceneCamera.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class SceneCamera : MonoBehaviour 4 | { 5 | public void Setup(Vector3 position, float orthographicSize) 6 | { 7 | var cameraComponent = GetComponent(); 8 | cameraComponent.transform.position = position; 9 | cameraComponent.orthographicSize = orthographicSize; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/PlayTextureAnimation.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public enum TextureAnimationType 4 | { 5 | Once, 6 | Loop, 7 | PingPong 8 | } 9 | 10 | public struct PlayTextureAnimation : IComponentData 11 | { 12 | public TextureAnimationType Type; 13 | public float FrameTime; 14 | public int StartFrame; 15 | public int FramesCount; 16 | public bool Initialized; 17 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/InputSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Unity.Entities; 3 | 4 | [Serializable] 5 | public struct InputNames 6 | { 7 | public string MouseMove; 8 | public string MouseAction; 9 | public string Move; 10 | public string Pause; 11 | public string Action; 12 | } 13 | 14 | public class InputSettings : IComponentData 15 | { 16 | public InputNames[] InputNames; 17 | public float MouseSensitivity; 18 | } -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelTagAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class LevelTagAuthoring : MonoBehaviour 5 | { 6 | public class Baker : Baker 7 | { 8 | public override void Bake(LevelTagAuthoring authoring) 9 | { 10 | var entity = GetEntity(TransformUsageFlags.None); 11 | AddComponent(entity, new LevelTag()); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/BenchmarkModeTagAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class BenchmarkModeTagAuthoring : MonoBehaviour 5 | { 6 | public class BenchmarkModeTagBaker : Baker 7 | { 8 | public override void Bake(BenchmarkModeTagAuthoring authoring) 9 | { 10 | var entity = GetEntity(TransformUsageFlags.None); 11 | AddComponent(entity); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/Scripts/Utils/MathUtils.cs: -------------------------------------------------------------------------------- 1 | using Unity.Mathematics; 2 | 3 | public static class MathUtils 4 | { 5 | public static float3 ClampMagnitude(float3 vector, float maxLength) 6 | { 7 | float sqrMagnitude = math.lengthsq(vector); 8 | 9 | if (sqrMagnitude <= (double)maxLength * maxLength) 10 | return vector; 11 | 12 | float num1 = math.sqrt(sqrMagnitude); 13 | vector /= num1; 14 | vector *= maxLength; 15 | return vector; 16 | } 17 | } -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 10 16 | -------------------------------------------------------------------------------- /ProjectSettings/BurstAotSettings_Android.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "DebugDataKind": 0, 9 | "EnableArmv9SecurityFeatures": false, 10 | "CpuMinTargetX32": 0, 11 | "CpuMaxTargetX32": 0, 12 | "CpuMinTargetX64": 0, 13 | "CpuMaxTargetX64": 0, 14 | "CpuTargetsArm64": 512, 15 | "OptimizeFor": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ProjectSettings/BurstAotSettings_StandaloneWindows.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "UsePlatformSDKLinker": false, 9 | "CpuMinTargetX32": 0, 10 | "CpuMaxTargetX32": 0, 11 | "CpuMinTargetX64": 0, 12 | "CpuMaxTargetX64": 0, 13 | "CpuTargetsX32": 6, 14 | "CpuTargetsX64": 24, 15 | "OptimizeFor": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /Assets/Scripts/Events/Components/SingleFrameComponentAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | [DisallowMultipleComponent] 5 | public class SingleFrameComponentAuthoring : MonoBehaviour 6 | { 7 | public class Baker : Baker 8 | { 9 | public override void Bake(SingleFrameComponentAuthoring authoring) 10 | { 11 | var entity = GetEntity(TransformUsageFlags.None); 12 | AddBuffer(entity); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /ProjectSettings/TimelineSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | assetDefaultFramerate: 60 16 | m_DefaultFrameRate: 60 17 | -------------------------------------------------------------------------------- /ProjectSettings/EntitiesClientSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: e2ea235c1fcfe29488ed97c467a0da53, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | FilterSettings: 16 | ExcludedBakingSystemAssemblies: [] 17 | -------------------------------------------------------------------------------- /ProjectSettings/RiderScriptEditorPersistedState.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState 15 | lastWriteTicks: -8585510622603983250 16 | -------------------------------------------------------------------------------- /Assets/Audio/BallLoss.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46a24d8f5a114584e93df0069a3f4d01 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/BlockDamage.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ade463afecda69a4b9922cb973a0c448 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/BlockDestroy.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 007b6fa14ff72ef438846468ca547f60 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/GameOver.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 551b4b594f8d00b43bbece9a12d892f1 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/LaserShot.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d5560c3df19cbf4ebf93ce0841f4ba8 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/PaddleCatch.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d171b78fb1f2fc4ca5767cc68c2c551 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/PaddleHit.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86b6340d61b72404eaf21880df097999 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/RoundCleared.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5514510a6625e6d458a887a86f2370b6 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/RoundStart.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4075dfe979ca3174491b530408004b7f 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/PowerUpReceived.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab062d96160b4c949ab5b9c865eba000 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Font/PressStart2P.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d038a4d44eebf4438e8dbdd27be1256 3 | TrueTypeFontImporter: 4 | externalObjects: {} 5 | serializedVersion: 4 6 | fontSize: 16 7 | forceTextureCase: -2 8 | characterSpacing: 0 9 | characterPadding: 1 10 | includeFontData: 1 11 | fontNames: 12 | - Press Start 2P 13 | fallbackFontReferences: [] 14 | customCharacters: 15 | fontRenderingMode: 2 16 | ascentCalculationMode: 1 17 | useLegacyBoundsCalculation: 0 18 | shouldRoundAdvanceValue: 1 19 | userData: 20 | assetBundleName: 21 | assetBundleVariant: 22 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/PauseInputProcessingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 5 | public partial struct PauseInputProcessingSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnUpdate(ref SystemState state) 9 | { 10 | foreach (var inputData in SystemAPI.Query>()) 11 | { 12 | if (inputData.ValueRO.Action == InputActionType.Pause) 13 | GameSystem.SetPause(state.EntityManager, !GameSystem.IsGamePaused()); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/InputSettingsAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class InputSettingsAuthoring : MonoBehaviour 5 | { 6 | public InputNames[] InputNames; 7 | 8 | public class Baker : Baker 9 | { 10 | public override void Bake(InputSettingsAuthoring authoring) 11 | { 12 | var entity = GetEntity(TransformUsageFlags.None); 13 | AddComponentObject(entity, new InputSettings 14 | { 15 | InputNames = authoring.InputNames 16 | }); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Helpers/BallsHelper.cs: -------------------------------------------------------------------------------- 1 | using Unity.Mathematics; 2 | 3 | public static class BallsHelper 4 | { 5 | public static float3 GetRandomDirection(Random random) 6 | { 7 | return math.normalize(new float3(random.NextBool() ? -1 : 1, random.NextFloat(0.5f, 0.8f), 0f)); 8 | } 9 | 10 | public static float3 GetBounceDirection(float3 ballPosition, float3 paddlePosition, float3 paddleSize) 11 | { 12 | var hitFactor = (ballPosition.x - paddlePosition.x) / paddleSize.x; 13 | var hitMult = 4.0f; 14 | return math.normalize(new float3(hitFactor * hitMult, 1, 0)); 15 | } 16 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | shaderVariantLimit: 128 16 | customInterpolatorErrorThreshold: 32 17 | customInterpolatorWarningThreshold: 16 18 | customHeatmapValues: {fileID: 0} 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | /[Ll]ogs/ 7 | /[Uu]ser[Ss]ettings/ 8 | Assets/AssetStoreTools* 9 | 10 | # Visual Studio cache directory 11 | .vs/ 12 | 13 | # Autogenerated VS/MD/Consulo solution and project files 14 | ExportedObj/ 15 | .consulo/ 16 | *.csproj 17 | *.unityproj 18 | *.sln 19 | *.suo 20 | *.tmp 21 | *.user 22 | *.userprefs 23 | *.pidb 24 | *.booproj 25 | *.svd 26 | *.pdb 27 | *.opendb 28 | 29 | # Unity3D generated meta files 30 | *.pidb.meta 31 | *.pdb.meta 32 | 33 | # Unity3D Generated File On Crash Reports 34 | sysinfo.txt 35 | 36 | # Builds 37 | *.apk 38 | *.unitypackage 39 | 40 | \.idea/ -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/AudioSettingsData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Unity.Entities; 4 | using UnityEngine; 5 | 6 | public enum AudioClipKeys 7 | { 8 | BallLoss, 9 | PowerUpReceived, 10 | BlockDamage, 11 | BlockDestroy, 12 | GameOver, 13 | PaddleHit, 14 | PaddleCatch, 15 | RoundCleared, 16 | RoundStart, 17 | LaserShot 18 | } 19 | 20 | [Serializable] 21 | public struct AudioClipEntry 22 | { 23 | public AudioClipKeys Key; 24 | public AudioClip Clip; 25 | } 26 | 27 | public class AudioSettingsData : IComponentData 28 | { 29 | public Dictionary Clips; 30 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameSettings.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | 4 | public struct GameSettings : IComponentData 5 | { 6 | public int StartLevel; 7 | public int HighScore; 8 | public float BallSpeed; 9 | public float BallSpeedIncreaseFactor; 10 | public float BallMovingDelay; 11 | public int PlayerStartLives; 12 | public int PlayerMaxLives; 13 | public int PowerUpScore; 14 | public int BreakPowerUpScore; 15 | public float PowerUpProbability; 16 | public int DisruptionPowerUpBallsCount; 17 | public float3 PaddleSize; 18 | public float3 BigPaddleSize; 19 | public float PaddleSpeed; 20 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleInputCleanupSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(LateSimulationSystemGroup))] 5 | public partial struct PaddleInputCleanupSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnUpdate(ref SystemState state) 9 | { 10 | new PaddleInputCleanupJob().Schedule(); 11 | } 12 | 13 | [BurstCompile] 14 | public partial struct PaddleInputCleanupJob : IJobEntity 15 | { 16 | private void Execute(ref PaddleInputData inputData) 17 | { 18 | inputData.Movement = 0; 19 | inputData.Action = InputActionType.None; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/WallTagAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class WallTagAuthoring : MonoBehaviour 5 | { 6 | public class Baker : Baker 7 | { 8 | public override void Bake(WallTagAuthoring authoring) 9 | { 10 | var entity = GetEntity(TransformUsageFlags.None); 11 | AddComponent(entity, new WallTag()); 12 | AddComponent(entity, new HitByBallEvent()); 13 | SetComponentEnabled(entity, false); 14 | AddComponent(entity, new HitByLaserEvent()); 15 | SetComponentEnabled(entity, false); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleAIInputSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(GameInputSystemGroup))] 5 | public partial struct PaddleAIInputSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnUpdate(ref SystemState state) 9 | { 10 | foreach (var (inputData, playerIndex) in SystemAPI.Query, RefRO>()) 11 | { 12 | if (playerIndex.ValueRO.Value > 1) 13 | { 14 | var side = (int) SystemAPI.Time.ElapsedTime % (2 + playerIndex.ValueRO.Value); 15 | inputData.ValueRW.Movement += side == 0 ? 1 : -1; 16 | } 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/Scripts/Audio/Components/AudioSettingsDataAuthoring.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using Unity.Entities; 3 | using UnityEngine; 4 | 5 | public class AudioSettingsDataAuthoring : MonoBehaviour 6 | { 7 | public AudioClipEntry[] Clips; 8 | 9 | public class Baker : Baker 10 | { 11 | public override void Bake(AudioSettingsDataAuthoring authoring) 12 | { 13 | var entity = GetEntity(TransformUsageFlags.None); 14 | 15 | AddComponentObject(entity, new AudioSettingsData 16 | { 17 | Clips = authoring.Clips.ToDictionary(clip => clip.Key, clip => clip.Clip) 18 | }); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/Scripts/Rendering/Components/TextureSheetConfigAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class TextureSheetConfigAuthoring : MonoBehaviour 5 | { 6 | public int FrameColumns; 7 | public int FrameRows; 8 | 9 | public class Baker : Baker 10 | { 11 | public override void Bake(TextureSheetConfigAuthoring authoring) 12 | { 13 | var entity = GetEntity(TransformUsageFlags.None); 14 | AddComponent(entity, new TextureSheetConfig 15 | { 16 | FrameColumns = authoring.FrameColumns, 17 | FrameRows = authoring.FrameRows 18 | }); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/Scripts/Level/Components/LevelsSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Unity.Entities; 3 | using UnityEngine; 4 | 5 | [Serializable] 6 | public struct BlockColorCode 7 | { 8 | public Color32 Color; 9 | public BlockTypes Type; 10 | } 11 | 12 | [Serializable] 13 | public struct LevelsData 14 | { 15 | public BlobArray> LevelsBlockData; 16 | public BlobArray BlocksPalette; 17 | } 18 | 19 | public struct LevelsSettings : IComponentData 20 | { 21 | public int BlocksInLine; 22 | public int BlockLinesCount; 23 | public int GameAreaWidth; 24 | public int GameAreaHeight; 25 | public int MaxPlayers; 26 | public BlobAssetReference LevelsDataBlob; 27 | } -------------------------------------------------------------------------------- /Assets/Scripts/UI/Components/UISettingsAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | [DisallowMultipleComponent] 5 | public class UISettingsAuthoring : MonoBehaviour 6 | { 7 | [SerializeField] TitleUI _titleUI; 8 | [SerializeField] GamePanelUI _inGameUI; 9 | [SerializeField] OptionsUI _optionsUI; 10 | 11 | private void Awake() 12 | { 13 | var entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; 14 | entityManager.AddComponentObject(entityManager.CreateEntity(), _titleUI); 15 | entityManager.AddComponentObject(entityManager.CreateEntity(), _inGameUI); 16 | entityManager.AddComponentObject(entityManager.CreateEntity(), _optionsUI); 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameWinCheckSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(GameStateSystemGroup))] 5 | public partial struct GameWinCheckSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var blocksQuery = SystemAPI.QueryBuilder().WithAll().WithNone().Build(); 18 | if (blocksQuery.IsEmpty) 19 | state.EntityManager.AddSingleFrameComponent(ChangeStateCommand.Create()); 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems/TitleUIPresentationSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | [UpdateInGroup(typeof(LateSimulationSystemGroup))] 4 | public partial struct TitleUIPresentationSystem : ISystem 5 | { 6 | public void OnCreate(ref SystemState state) 7 | { 8 | state.RequireForUpdate(); 9 | } 10 | 11 | public void OnUpdate(ref SystemState state) 12 | { 13 | GameUtils.TryGetSingletonEntityManaged(state.EntityManager, out var titleUIEntity); 14 | var titleUI = state.EntityManager.GetComponentObject(titleUIEntity); 15 | 16 | foreach (var command in SystemAPI.Query()) 17 | titleUI.gameObject.SetActive(command.TargetState == typeof(MainMenuState)); 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Components/PaddleMaterialsConfigAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class PaddleMaterialsConfigAuthoring : MonoBehaviour 5 | { 6 | public Material NormalPaddleMaterial; 7 | public Material BigPaddleMaterial; 8 | 9 | public class Baker : Baker 10 | { 11 | public override void Bake(PaddleMaterialsConfigAuthoring authoring) 12 | { 13 | var entity = GetEntity(TransformUsageFlags.None); 14 | AddComponentObject(entity, new PaddleMaterialsConfig 15 | { 16 | NormalPaddleMaterial = authoring.NormalPaddleMaterial, 17 | BigPaddleMaterial = authoring.BigPaddleMaterial 18 | }); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/Scripts/UI/Systems/OptionsUIPresentationSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | [UpdateInGroup(typeof(LateSimulationSystemGroup))] 4 | public partial struct OptionsUIPresentationSystem : ISystem 5 | { 6 | public void OnCreate(ref SystemState state) 7 | { 8 | state.RequireForUpdate(); 9 | } 10 | 11 | public void OnUpdate(ref SystemState state) 12 | { 13 | GameUtils.TryGetSingletonEntityManaged(state.EntityManager, out var optionsUIEntity); 14 | var optionsUI = state.EntityManager.GetComponentObject(optionsUIEntity); 15 | 16 | foreach (var command in SystemAPI.Query()) 17 | optionsUI.gameObject.SetActive(command.TargetState == typeof(OptionsMenuState)); 18 | } 19 | } -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 3 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - Ball 15 | - Paddle 16 | - Block 17 | - PowerUp 18 | - Wall 19 | - Laser 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | m_RenderingLayers: 45 | - Default 46 | - Light Layer 1 47 | - Light Layer 2 48 | - Light Layer 3 49 | - Light Layer 4 50 | - Light Layer 5 51 | - Light Layer 6 52 | - Light Layer 7 53 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameOverCheckSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(GameStateSystemGroup))] 5 | public partial struct GameOverCheckSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | bool anyAlive = false; 18 | 19 | foreach (var playerData in SystemAPI.Query>()) 20 | anyAlive |= playerData.ValueRO.Lives != 0; 21 | 22 | if (!anyAlive) 23 | state.EntityManager.AddSingleFrameComponent(ChangeStateCommand.Create()); 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallProtectionCheatSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Physics; 4 | using Unity.Physics.Systems; 5 | using Unity.Transforms; 6 | 7 | [DisableAutoCreation] // Comment to activate cheat 8 | [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] 9 | [UpdateAfter(typeof(PhysicsSystemGroup))] 10 | public partial struct BallProtectionCheatSystem : ISystem 11 | { 12 | [BurstCompile] 13 | public void OnUpdate(ref SystemState state) 14 | { 15 | new BallProtectionCheatJob().Schedule(); 16 | } 17 | 18 | [BurstCompile] 19 | [WithAny(typeof(BallData))] 20 | public partial struct BallProtectionCheatJob : IJobEntity 21 | { 22 | private void Execute(ref PhysicsVelocity velocity, in LocalTransform transform) 23 | { 24 | if (transform.Position.y <= 1) 25 | velocity.Linear.y *= -1; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Assets/Scripts/Level/Systems/LevelDespawnSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Rendering; 5 | 6 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)] 7 | [UpdateAfter(typeof(PowerUpsSystemGroup))] 8 | [UpdateBefore(typeof(VariableRateSimulationSystemGroup))] 9 | public partial struct LevelDespawnSystem : ISystem 10 | { 11 | [BurstCompile] 12 | public void OnCreate(ref SystemState state) 13 | { 14 | state.RequireForUpdate(); 15 | } 16 | 17 | [BurstCompile] 18 | public void OnUpdate(ref SystemState state) 19 | { 20 | var ecb = new EntityCommandBuffer(Allocator.TempJob); 21 | 22 | var despawnQuery = SystemAPI.QueryBuilder().WithAny().Build(); 23 | ecb.DestroyEntity(despawnQuery, EntityQueryCaptureMode.AtPlayback); 24 | 25 | ecb.Playback(state.EntityManager); 26 | ecb.Dispose(); 27 | } 28 | } -------------------------------------------------------------------------------- /Assets/Textures/game_area.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: game_area 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_IsAlphaChannelOptional: 0 14 | serializedVersion: 6 15 | m_Width: 1792 16 | m_Height: 1920 17 | m_AntiAliasing: 1 18 | m_MipCount: -1 19 | m_DepthStencilFormat: 94 20 | m_ColorFormat: 8 21 | m_MipMap: 0 22 | m_GenerateMips: 1 23 | m_SRGB: 0 24 | m_UseDynamicScale: 0 25 | m_UseDynamicScaleExplicit: 0 26 | m_BindMS: 0 27 | m_EnableCompatibleFormat: 1 28 | m_EnableRandomWrite: 0 29 | m_TextureSettings: 30 | serializedVersion: 2 31 | m_FilterMode: 0 32 | m_Aniso: 0 33 | m_MipBias: 0 34 | m_WrapU: 1 35 | m_WrapV: 1 36 | m_WrapW: 1 37 | m_Dimension: 2 38 | m_VolumeDepth: 1 39 | m_ShadowSamplingMode: 2 40 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserDestroySystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 5 | public partial struct LaserDestroySystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | } 12 | 13 | [BurstCompile] 14 | public void OnUpdate(ref SystemState state) 15 | { 16 | var ecbSystem = SystemAPI.GetSingleton(); 17 | 18 | new LaserDestroyJob 19 | { 20 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 21 | }.Schedule(); 22 | } 23 | 24 | [BurstCompile] 25 | public partial struct LaserDestroyJob : IJobEntity 26 | { 27 | public EntityCommandBuffer Ecb; 28 | 29 | private void Execute(in HitByLaserEvent hitByLaserEvent) 30 | { 31 | Ecb.DestroyEntity(hitByLaserEvent.LaserShot); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/SystemGroups.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)] 4 | [UpdateAfter(typeof(BeginSimulationEntityCommandBufferSystem))] 5 | [UpdateBefore(typeof(VariableRateSimulationSystemGroup))] 6 | public partial class GameStateSystemGroup : ComponentSystemGroup {} 7 | 8 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)] 9 | [UpdateAfter(typeof(GameStateSystemGroup))] 10 | [UpdateBefore(typeof(VariableRateSimulationSystemGroup))] 11 | public partial class GameInputSystemGroup : ComponentSystemGroup {} 12 | 13 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)] 14 | [UpdateAfter(typeof(FixedStepSimulationSystemGroup))] 15 | [UpdateBefore(typeof(VariableRateSimulationSystemGroup))] 16 | public partial class BallBlockPaddleSystemGroup : ComponentSystemGroup {} 17 | 18 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)] 19 | [UpdateAfter(typeof(BallBlockPaddleSystemGroup))] 20 | [UpdateBefore(typeof(VariableRateSimulationSystemGroup))] 21 | public partial class PowerUpsSystemGroup : ComponentSystemGroup {} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Eugeny Novikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Assets/Shaders/UnlitSTInput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef UNIVERSAL_UNLIT_INPUT_INCLUDED 2 | #define UNIVERSAL_UNLIT_INPUT_INCLUDED 3 | 4 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" 5 | 6 | CBUFFER_START(UnityPerMaterial) 7 | float4 _BaseMap_ST; 8 | half4 _BaseColor; 9 | half _Cutoff; 10 | half _Surface; 11 | CBUFFER_END 12 | 13 | #ifdef UNITY_DOTS_INSTANCING_ENABLED 14 | UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata) 15 | UNITY_DOTS_INSTANCED_PROP(float4, _BaseMap_ST) 16 | UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor) 17 | UNITY_DOTS_INSTANCED_PROP(float , _Cutoff) 18 | UNITY_DOTS_INSTANCED_PROP(float , _Surface) 19 | UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata) 20 | 21 | #define _BaseMap_ST UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4 , _BaseMap_ST) 22 | #define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4 , _BaseColor) 23 | #define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Cutoff) 24 | #define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float , _Surface) 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 1 16 | m_AdvancedSettingsExpanded: 1 17 | m_ScopedRegistriesSettingsExpanded: 1 18 | m_SeeAllPackageVersions: 0 19 | m_DismissPreviewPackagesInUse: 0 20 | oneTimeWarningShown: 1 21 | oneTimeDeprecatedPopUpShown: 0 22 | m_Registries: 23 | - m_Id: main 24 | m_Name: 25 | m_Url: https://packages.unity.com 26 | m_Scopes: [] 27 | m_IsDefault: 1 28 | m_Capabilities: 7 29 | m_ConfigSource: 0 30 | m_UserSelectedRegistryName: 31 | m_UserAddingNewScopedRegistry: 0 32 | m_RegistryInfoDraft: 33 | m_Modified: 0 34 | m_ErrorMessage: 35 | m_UserModificationsInstanceId: -868 36 | m_OriginalInstanceId: -870 37 | m_LoadAssets: 0 38 | -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpLossCheckSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Transforms; 4 | 5 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 6 | public partial struct PowerUpLossCheckSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var ecbSystem = SystemAPI.GetSingleton(); 18 | 19 | new PowerUpLossCheckJob 20 | { 21 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 22 | }.Schedule(); 23 | } 24 | 25 | [BurstCompile] 26 | [WithAll(typeof(PowerUpData))] 27 | public partial struct PowerUpLossCheckJob : IJobEntity 28 | { 29 | public EntityCommandBuffer Ecb; 30 | 31 | private void Execute(Entity entity, in LocalTransform transform) 32 | { 33 | if (transform.Position.y <= 0) 34 | Ecb.DestroyEntity(entity); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/BreakPowerUpSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 5 | public partial struct BreakPowerUpSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | } 12 | 13 | [BurstCompile] 14 | public void OnUpdate(ref SystemState state) 15 | { 16 | var ecbSystem = SystemAPI.GetSingleton(); 17 | 18 | new BreakPowerUpJob 19 | { 20 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 21 | }.Schedule(); 22 | } 23 | 24 | [BurstCompile] 25 | public partial struct BreakPowerUpJob : IJobEntity 26 | { 27 | public EntityCommandBuffer Ecb; 28 | 29 | private void Execute(in PowerUpReceivedEvent request) 30 | { 31 | if (request.Type == PowerUpType.Break) 32 | { 33 | Ecb.AddSingleFrameComponent(ChangeStateCommand.Create()); 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameStateChangeSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(GameStateSystemGroup), OrderLast = true)] 5 | public partial struct GameStateChangeSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | state.RequireForUpdate(); 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var ecbSystem = SystemAPI.GetSingleton(); 19 | var ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged); 20 | 21 | var command = SystemAPI.GetSingleton(); 22 | 23 | foreach (var (gameState, entity) in SystemAPI.Query>().WithEntityAccess()) 24 | { 25 | ecb.RemoveComponent(entity, gameState.ValueRW.CurrentState); 26 | ecb.AddComponent(entity, command.TargetState); 27 | 28 | gameState.ValueRW.CurrentState = command.TargetState; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/ClearHitEventsSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(LateSimulationSystemGroup))] 5 | public partial struct ClearHitEventsSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnUpdate(ref SystemState state) 9 | { 10 | new ClearBallHitEventDynamicBufferJob().Schedule(); 11 | new ClearHitByBallEventJob().Schedule(); 12 | new ClearHitByLaserEventJob().Schedule(); 13 | } 14 | 15 | [BurstCompile] 16 | public partial struct ClearBallHitEventDynamicBufferJob : IJobEntity 17 | { 18 | private void Execute(ref DynamicBuffer events) 19 | { 20 | events.Clear(); 21 | } 22 | } 23 | 24 | [BurstCompile] 25 | public partial struct ClearHitByBallEventJob : IJobEntity 26 | { 27 | private void Execute(EnabledRefRW hitByBallEvent) 28 | { 29 | hitByBallEvent.ValueRW = false; 30 | } 31 | } 32 | 33 | [BurstCompile] 34 | public partial struct ClearHitByLaserEventJob : IJobEntity 35 | { 36 | private void Execute(EnabledRefRW hitByLaserEvent) 37 | { 38 | hitByLaserEvent.ValueRW = false; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleBallLossCheckSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 5 | public partial struct PaddleBallLossCheckSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | } 12 | 13 | [BurstCompile] 14 | public void OnUpdate(ref SystemState state) 15 | { 16 | var ecbSystem = SystemAPI.GetSingleton(); 17 | 18 | new PaddleBallHitJob 19 | { 20 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 21 | }.Schedule(); 22 | } 23 | 24 | [BurstCompile] 25 | [WithAll(typeof(BallLostEvent))] 26 | public partial struct PaddleBallHitJob : IJobEntity 27 | { 28 | public EntityCommandBuffer Ecb; 29 | 30 | private void Execute(Entity paddle, in DynamicBuffer ballsBuffer, 31 | EnabledRefRW ballLostEvent) 32 | { 33 | if (ballsBuffer.IsEmpty) 34 | Ecb.AddComponent(paddle, new PaddleDyingStateData()); 35 | ballLostEvent.ValueRW = false; 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleMovementSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | using Unity.Transforms; 5 | 6 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 7 | public partial struct PaddleMovementSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var levelsSettings = SystemAPI.GetSingleton(); 19 | 20 | new PaddleMovementJob 21 | { 22 | GameAreaWidth = levelsSettings.GameAreaWidth, 23 | DeltaTime = SystemAPI.Time.DeltaTime 24 | }.Schedule(); 25 | } 26 | 27 | [BurstCompile] 28 | public partial struct PaddleMovementJob : IJobEntity 29 | { 30 | public int GameAreaWidth; 31 | public float DeltaTime; 32 | 33 | private void Execute(ref LocalTransform transform, in PaddleInputData inputData, in PaddleData paddleData) 34 | { 35 | if (inputData.Movement != 0) 36 | { 37 | float leftBound = 1 + paddleData.Size.x / 2.0f; 38 | float rightBound = GameAreaWidth - 1 - paddleData.Size.x / 2.0f; 39 | float movement = paddleData.Speed * inputData.Movement * DeltaTime; 40 | transform.Position.x = math.clamp(transform.Position.x + movement, leftBound, rightBound); 41 | } 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallStartMovingInputProcessingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 5 | public partial struct BallStartMovingInputProcessingSystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | } 12 | 13 | [BurstCompile] 14 | public void OnUpdate(ref SystemState state) 15 | { 16 | var ecbSystem = SystemAPI.GetSingleton(); 17 | 18 | new BallStartMovingInputProcessingJob 19 | { 20 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 21 | }.Schedule(); 22 | } 23 | 24 | [BurstCompile] 25 | [WithNone(typeof(LaserPaddleTag))] 26 | public partial struct BallStartMovingInputProcessingJob : IJobEntity 27 | { 28 | public EntityCommandBuffer Ecb; 29 | 30 | private void Execute(ref PaddleInputData inputData, in DynamicBuffer ballsBuffer) 31 | { 32 | if (inputData.Action == InputActionType.Fire) 33 | { 34 | foreach (var ball in ballsBuffer.Reinterpret()) 35 | Ecb.AddComponent(ball); 36 | } 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/ScenePrefabsAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | 4 | public class ScenePrefabsAuthoring : MonoBehaviour 5 | { 6 | public GameObject BallEntityPrefab; 7 | public GameObject BlockEntityPrefab; 8 | public GameObject PaddleEntityPrefab; 9 | public GameObject PowerUpEntityPrefab; 10 | public GameObject LevelEntityPrefab; 11 | public GameObject LaserEntityPrefab; 12 | 13 | public class Baker : Baker 14 | { 15 | public override void Bake(ScenePrefabsAuthoring authoring) 16 | { 17 | var entity = GetEntity(TransformUsageFlags.None); 18 | AddComponent(entity, new ScenePrefabs 19 | { 20 | BallEntityPrefab = GetEntity(authoring.BallEntityPrefab, TransformUsageFlags.Dynamic), 21 | BlockEntityPrefab = GetEntity(authoring.BlockEntityPrefab, TransformUsageFlags.Dynamic), 22 | PaddleEntityPrefab = GetEntity(authoring.PaddleEntityPrefab, TransformUsageFlags.Dynamic), 23 | PowerUpEntityPrefab = GetEntity(authoring.PowerUpEntityPrefab, TransformUsageFlags.Dynamic), 24 | LevelEntityPrefab = GetEntity(authoring.LevelEntityPrefab, TransformUsageFlags.Dynamic), 25 | LaserEntityPrefab = GetEntity(authoring.LaserEntityPrefab, TransformUsageFlags.Dynamic) 26 | }); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallSpeedIncreaseSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Physics; 5 | 6 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 7 | public partial struct BallSpeedIncreaseSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var gameSettings = SystemAPI.GetSingleton(); 19 | 20 | new BallSpeedIncreaseJob 21 | { 22 | PaddleDataLookup = SystemAPI.GetComponentLookup(true), 23 | BallSpeedIncreaseFactor = gameSettings.BallSpeedIncreaseFactor 24 | }.Schedule(); 25 | } 26 | 27 | [BurstCompile] 28 | public partial struct BallSpeedIncreaseJob : IJobEntity 29 | { 30 | [ReadOnly] public ComponentLookup PaddleDataLookup; 31 | public float BallSpeedIncreaseFactor; 32 | 33 | private void Execute(ref PhysicsVelocity velocity, in DynamicBuffer ballHitEvents) 34 | { 35 | foreach (var ballHitEvent in ballHitEvents) 36 | { 37 | if (PaddleDataLookup.HasComponent(ballHitEvent.HitEntity)) 38 | velocity.Linear *= BallSpeedIncreaseFactor; 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/PlayerPowerUpSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | 5 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 6 | public partial struct PlayerPowerUpSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var gameSettings = SystemAPI.GetSingleton(); 18 | 19 | new LaserPowerUpJob 20 | { 21 | PlayerDataLookup = SystemAPI.GetComponentLookup(), 22 | PlayerMaxLives = gameSettings.PlayerMaxLives 23 | }.Schedule(); 24 | } 25 | 26 | [BurstCompile] 27 | public partial struct LaserPowerUpJob : IJobEntity 28 | { 29 | public ComponentLookup PlayerDataLookup; 30 | public int PlayerMaxLives; 31 | 32 | private void Execute(in PowerUpReceivedEvent request, in OwnerPlayerId ownerPlayerId) 33 | { 34 | if (request.Type == PowerUpType.Player) 35 | { 36 | var playerData = PlayerDataLookup[ownerPlayerId.Value]; 37 | playerData.Lives++; 38 | playerData.Lives = math.min(playerData.Lives, PlayerMaxLives); 39 | PlayerDataLookup[ownerPlayerId.Value] = playerData; 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 14 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_DefaultMaxDepenetrationVelocity: 10 11 | m_SleepThreshold: 0.005 12 | m_DefaultContactOffset: 0.01 13 | m_DefaultSolverIterations: 6 14 | m_DefaultSolverVelocityIterations: 1 15 | m_QueriesHitBackfaces: 0 16 | m_QueriesHitTriggers: 1 17 | m_EnableAdaptiveForce: 0 18 | m_ClothInterCollisionDistance: 0 19 | m_ClothInterCollisionStiffness: 0 20 | m_ContactsGeneration: 1 21 | m_LayerCollisionMatrix: 08f0ffff08f0ffff08f0ffffffffffff08f0ffff08f0ffff88f5ffff48f2ffff48f8ffff88f0ffff48f8ffff08f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 22 | m_SimulationMode: 0 23 | m_AutoSyncTransforms: 0 24 | m_ReuseCollisionCallbacks: 1 25 | m_InvokeCollisionCallbacks: 1 26 | m_ClothInterCollisionSettingsToggle: 0 27 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 28 | m_ContactPairsMode: 0 29 | m_BroadphaseType: 0 30 | m_WorldBounds: 31 | m_Center: {x: 0, y: 0, z: 0} 32 | m_Extent: {x: 250, y: 250, z: 250} 33 | m_WorldSubdivisions: 8 34 | m_FrictionType: 0 35 | m_EnableEnhancedDeterminism: 0 36 | m_EnableUnifiedHeightmaps: 1 37 | m_ImprovedPatchFriction: 0 38 | m_SolverType: 0 39 | m_DefaultMaxAngularSpeed: 7 40 | -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/SlowPowerUpSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Physics; 4 | 5 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 6 | public partial struct SlowPowerUpSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var gameData = SystemAPI.GetSingleton(); 18 | 19 | new SlowPowerUpJob 20 | { 21 | PhysicsVelocityLookup = SystemAPI.GetComponentLookup(), 22 | BallSpeed = gameData.BallSpeed 23 | }.Schedule(); 24 | } 25 | 26 | [BurstCompile] 27 | public partial struct SlowPowerUpJob : IJobEntity 28 | { 29 | public ComponentLookup PhysicsVelocityLookup; 30 | public float BallSpeed; 31 | 32 | private void Execute(in PowerUpReceivedEvent request, in DynamicBuffer ballsBuffer) 33 | { 34 | if (request.Type == PowerUpType.Slow) 35 | { 36 | foreach (var ball in ballsBuffer.Reinterpret()) 37 | { 38 | var velocity = PhysicsVelocityLookup[ball]; 39 | velocity.Linear = MathUtils.ClampMagnitude(velocity.Linear, BallSpeed * 0.75f); 40 | PhysicsVelocityLookup[ball] = velocity; 41 | } 42 | } 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserShotInputProcessingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | using Unity.Transforms; 5 | 6 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 7 | public partial struct LaserShotInputProcessingSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var ecbSystem = SystemAPI.GetSingleton(); 19 | 20 | new LaserShotInputProcessingJob 21 | { 22 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 23 | }.Schedule(); 24 | } 25 | 26 | [BurstCompile] 27 | [WithAll(typeof(LaserPaddleTag))] 28 | public partial struct LaserShotInputProcessingJob : IJobEntity 29 | { 30 | public EntityCommandBuffer Ecb; 31 | 32 | private void Execute(ref PaddleInputData inputData, in OwnerPlayerId ownerPlayerId, in LocalTransform transform) 33 | { 34 | if (inputData.Action == InputActionType.Fire) 35 | { 36 | Ecb.AddSingleFrameComponent(new LaserSpawnRequest 37 | { 38 | Position = transform.Position + new float3(0, 1, 0), OwnerPlayer = ownerPlayerId.Value 39 | }); 40 | AudioSystem.PlayAudio(Ecb, AudioClipKeys.LaserShot); 41 | } 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/Scripts/Events/Systems/SingleFrameEntitySystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(LateSimulationSystemGroup))] 5 | public partial struct SingleFrameEntitySystem : ISystem 6 | { 7 | [BurstCompile] 8 | public void OnCreate(ref SystemState state) 9 | { 10 | state.RequireForUpdate(); 11 | 12 | if (!SystemAPI.HasSingleton()) 13 | { 14 | var entity = state.EntityManager.CreateEntity(); 15 | state.EntityManager.AddComponent(entity); 16 | state.EntityManager.AddBuffer(entity); 17 | } 18 | } 19 | 20 | [BurstCompile] 21 | public void OnUpdate(ref SystemState state) 22 | { 23 | var ecbSystem = SystemAPI.GetSingleton(); 24 | 25 | var ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged); 26 | 27 | foreach (var (_, entity) in SystemAPI.Query>().WithEntityAccess()) 28 | ecb.DestroyEntity(entity); 29 | 30 | foreach (var (components, entity) in SystemAPI.Query>().WithEntityAccess()) 31 | { 32 | if (components.Length > 0) 33 | { 34 | for (int i = components.Length - 1; i >= 0; i--) 35 | { 36 | ecb.RemoveComponent(entity, components[i].TargetComponent); 37 | components.RemoveAt(i); 38 | } 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 2 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerCacheSize: 10 14 | m_SpritePackerPaddingPower: 1 15 | m_Bc7TextureCompressor: 0 16 | m_EtcTextureCompressorBehavior: 1 17 | m_EtcTextureFastCompressor: 1 18 | m_EtcTextureNormalCompressor: 2 19 | m_EtcTextureBestCompressor: 4 20 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 21 | m_ProjectGenerationRootNamespace: 22 | m_EnableTextureStreamingInEditMode: 1 23 | m_EnableTextureStreamingInPlayMode: 1 24 | m_EnableEditorAsyncCPUTextureLoading: 0 25 | m_AsyncShaderCompilation: 1 26 | m_PrefabModeAllowAutoSave: 1 27 | m_EnterPlayModeOptionsEnabled: 1 28 | m_EnterPlayModeOptions: 1 29 | m_GameObjectNamingDigits: 1 30 | m_GameObjectNamingScheme: 0 31 | m_AssetNamingUsesSpace: 1 32 | m_InspectorUseIMGUIDefaultInspector: 0 33 | m_UseLegacyProbeSampleCount: 0 34 | m_SerializeInlineMappingsOnOneLine: 1 35 | m_DisableCookiesInLightmapper: 0 36 | m_AssetPipelineMode: 1 37 | m_RefreshImportMode: 0 38 | m_CacheServerMode: 0 39 | m_CacheServerEndpoint: 40 | m_CacheServerNamespacePrefix: default 41 | m_CacheServerEnableDownload: 1 42 | m_CacheServerEnableUpload: 1 43 | m_CacheServerEnableAuth: 0 44 | m_CacheServerEnableTls: 0 45 | m_CacheServerValidationMode: 2 46 | m_CacheServerDownloadBatchSize: 128 47 | m_EnableEnlightenBakedGI: 0 48 | m_ReferencedClipsExactNaming: 0 49 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /Assets/Scripts/Paddle/Systems/PaddleBallHitSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | 5 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 6 | public partial struct PaddleBallHitSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var ecbSystem = SystemAPI.GetSingleton(); 19 | 20 | new PaddleBallHitJob 21 | { 22 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 23 | PlayerDataLookup = SystemAPI.GetComponentLookup(), 24 | StickPaddleTagLookup = SystemAPI.GetComponentLookup() 25 | }.Schedule(); 26 | } 27 | 28 | [BurstCompile] 29 | [WithAll(typeof(HitByBallEvent))] 30 | public partial struct PaddleBallHitJob : IJobEntity 31 | { 32 | public EntityCommandBuffer Ecb; 33 | public ComponentLookup PlayerDataLookup; 34 | [ReadOnly] public ComponentLookup StickPaddleTagLookup; 35 | 36 | private void Execute(Entity paddle, in OwnerPlayerId ownerPlayerId) 37 | { 38 | var playerData = PlayerDataLookup[ownerPlayerId.Value]; 39 | playerData.Score += 10; 40 | PlayerDataLookup[ownerPlayerId.Value] = playerData; 41 | 42 | AudioSystem.PlayAudio(Ecb, StickPaddleTagLookup.HasComponent(paddle) ? 43 | AudioClipKeys.PaddleCatch : AudioClipKeys.PaddleHit); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallLossCheckSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Transforms; 4 | 5 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 6 | public partial struct BallLossCheckSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var ecbSystem = SystemAPI.GetSingleton(); 18 | new BallLossCheckJob 19 | { 20 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 21 | BallsBufferLookup = SystemAPI.GetBufferLookup(), 22 | BallLostEventLookup = SystemAPI.GetComponentLookup() 23 | }.Schedule(); 24 | } 25 | 26 | [BurstCompile] 27 | public partial struct BallLossCheckJob : IJobEntity 28 | { 29 | public EntityCommandBuffer Ecb; 30 | public BufferLookup BallsBufferLookup; 31 | public ComponentLookup BallLostEventLookup; 32 | 33 | private void Execute(Entity entity, in LocalTransform transform, in BallData ballData) 34 | { 35 | if (transform.Position.y <= 0) 36 | { 37 | BallLostEventLookup.SetComponentEnabled(ballData.OwnerPaddle, true); 38 | Ecb.DestroyEntity(entity); 39 | 40 | var ballsBuffer = BallsBufferLookup[ballData.OwnerPaddle]; 41 | for (int i = ballsBuffer.Length - 1; i >= 0; i--) 42 | { 43 | if (ballsBuffer[i].Ball == entity) 44 | ballsBuffer.RemoveAtSwapBack(i); 45 | } 46 | } 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Components/GameSettingsAuthoring.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | using UnityEngine; 4 | 5 | public class GameSettingsAuthoring : MonoBehaviour 6 | { 7 | public int StartLevel; 8 | public int HighScore; 9 | public float BallSpeed; 10 | public float BallSpeedIncreaseFactor; 11 | public float BallMovingDelay; 12 | public int PlayerStartLives; 13 | public int PlayerMaxLives; 14 | public int PowerUpScore; 15 | public int BreakPowerUpScore; 16 | public float PowerUpProbability; 17 | public int DisruptionPowerUpBallsCount; 18 | public float3 PaddleSize; 19 | public float3 BigPaddleSize; 20 | public float PaddleSpeed; 21 | 22 | public class Baker : Baker 23 | { 24 | public override void Bake(GameSettingsAuthoring authoring) 25 | { 26 | var entity = GetEntity(TransformUsageFlags.None); 27 | AddComponent(entity, new GameSettings 28 | { 29 | StartLevel = authoring.StartLevel, 30 | HighScore = authoring.HighScore, 31 | BallSpeed = authoring.BallSpeed, 32 | BallSpeedIncreaseFactor = authoring.BallSpeedIncreaseFactor, 33 | BallMovingDelay = authoring.BallMovingDelay, 34 | PlayerStartLives = authoring.PlayerStartLives, 35 | PlayerMaxLives = authoring.PlayerMaxLives, 36 | PowerUpScore = authoring.PowerUpScore, 37 | BreakPowerUpScore = authoring.BreakPowerUpScore, 38 | PowerUpProbability = authoring.PowerUpProbability, 39 | DisruptionPowerUpBallsCount = authoring.DisruptionPowerUpBallsCount, 40 | PaddleSize = authoring.PaddleSize, 41 | BigPaddleSize = authoring.BigPaddleSize, 42 | PaddleSpeed = authoring.PaddleSpeed 43 | }); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserTriggeringSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Physics; 5 | using Unity.Physics.Systems; 6 | 7 | [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] 8 | [UpdateAfter(typeof(PhysicsSystemGroup))] 9 | public partial struct LaserTriggeringSystem : ISystem 10 | { 11 | [BurstCompile] 12 | public void OnCreate(ref SystemState state) 13 | { 14 | state.RequireForUpdate(); 15 | state.RequireForUpdate(); 16 | } 17 | 18 | [BurstCompile] 19 | public void OnUpdate(ref SystemState state) 20 | { 21 | state.Dependency = new LaserTriggeringJob 22 | { 23 | LaserShots = SystemAPI.GetComponentLookup(true), 24 | HitByLaserEventLookup = SystemAPI.GetComponentLookup(), 25 | }.Schedule(SystemAPI.GetSingleton(), state.Dependency); 26 | } 27 | 28 | [BurstCompile] 29 | private struct LaserTriggeringJob : ITriggerEventsJob 30 | { 31 | [ReadOnly] public ComponentLookup LaserShots; 32 | public ComponentLookup HitByLaserEventLookup; 33 | 34 | public void Execute(TriggerEvent triggerEvent) 35 | { 36 | var entityA = triggerEvent.EntityA; 37 | var entityB = triggerEvent.EntityB; 38 | 39 | if (LaserShots.HasComponent(entityA)) 40 | { 41 | HitByLaserEventLookup[entityB] = new HitByLaserEvent { LaserShot = entityA }; 42 | HitByLaserEventLookup.SetComponentEnabled(entityB, true); 43 | } 44 | 45 | if (LaserShots.HasComponent(entityB)) 46 | { 47 | HitByLaserEventLookup[entityA] = new HitByLaserEvent { LaserShot = entityB }; 48 | HitByLaserEventLookup.SetComponentEnabled(entityA, true); 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallStuckToPaddleSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | using Unity.Transforms; 5 | 6 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 7 | public partial struct BallStuckToPaddleSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | state.RequireForUpdate(); 14 | state.RequireForUpdate(); 15 | } 16 | 17 | [BurstCompile] 18 | public void OnUpdate(ref SystemState state) 19 | { 20 | var ecbSystem = SystemAPI.GetSingleton(); 21 | 22 | new BallStuckToPaddleJob 23 | { 24 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 25 | LocalTransformLookup = SystemAPI.GetComponentLookup(), 26 | DeltaTime = SystemAPI.Time.DeltaTime 27 | }.Schedule(); 28 | } 29 | 30 | [BurstCompile] 31 | public partial struct BallStuckToPaddleJob : IJobEntity 32 | { 33 | public EntityCommandBuffer Ecb; 34 | public ComponentLookup LocalTransformLookup; 35 | public float DeltaTime; 36 | 37 | private void Execute(Entity entity, ref BallStuckToPaddle stuckData, in BallData data) 38 | { 39 | stuckData.StuckTime -= DeltaTime; 40 | 41 | if (stuckData.StuckTime <= 0.0f) 42 | { 43 | Ecb.AddComponent(entity, new BallStartMovingTag()); 44 | } 45 | else 46 | { 47 | var paddleTransform = LocalTransformLookup[data.OwnerPaddle]; 48 | LocalTransformLookup[entity] = LocalTransform.FromPosition( 49 | paddleTransform.Position + new float3(stuckData.Offset, 1, 0)); 50 | } 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/CatchPowerUpSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | 5 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 6 | public partial struct CatchPowerUpSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | } 13 | 14 | [BurstCompile] 15 | public void OnUpdate(ref SystemState state) 16 | { 17 | var ecbSystem = SystemAPI.GetSingleton(); 18 | 19 | new BreakPowerUpJob 20 | { 21 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 22 | BallStuckToPaddleLookup = SystemAPI.GetComponentLookup() 23 | }.Schedule(); 24 | } 25 | 26 | [BurstCompile] 27 | public partial struct BreakPowerUpJob : IJobEntity 28 | { 29 | public EntityCommandBuffer Ecb; 30 | [ReadOnly] public ComponentLookup BallStuckToPaddleLookup; 31 | 32 | private void Execute(Entity paddle, in PaddleData paddleData, in PowerUpReceivedEvent request, 33 | in DynamicBuffer ballsBuffer) 34 | { 35 | if (paddleData.ExclusivePowerUp == request.Type) 36 | return; 37 | 38 | if (paddleData.ExclusivePowerUp == PowerUpType.Catch && PowerUpsHelper.IsExclusivePowerUp(request.Type)) 39 | { 40 | Ecb.RemoveComponent(paddle); 41 | 42 | foreach (var ball in ballsBuffer.Reinterpret()) { 43 | if (BallStuckToPaddleLookup.HasComponent(ball)) 44 | Ecb.RemoveComponent(ball); 45 | } 46 | } 47 | 48 | if (request.Type == PowerUpType.Catch) 49 | Ecb.AddComponent(paddle, new StickPaddleTag()); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": "2.8.2", 4 | "com.unity.entities": "1.4.0-pre.3", 5 | "com.unity.entities.graphics": "1.4.12", 6 | "com.unity.ide.rider": "3.0.36", 7 | "com.unity.ide.visualstudio": "2.0.23", 8 | "com.unity.physics": "1.4.0-pre.3", 9 | "com.unity.profiling.core": "1.0.2", 10 | "com.unity.render-pipelines.universal": "17.1.0", 11 | "com.unity.test-framework": "1.5.1", 12 | "com.unity.timeline": "1.8.7", 13 | "com.unity.ugui": "2.0.0", 14 | "com.unity.modules.accessibility": "1.0.0", 15 | "com.unity.modules.ai": "1.0.0", 16 | "com.unity.modules.androidjni": "1.0.0", 17 | "com.unity.modules.animation": "1.0.0", 18 | "com.unity.modules.assetbundle": "1.0.0", 19 | "com.unity.modules.audio": "1.0.0", 20 | "com.unity.modules.cloth": "1.0.0", 21 | "com.unity.modules.director": "1.0.0", 22 | "com.unity.modules.imageconversion": "1.0.0", 23 | "com.unity.modules.imgui": "1.0.0", 24 | "com.unity.modules.jsonserialize": "1.0.0", 25 | "com.unity.modules.particlesystem": "1.0.0", 26 | "com.unity.modules.physics": "1.0.0", 27 | "com.unity.modules.physics2d": "1.0.0", 28 | "com.unity.modules.screencapture": "1.0.0", 29 | "com.unity.modules.terrain": "1.0.0", 30 | "com.unity.modules.terrainphysics": "1.0.0", 31 | "com.unity.modules.tilemap": "1.0.0", 32 | "com.unity.modules.ui": "1.0.0", 33 | "com.unity.modules.uielements": "1.0.0", 34 | "com.unity.modules.umbra": "1.0.0", 35 | "com.unity.modules.unityanalytics": "1.0.0", 36 | "com.unity.modules.unitywebrequest": "1.0.0", 37 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 38 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 39 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 40 | "com.unity.modules.unitywebrequestwww": "1.0.0", 41 | "com.unity.modules.vehicles": "1.0.0", 42 | "com.unity.modules.video": "1.0.0", 43 | "com.unity.modules.vr": "1.0.0", 44 | "com.unity.modules.wind": "1.0.0", 45 | "com.unity.modules.xr": "1.0.0" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/Implementations/LaserPowerUpSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(PowerUpsSystemGroup))] 5 | public partial struct LaserPowerUpSystem : ISystem 6 | { 7 | private const int NormalAnimationFrame = 4; 8 | private const int LaserAnimationFrame = 16; 9 | 10 | [BurstCompile] 11 | public void OnCreate(ref SystemState state) 12 | { 13 | state.RequireForUpdate(); 14 | } 15 | 16 | [BurstCompile] 17 | public void OnUpdate(ref SystemState state) 18 | { 19 | var ecbSystem = SystemAPI.GetSingleton(); 20 | 21 | new LaserPowerUpJob 22 | { 23 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged) 24 | }.Schedule(); 25 | } 26 | 27 | [BurstCompile] 28 | public partial struct LaserPowerUpJob : IJobEntity 29 | { 30 | public EntityCommandBuffer Ecb; 31 | 32 | private void Execute(Entity paddle, ref PlayTextureAnimation playTextureAnimation, 33 | in PaddleData paddleData, in PowerUpReceivedEvent request, in PlayerIndex playerIndex) 34 | { 35 | if (paddleData.ExclusivePowerUp == request.Type) 36 | return; 37 | 38 | if (paddleData.ExclusivePowerUp == PowerUpType.Laser && PowerUpsHelper.IsExclusivePowerUp(request.Type)) 39 | { 40 | Ecb.RemoveComponent(paddle); 41 | 42 | playTextureAnimation.StartFrame = NormalAnimationFrame * playerIndex.Value; 43 | playTextureAnimation.Initialized = false; 44 | } 45 | 46 | if (request.Type == PowerUpType.Laser) 47 | { 48 | Ecb.AddComponent(paddle, new LaserPaddleTag()); 49 | 50 | playTextureAnimation.StartFrame = LaserAnimationFrame; 51 | playTextureAnimation.Initialized = false; 52 | } 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Scripts/UI/Panels/OptionsUI.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | using UnityEngine.UI; 4 | 5 | public class OptionsUI : MonoBehaviour 6 | { 7 | [SerializeField] Toggle _vsyncToggle; 8 | [SerializeField] Text _vsyncToggleText; 9 | [SerializeField] GameObject _backButton; 10 | [SerializeField] Slider _mouseSensSlider; 11 | 12 | private void Start() 13 | { 14 | _vsyncToggle.onValueChanged.AddListener(OnToggleValueChanged); 15 | _mouseSensSlider.onValueChanged.AddListener(OnMouseSensitivitySliderValueChanged); 16 | 17 | float mouseSensitivity = PlayerPrefs.GetFloat("mouseSensitivity", 0.5f); 18 | _mouseSensSlider.value = mouseSensitivity; 19 | 20 | bool vSyncEnabled = PlayerPrefs.GetInt("vSyncEnabled", 1) == 1; 21 | _vsyncToggle.isOn = vSyncEnabled; 22 | _vsyncToggleText.text = vSyncEnabled ? "ON" : "OFF"; 23 | 24 | #if UNITY_ANDROID 25 | _vsyncToggle.enabled = false; 26 | _vsyncToggleText.text = "UNAVAILABLE"; 27 | #endif 28 | } 29 | 30 | private void Update() 31 | { 32 | if (Input.GetKey(KeyCode.Escape)) 33 | OnBackButtonClick(); 34 | } 35 | 36 | private void OnMouseSensitivitySliderValueChanged(float value) 37 | { 38 | var entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; 39 | GameUtils.TryGetSingletonManaged(entityManager, out var inputSettings); 40 | 41 | inputSettings.MouseSensitivity = value; 42 | 43 | PlayerPrefs.SetFloat("mouseSensitivity", value); 44 | } 45 | 46 | private void OnToggleValueChanged(bool isOn) 47 | { 48 | GameSystem.ApplyGraphicsSettings(isOn); 49 | _vsyncToggleText.text = isOn ? "ON" : "OFF"; 50 | PlayerPrefs.SetInt("vSyncEnabled", isOn ? 1 : 0); 51 | } 52 | 53 | public void OnBackButtonClick() 54 | { 55 | var entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; 56 | entityManager.AddSingleFrameComponent(ChangeStateCommand.Create()); 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/Scripts/Ball/Systems/BallSpawnCheatInputProcessingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | using Unity.Transforms; 5 | 6 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup), OrderFirst = true)] 7 | public partial struct BallSpawnCheatInputProcessingSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | state.RequireForUpdate(); 14 | } 15 | 16 | [BurstCompile] 17 | public void OnUpdate(ref SystemState state) 18 | { 19 | var gameData = SystemAPI.GetSingleton(); 20 | 21 | var ecbSystem = SystemAPI.GetSingleton(); 22 | 23 | new BallSpawnCheatInputProcessingJob 24 | { 25 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 26 | Random = Random.CreateFromIndex(state.GlobalSystemVersion), 27 | BallSpeed = gameData.BallSpeed 28 | }.Schedule(); 29 | } 30 | 31 | [BurstCompile] 32 | [WithNone(typeof(LaserPaddleTag))] 33 | public partial struct BallSpawnCheatInputProcessingJob : IJobEntity 34 | { 35 | public EntityCommandBuffer Ecb; 36 | public Random Random; 37 | public float BallSpeed; 38 | 39 | private void Execute(Entity paddle, ref PaddleInputData inputData, in LocalTransform transform, 40 | in OwnerPlayerId ownerPlayerId) 41 | { 42 | if (inputData.Action == InputActionType.SpawnBallCheat) 43 | { 44 | Ecb.AddSingleFrameComponent(new BallSpawnRequest 45 | { 46 | Position = transform.Position + new float3(0, 1, 0), 47 | OwnerPaddle = paddle, 48 | OwnerPlayer = ownerPlayerId.Value, 49 | StuckToPaddle = false, 50 | Velocity = BallsHelper.GetRandomDirection(Random) * BallSpeed 51 | }); 52 | } 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Materials/HWall.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: HWall 11 | m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: 15 | - _ALPHATEST_ON 16 | m_InvalidKeywords: [] 17 | m_LightmapFlags: 4 18 | m_EnableInstancingVariants: 0 19 | m_DoubleSidedGI: 0 20 | m_CustomRenderQueue: 2450 21 | stringTagMap: 22 | RenderType: TransparentCutout 23 | disabledShaderPasses: 24 | - MOTIONVECTORS 25 | m_LockedProperties: 26 | m_SavedProperties: 27 | serializedVersion: 3 28 | m_TexEnvs: 29 | - _BaseMap: 30 | m_Texture: {fileID: 2800000, guid: 536ba1f523878ea4f9415d0e18893cfd, type: 3} 31 | m_Scale: {x: 1, y: -1} 32 | m_Offset: {x: 0, y: 0} 33 | - _MainTex: 34 | m_Texture: {fileID: 2800000, guid: 536ba1f523878ea4f9415d0e18893cfd, type: 3} 35 | m_Scale: {x: 1, y: -1} 36 | m_Offset: {x: 0, y: 0} 37 | m_Ints: [] 38 | m_Floats: 39 | - _AlphaClip: 1 40 | - _AlphaToMask: 1 41 | - _Blend: 0 42 | - _BlendOp: 0 43 | - _Cull: 2 44 | - _Cutoff: 0.5 45 | - _DstBlend: 0 46 | - _DstBlendAlpha: 0 47 | - _QueueOffset: 0 48 | - _SampleGI: 0 49 | - _SrcBlend: 1 50 | - _SrcBlendAlpha: 1 51 | - _Surface: 0 52 | - _ZWrite: 1 53 | m_Colors: 54 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 55 | - _Color: {r: 1, g: 1, b: 1, a: 1} 56 | m_BuildTextureStacks: [] 57 | m_AllowLocking: 1 58 | --- !u!114 &7578339103919843245 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 11 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_GameObject: {fileID: 0} 65 | m_Enabled: 1 66 | m_EditorHideFlags: 0 67 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 68 | m_Name: 69 | m_EditorClassIdentifier: 70 | version: 10 71 | -------------------------------------------------------------------------------- /Assets/Materials/RWall.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: RWall 11 | m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: 15 | - _ALPHATEST_ON 16 | m_InvalidKeywords: [] 17 | m_LightmapFlags: 4 18 | m_EnableInstancingVariants: 0 19 | m_DoubleSidedGI: 0 20 | m_CustomRenderQueue: 2450 21 | stringTagMap: 22 | RenderType: TransparentCutout 23 | disabledShaderPasses: 24 | - MOTIONVECTORS 25 | m_LockedProperties: 26 | m_SavedProperties: 27 | serializedVersion: 3 28 | m_TexEnvs: 29 | - _BaseMap: 30 | m_Texture: {fileID: 2800000, guid: bd72b6d2e004b424ca259d797ed7193f, type: 3} 31 | m_Scale: {x: 1, y: -1} 32 | m_Offset: {x: 0, y: 0} 33 | - _MainTex: 34 | m_Texture: {fileID: 2800000, guid: bd72b6d2e004b424ca259d797ed7193f, type: 3} 35 | m_Scale: {x: 1, y: -1} 36 | m_Offset: {x: 0, y: 0} 37 | m_Ints: [] 38 | m_Floats: 39 | - _AlphaClip: 1 40 | - _AlphaToMask: 1 41 | - _Blend: 0 42 | - _BlendOp: 0 43 | - _Cull: 2 44 | - _Cutoff: 0.5 45 | - _DstBlend: 0 46 | - _DstBlendAlpha: 0 47 | - _QueueOffset: 0 48 | - _SampleGI: 0 49 | - _SrcBlend: 1 50 | - _SrcBlendAlpha: 1 51 | - _Surface: 0 52 | - _ZWrite: 1 53 | m_Colors: 54 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 55 | - _Color: {r: 1, g: 1, b: 1, a: 1} 56 | m_BuildTextureStacks: [] 57 | m_AllowLocking: 1 58 | --- !u!114 &2574011344961671370 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 11 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_GameObject: {fileID: 0} 65 | m_Enabled: 1 66 | m_EditorHideFlags: 0 67 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 68 | m_Name: 69 | m_EditorClassIdentifier: 70 | version: 10 71 | -------------------------------------------------------------------------------- /Assets/Materials/LWall.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: LWall 11 | m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: 15 | - _ALPHATEST_ON 16 | m_InvalidKeywords: [] 17 | m_LightmapFlags: 4 18 | m_EnableInstancingVariants: 0 19 | m_DoubleSidedGI: 0 20 | m_CustomRenderQueue: 2450 21 | stringTagMap: 22 | RenderType: TransparentCutout 23 | disabledShaderPasses: 24 | - MOTIONVECTORS 25 | m_LockedProperties: 26 | m_SavedProperties: 27 | serializedVersion: 3 28 | m_TexEnvs: 29 | - _BaseMap: 30 | m_Texture: {fileID: 2800000, guid: bd72b6d2e004b424ca259d797ed7193f, type: 3} 31 | m_Scale: {x: -1, y: -1} 32 | m_Offset: {x: 0, y: 0} 33 | - _MainTex: 34 | m_Texture: {fileID: 2800000, guid: bd72b6d2e004b424ca259d797ed7193f, type: 3} 35 | m_Scale: {x: -1, y: -1} 36 | m_Offset: {x: 0, y: 0} 37 | m_Ints: [] 38 | m_Floats: 39 | - _AlphaClip: 1 40 | - _AlphaToMask: 1 41 | - _Blend: 0 42 | - _BlendOp: 0 43 | - _Cull: 2 44 | - _Cutoff: 0.5 45 | - _DstBlend: 0 46 | - _DstBlendAlpha: 0 47 | - _QueueOffset: 0 48 | - _SampleGI: 0 49 | - _SrcBlend: 1 50 | - _SrcBlendAlpha: 1 51 | - _Surface: 0 52 | - _ZWrite: 1 53 | m_Colors: 54 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 55 | - _Color: {r: 1, g: 1, b: 1, a: 1} 56 | m_BuildTextureStacks: [] 57 | m_AllowLocking: 1 58 | --- !u!114 &2574011344961671370 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 11 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_GameObject: {fileID: 0} 65 | m_Enabled: 1 66 | m_EditorHideFlags: 0 67 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 68 | m_Name: 69 | m_EditorClassIdentifier: 70 | version: 10 71 | -------------------------------------------------------------------------------- /Assets/Materials/Background.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 32 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Background 11 | m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: 21 | RenderType: Opaque 22 | disabledShaderPasses: 23 | - MOTIONVECTORS 24 | m_LockedProperties: 25 | m_SavedProperties: 26 | serializedVersion: 3 27 | m_TexEnvs: 28 | - _BaseMap: 29 | m_Texture: {fileID: 2800000, guid: ea48008fff11abe4495e1ccdd9fd651a, type: 3} 30 | m_Scale: {x: -7, y: -7.5} 31 | m_Offset: {x: 0, y: 0} 32 | - _MainTex: 33 | m_Texture: {fileID: 2800000, guid: ea48008fff11abe4495e1ccdd9fd651a, type: 3} 34 | m_Scale: {x: -7, y: -7.5} 35 | m_Offset: {x: 0, y: 0} 36 | m_Ints: [] 37 | m_Floats: 38 | - _AddPrecomputedVelocity: 0 39 | - _AlphaClip: 0 40 | - _AlphaToMask: 0 41 | - _Blend: 0 42 | - _BlendOp: 0 43 | - _Cull: 2 44 | - _Cutoff: 0.5 45 | - _DstBlend: 0 46 | - _DstBlendAlpha: 0 47 | - _QueueOffset: 0 48 | - _SampleGI: 0 49 | - _SrcBlend: 1 50 | - _SrcBlendAlpha: 1 51 | - _Surface: 0 52 | - _ZWrite: 1 53 | m_Colors: 54 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 55 | - _Color: {r: 1, g: 1, b: 1, a: 1} 56 | m_BuildTextureStacks: [] 57 | m_AllowLocking: 1 58 | --- !u!114 &4424419489590123728 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 11 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_GameObject: {fileID: 0} 65 | m_Enabled: 1 66 | m_EditorHideFlags: 0 67 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 68 | m_Name: 69 | m_EditorClassIdentifier: 70 | version: 10 71 | -------------------------------------------------------------------------------- /Assets/Scripts/Laser/Systems/LaserSpawnerSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | using Unity.Physics; 5 | using Unity.Transforms; 6 | 7 | [UpdateInGroup(typeof(BallBlockPaddleSystemGroup))] 8 | public partial struct LaserSpawnerSystem : ISystem 9 | { 10 | private const float LaserSpeed = 20; 11 | 12 | [BurstCompile] 13 | public void OnCreate(ref SystemState state) 14 | { 15 | state.RequireForUpdate(); 16 | state.RequireForUpdate(); 17 | state.RequireForUpdate(); 18 | } 19 | 20 | [BurstCompile] 21 | public void OnUpdate(ref SystemState state) 22 | { 23 | var prefabs = SystemAPI.GetSingleton(); 24 | var ecbSystem = SystemAPI.GetSingleton(); 25 | 26 | new LaserSpawnerJob 27 | { 28 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 29 | LaserEntityPrefab = prefabs.LaserEntityPrefab 30 | }.Schedule(); 31 | } 32 | 33 | [BurstCompile] 34 | public partial struct LaserSpawnerJob : IJobEntity 35 | { 36 | public EntityCommandBuffer Ecb; 37 | public Entity LaserEntityPrefab; 38 | 39 | private void Execute(in LaserSpawnRequest spawnRequest) 40 | { 41 | SpawnLaser(Ecb, LaserEntityPrefab, spawnRequest.Position, spawnRequest.OwnerPlayer); 42 | } 43 | 44 | private static void SpawnLaser(EntityCommandBuffer ecb, Entity prefab, float3 position, Entity ownerPlayerId) 45 | { 46 | var laserShot = ecb.Instantiate(prefab); 47 | ecb.SetName(laserShot, "LaserShot"); 48 | 49 | ecb.AddComponent(laserShot, LocalTransform.FromPosition(position)); 50 | ecb.AddComponent(laserShot, new LaserShotTag()); 51 | ecb.AddComponent(laserShot, new PhysicsVelocity { Linear = new float3(0, LaserSpeed, 0), Angular = float3.zero }); 52 | ecb.AddComponent(laserShot, new OwnerPlayerId { Value = ownerPlayerId }); 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/BenchmarkProcessSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Mathematics; 5 | using Random = Unity.Mathematics.Random; 6 | 7 | [UpdateInGroup(typeof(GameStateSystemGroup))] 8 | public partial struct BenchmarkProcessSystem : ISystem 9 | { 10 | private const int BallsCount = 1000; 11 | 12 | [BurstCompile] 13 | public void OnCreate(ref SystemState state) 14 | { 15 | state.RequireForUpdate(); 16 | state.RequireForUpdate(); 17 | state.RequireForUpdate(); 18 | state.RequireForUpdate(); 19 | } 20 | 21 | [BurstCompile] 22 | public void OnUpdate(ref SystemState state) 23 | { 24 | var ecb = new EntityCommandBuffer(Allocator.TempJob); 25 | 26 | var gameData = SystemAPI.GetSingleton(); 27 | 28 | var random = Random.CreateFromIndex(state.GlobalSystemVersion); 29 | var levelsSettings = SystemAPI.GetSingleton(); 30 | 31 | foreach (var (ownerPlayerId, paddle) in SystemAPI.Query>().WithAll() 32 | .WithEntityAccess()) 33 | { 34 | for (int i = 0; i < BallsCount; i++) 35 | { 36 | var center = new float3( 37 | levelsSettings.GameAreaWidth / 2.0f, 38 | levelsSettings.GameAreaHeight - levelsSettings.BlockLinesCount / 2.0f, 0); 39 | 40 | ecb.AddSingleFrameComponent(new BallSpawnRequest 41 | { 42 | Position = center, 43 | OwnerPaddle = paddle, 44 | OwnerPlayer = ownerPlayerId.ValueRO.Value, 45 | StuckToPaddle = false, 46 | Velocity = new float3(random.NextFloat2Direction(), 0) * gameData.BallSpeed 47 | }); 48 | } 49 | } 50 | 51 | var startBenchmarkRequestQuery = SystemAPI.QueryBuilder().WithAll().Build(); 52 | ecb.DestroyEntity(startBenchmarkRequestQuery, EntityQueryCaptureMode.AtPlayback); 53 | 54 | ecb.Playback(state.EntityManager); 55 | ecb.Dispose(); 56 | } 57 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameOverSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Mathematics; 5 | 6 | [UpdateInGroup(typeof(GameStateSystemGroup))] 7 | public partial struct GameOverSystem : ISystem, ISystemStartStop 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | state.RequireForUpdate(); 14 | state.RequireForUpdate(); 15 | } 16 | 17 | [BurstCompile] 18 | public void OnStartRunning(ref SystemState state) 19 | { 20 | int highScore = 0; 21 | foreach (var playerData in SystemAPI.Query>()) 22 | highScore = math.max(highScore, playerData.ValueRO.Score); 23 | 24 | var gameData = SystemAPI.GetSingleton(); 25 | if (highScore > gameData.HighScore) 26 | { 27 | gameData.HighScore = highScore; 28 | state.EntityManager.AddSingleFrameComponent(new HiScoreUpdatedEvent { Score = highScore }); 29 | } 30 | SystemAPI.SetSingleton(gameData); 31 | 32 | var gameState = SystemAPI.GetSingleton(); 33 | gameState.StateTimer = 5.0f; 34 | SystemAPI.SetSingleton(gameState); 35 | 36 | AudioSystem.PlayAudio(state.EntityManager, AudioClipKeys.GameOver); 37 | } 38 | 39 | public void OnStopRunning(ref SystemState state) 40 | { 41 | } 42 | 43 | [BurstCompile] 44 | public void OnUpdate(ref SystemState state) 45 | { 46 | var gameState = SystemAPI.GetSingleton(); 47 | 48 | if (gameState.StateTimer > 0) 49 | { 50 | gameState.StateTimer -= SystemAPI.Time.DeltaTime; 51 | SystemAPI.SetSingleton(gameState); 52 | } 53 | else 54 | { 55 | var ecb = new EntityCommandBuffer(Allocator.TempJob); 56 | ecb.AddSingleFrameComponent(new LevelDespawnRequest()); 57 | ecb.DestroyEntity(SystemAPI.QueryBuilder().WithAll().Build(), EntityQueryCaptureMode.AtPlayback); 58 | ecb.AddSingleFrameComponent(ChangeStateCommand.Create()); 59 | ecb.Playback(state.EntityManager); 60 | ecb.Dispose(); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /Assets/Scripts/Events/Extensions/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public static class ExtensionMethods 4 | { 5 | public static void AddSingleFrameComponent(this EntityCommandBuffer ecb, T component) 6 | where T : unmanaged, IComponentData 7 | { 8 | var entity = ecb.CreateEntity(); 9 | ecb.SetName(entity, $"Event<{ComponentType.ReadOnly()}>"); 10 | 11 | ecb.AddComponent(entity, component); 12 | ecb.AddComponent(entity); 13 | } 14 | 15 | public static void AddSingleFrameComponent(this EntityManager em, T component) 16 | where T : unmanaged, IComponentData 17 | { 18 | var entity = em.CreateEntity(); 19 | em.SetName(entity, $"Event<{ComponentType.ReadOnly()}>"); 20 | 21 | em.AddComponentData(entity, component); 22 | em.AddComponent(entity); 23 | } 24 | 25 | public static void AddSingleFrameComponent(this EntityCommandBuffer ecb) where T : unmanaged, IComponentData 26 | { 27 | var entity = ecb.CreateEntity(); 28 | ecb.SetName(entity, $"Event<{ComponentType.ReadOnly()}>"); 29 | 30 | ecb.AddComponent(entity); 31 | ecb.AddComponent(entity); 32 | } 33 | 34 | public static void AddSingleFrameComponent(this EntityCommandBuffer ecb, Entity entity, T component) 35 | where T : unmanaged, IComponentData 36 | { 37 | ecb.AddComponent(entity, component); 38 | ecb.AppendToBuffer(entity, new SingleFrameComponent { TargetComponent = ComponentType.ReadOnly() }); 39 | } 40 | 41 | public static void AddSingleFrameComponent(this EntityManager em, Entity entity, T component) 42 | where T : unmanaged, IComponentData 43 | { 44 | em.AddComponentData(entity, component); 45 | var buffer = em.GetBuffer(entity); 46 | buffer.Add(new SingleFrameComponent { TargetComponent = ComponentType.ReadOnly() }); 47 | } 48 | 49 | public static void AddSingleFrameComponent(this EntityCommandBuffer ecb, Entity entity) 50 | where T : unmanaged, IComponentData 51 | { 52 | ecb.AddComponent(entity); 53 | ecb.AppendToBuffer(entity, new SingleFrameComponent { TargetComponent = ComponentType.ReadOnly() }); 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpTriggeringSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Physics; 5 | 6 | [UpdateInGroup(typeof(PowerUpsSystemGroup), OrderFirst = true)] 7 | public partial struct PowerUpTriggeringSystem : ISystem 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | state.RequireForUpdate(); 14 | } 15 | 16 | [BurstCompile] 17 | public void OnUpdate(ref SystemState state) 18 | { 19 | state.Dependency = new PowerUpTriggeringJob 20 | { 21 | PowerUpDataLookup = SystemAPI.GetComponentLookup(true), 22 | PaddleDataLookup = SystemAPI.GetComponentLookup(true), 23 | PowerUpReceivedEventLookup = SystemAPI.GetComponentLookup(), 24 | }.Schedule(SystemAPI.GetSingleton(), state.Dependency); 25 | } 26 | 27 | [BurstCompile] 28 | private struct PowerUpTriggeringJob : ITriggerEventsJob 29 | { 30 | [ReadOnly] public ComponentLookup PowerUpDataLookup; 31 | [ReadOnly] public ComponentLookup PaddleDataLookup; 32 | public ComponentLookup PowerUpReceivedEventLookup; 33 | 34 | public void Execute(TriggerEvent triggerEvent) 35 | { 36 | var entityA = triggerEvent.EntityA; 37 | var entityB = triggerEvent.EntityB; 38 | 39 | var powerUpEntity = PowerUpDataLookup.HasComponent(entityA) ? entityA : 40 | PowerUpDataLookup.HasComponent(entityB) ? entityB : Entity.Null; 41 | 42 | var paddleEntity = PaddleDataLookup.HasComponent(entityA) ? entityA : 43 | PaddleDataLookup.HasComponent(entityB) ? entityB : Entity.Null; 44 | 45 | if (paddleEntity != Entity.Null && powerUpEntity != Entity.Null) 46 | { 47 | PowerUpReceivedEventLookup[paddleEntity] = new PowerUpReceivedEvent { 48 | PowerUp = powerUpEntity, Type = PowerUpDataLookup[powerUpEntity].Type 49 | }; 50 | PowerUpReceivedEventLookup.SetComponentEnabled(paddleEntity, true); 51 | } 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /Assets/Settings/UniversalRPRendererSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 13 | m_Name: UniversalRPRendererSettings 14 | m_EditorClassIdentifier: 15 | debugShaders: 16 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} 17 | hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} 18 | probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} 19 | probeVolumeResources: 20 | probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3} 21 | probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3} 22 | probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3} 23 | probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3} 24 | probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3} 25 | probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3} 26 | probeVolumeBlendStatesCS: {fileID: 0} 27 | m_RendererFeatures: [] 28 | m_RendererFeatureMap: 29 | m_UseNativeRenderPass: 0 30 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} 31 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 32 | m_AssetVersion: 2 33 | m_OpaqueLayerMask: 34 | serializedVersion: 2 35 | m_Bits: 4294967295 36 | m_TransparentLayerMask: 37 | serializedVersion: 2 38 | m_Bits: 4294967295 39 | m_DefaultStencilState: 40 | overrideStencilState: 0 41 | stencilReference: 0 42 | stencilCompareFunction: 8 43 | passOperation: 2 44 | failOperation: 0 45 | zFailOperation: 0 46 | m_ShadowTransparentReceive: 0 47 | m_RenderingMode: 2 48 | m_DepthPrimingMode: 0 49 | m_CopyDepthMode: 0 50 | m_DepthAttachmentFormat: 0 51 | m_DepthTextureFormat: 0 52 | m_AccurateGbufferNormals: 0 53 | m_IntermediateTextureMode: 0 54 | -------------------------------------------------------------------------------- /Assets/Scripts/PowerUps/Systems/PowerUpReceivingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Entities; 3 | 4 | [UpdateInGroup(typeof(PowerUpsSystemGroup), OrderLast = true)] 5 | [UpdateAfter(typeof(PowerUpTriggeringSystem))] 6 | public partial struct PowerUpReceivingSystem : ISystem 7 | { 8 | [BurstCompile] 9 | public void OnCreate(ref SystemState state) 10 | { 11 | state.RequireForUpdate(); 12 | state.RequireForUpdate(); 13 | } 14 | 15 | [BurstCompile] 16 | public void OnUpdate(ref SystemState state) 17 | { 18 | var gameSettings = SystemAPI.GetSingleton(); 19 | var ecbSystem = SystemAPI.GetSingleton(); 20 | 21 | new PowerUpReceivingJob 22 | { 23 | Ecb = ecbSystem.CreateCommandBuffer(state.WorldUnmanaged), 24 | PlayerDataLookup = SystemAPI.GetComponentLookup(), 25 | PowerUpScore = gameSettings.PowerUpScore, 26 | BreakPowerUpScore = gameSettings.BreakPowerUpScore 27 | }.Schedule(); 28 | } 29 | 30 | [BurstCompile] 31 | public partial struct PowerUpReceivingJob : IJobEntity 32 | { 33 | public EntityCommandBuffer Ecb; 34 | public ComponentLookup PlayerDataLookup; 35 | public int PowerUpScore; 36 | public int BreakPowerUpScore; 37 | 38 | private void Execute(ref PaddleData paddleData, ref PowerUpReceivedEvent powerUpReceivedEvent, 39 | EnabledRefRW powerUpReceivedEventEnabledRef, in OwnerPlayerId ownerPlayerId) 40 | { 41 | var playerData = PlayerDataLookup[ownerPlayerId.Value]; 42 | 43 | playerData.Score += powerUpReceivedEvent.Type == PowerUpType.Break ? BreakPowerUpScore : PowerUpScore; 44 | 45 | PlayerDataLookup[ownerPlayerId.Value] = playerData; 46 | 47 | if (PowerUpsHelper.IsExclusivePowerUp(powerUpReceivedEvent.Type)) 48 | paddleData.ExclusivePowerUp = powerUpReceivedEvent.Type; 49 | 50 | Ecb.DestroyEntity(powerUpReceivedEvent.PowerUp); 51 | 52 | powerUpReceivedEventEnabledRef.ValueRW = false; 53 | 54 | AudioSystem.PlayAudio(Ecb, AudioClipKeys.PowerUpReceived); 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Assets/Scripts/Game/Systems/GameWinSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Physics; 5 | 6 | [UpdateInGroup(typeof(GameStateSystemGroup))] 7 | public partial struct GameWinSystem : ISystem, ISystemStartStop 8 | { 9 | [BurstCompile] 10 | public void OnCreate(ref SystemState state) 11 | { 12 | state.RequireForUpdate(); 13 | state.RequireForUpdate(); 14 | } 15 | 16 | [BurstCompile] 17 | public void OnStartRunning(ref SystemState state) 18 | { 19 | var gameState = SystemAPI.GetSingleton(); 20 | gameState.StateTimer = 3.0f; 21 | SystemAPI.SetSingleton(gameState); 22 | 23 | var ecb = new EntityCommandBuffer(Allocator.TempJob); 24 | 25 | foreach (var (_, entity) in SystemAPI.Query().WithEntityAccess()) 26 | { 27 | ecb.RemoveComponent(entity); 28 | ecb.RemoveComponent(entity); 29 | } 30 | 31 | foreach (var (_, entity) in SystemAPI.Query().WithEntityAccess()) 32 | ecb.RemoveComponent(entity); 33 | 34 | foreach (var (_, entity) in SystemAPI.Query().WithEntityAccess()) 35 | ecb.RemoveComponent(entity); 36 | 37 | ecb.Playback(state.EntityManager); 38 | ecb.Dispose(); 39 | 40 | AudioSystem.PlayAudio(state.EntityManager, AudioClipKeys.RoundCleared); 41 | } 42 | 43 | public void OnStopRunning(ref SystemState state) 44 | { 45 | } 46 | 47 | [BurstCompile] 48 | public void OnUpdate(ref SystemState state) 49 | { 50 | var ecb = new EntityCommandBuffer(Allocator.TempJob); 51 | 52 | foreach (var (gameData, gameStateData) in SystemAPI.Query, RefRW>()) 53 | { 54 | if (gameStateData.ValueRW.StateTimer > 0) 55 | gameStateData.ValueRW.StateTimer -= SystemAPI.Time.DeltaTime; 56 | else 57 | { 58 | gameData.ValueRW.Level++; 59 | 60 | ecb.AddSingleFrameComponent(new LevelDespawnRequest()); 61 | ecb.AddSingleFrameComponent(ChangeStateCommand.Create()); 62 | } 63 | } 64 | 65 | ecb.Playback(state.EntityManager); 66 | ecb.Dispose(); 67 | } 68 | } --------------------------------------------------------------------------------