From b7e2c8048887992411798cff3d037b0100aef0e7 Mon Sep 17 00:00:00 2001 From: manhduyhoang90 Date: Mon, 18 May 2026 21:22:34 +0700 Subject: [PATCH] TEST: trap and shakecam --- Assets/FirstGearGames.meta | 8 + Assets/FirstGearGames/SmoothCameraShaker.meta | 8 + .../SmoothCameraShaker/Demo.meta | 8 + .../SmoothCameraShaker/Demo/Demo.unity | 10561 ++++++++++++++++ .../SmoothCameraShaker/Demo/Demo.unity.meta | 14 + .../SmoothCameraShaker/Demo/Materials.meta | 8 + .../Demo/Materials/Box_00.mat | 77 + .../Demo/Materials/Box_00.mat.meta | 15 + .../Demo/Materials/Green.mat | 77 + .../Demo/Materials/Green.mat.meta | 15 + .../Demo/Materials/Rock_00.mat | 77 + .../Demo/Materials/Rock_00.mat.meta | 15 + .../SmoothCameraShaker/Demo/Models.meta | 8 + .../SmoothCameraShaker/Demo/Models/Box_00.fbx | Bin 0 -> 23244 bytes .../Demo/Models/Box_00.fbx.meta | 117 + .../Demo/Models/Plant_00.fbx | Bin 0 -> 34316 bytes .../Demo/Models/Plant_00.fbx.meta | 105 + .../Demo/Models/Plant_Rigged_00.fbx | Bin 0 -> 55052 bytes .../Demo/Models/Plant_Rigged_00.fbx.meta | 125 + .../Demo/Models/Rock_00.fbx | Bin 0 -> 12732 bytes .../Demo/Models/Rock_00.fbx.meta | 119 + .../Demo/Models/Tent_00.fbx | Bin 0 -> 41580 bytes .../Demo/Models/Tent_00.fbx.meta | 112 + .../SmoothCameraShaker/Demo/Prefabs.meta | 8 + .../SmoothCameraShaker/Demo/Prefabs/2D.meta | 8 + .../Demo/Prefabs/2D/Crate.prefab | 159 + .../Demo/Prefabs/2D/Crate.prefab.meta | 14 + .../Demo/Prefabs/2D/Rock.prefab | 188 + .../Demo/Prefabs/2D/Rock.prefab.meta | 14 + .../SmoothCameraShaker/Demo/Prefabs/3D.meta | 8 + .../Demo/Prefabs/3D/Box_00.prefab | 139 + .../Demo/Prefabs/3D/Box_00.prefab.meta | 14 + .../Demo/Prefabs/3D/Plant_00.prefab | 202 + .../Demo/Prefabs/3D/Plant_00.prefab.meta | 14 + .../Demo/Prefabs/3D/Plant_Rigged_00.prefab | 801 ++ .../Prefabs/3D/Plant_Rigged_00.prefab.meta | 15 + .../Demo/Prefabs/3D/Rock00.prefab | 139 + .../Demo/Prefabs/3D/Rock00.prefab.meta | 14 + .../Demo/Prefabs/3D/Tent_00.prefab | 444 + .../Demo/Prefabs/3D/Tent_00.prefab.meta | 14 + .../SmoothCameraShaker/Demo/ShakeData.meta | 8 + .../Demo/ShakeData/Earthquake.asset | 64 + .../Demo/ShakeData/Earthquake.asset.meta | 15 + .../Demo/ShakeData/OffRoad.asset | 67 + .../Demo/ShakeData/OffRoad.asset.meta | 15 + .../Demo/ShakeData/RockImpact.asset | 85 + .../Demo/ShakeData/RockImpact.asset.meta | 15 + .../SmoothCameraShaker/Demo/Textures.meta | 8 + .../SmoothCameraShaker/Demo/Textures/2D.meta | 8 + .../Demo/Textures/2D/Grass.png | Bin 0 -> 1885 bytes .../Demo/Textures/2D/Grass.png.meta | 106 + .../Demo/Textures/2D/Plant.png | Bin 0 -> 13305 bytes .../Demo/Textures/2D/Plant.png.meta | 228 + .../Demo/Textures/2D/Sky.png | Bin 0 -> 118189 bytes .../Demo/Textures/2D/Sky.png.meta | 106 + .../Demo/Textures/2D/Sprites.png | Bin 0 -> 35595 bytes .../Demo/Textures/2D/Sprites.png.meta | 241 + .../SmoothCameraShaker/Demo/Textures/3D.meta | 8 + .../Demo/Textures/3D/Box_00.png | Bin 0 -> 24214 bytes .../Demo/Textures/3D/Box_00.png.meta | 107 + .../Demo/Textures/3D/Rock_00.png | Bin 0 -> 6897 bytes .../Demo/Textures/3D/Rock_00.png.meta | 95 + .../SmoothCameraShaker/Demo/Textures/UI.meta | 8 + .../Demo/Textures/UI/LowPoly_2D.png | Bin 0 -> 4641 bytes .../Demo/Textures/UI/LowPoly_2D.png.meta | 137 + .../Demo/Textures/UI/LowPoly_3D.png | Bin 0 -> 8044 bytes .../Demo/Textures/UI/LowPoly_3D.png.meta | 137 + .../Demo/Textures/UI/LowPoly_Button_White.png | Bin 0 -> 11551 bytes .../Textures/UI/LowPoly_Button_White.png.meta | 137 + .../SmoothCameraShaker/Documentation.pdf | Bin 0 -> 149905 bytes .../SmoothCameraShaker/Documentation.pdf.meta | 14 + .../SmoothCameraShaker/Scripts.meta | 8 + .../Scripts/CameraShakerHandler.cs | 700 + .../Scripts/CameraShakerHandler.cs.meta | 18 + .../SmoothCameraShaker/Scripts/EventArgs.cs | 73 + .../Scripts/EventArgs.cs.meta | 18 + .../Scripts/InvertibleAxes.cs | 10 + .../Scripts/InvertibleAxes.cs.meta | 18 + .../Scripts/ObjectShakerHandler.cs | 309 + .../Scripts/ObjectShakerHandler.cs.meta | 18 + .../SmoothCameraShaker/Scripts/Presets.meta | 8 + .../Scripts/Presets/ConstantCurvy.asset | 82 + .../Scripts/Presets/ConstantCurvy.asset.meta | 15 + .../Scripts/Presets/ConstantFlat.asset | 64 + .../Scripts/Presets/ConstantFlat.asset.meta | 15 + .../Scripts/Presets/CurveFade.asset | 77 + .../Scripts/Presets/CurveFade.asset.meta | 15 + .../Scripts/Presets/Explosion.asset | 84 + .../Scripts/Presets/Explosion.asset.meta | 15 + .../SmoothCameraShaker/Scripts/Shakables.meta | 8 + .../Scripts/Shakables/ShakableBase.cs | 36 + .../Scripts/Shakables/ShakableBase.cs.meta | 18 + .../Scripts/Shakables/ShakableCanvas.cs | 558 + .../Scripts/Shakables/ShakableCanvas.cs.meta | 18 + .../Scripts/Shakables/ShakableRigidbody.cs | 366 + .../Shakables/ShakableRigidbody.cs.meta | 18 + .../Scripts/Shakables/ShakableRigidbody2D.cs | 362 + .../Shakables/ShakableRigidbody2D.cs.meta | 18 + .../Scripts/Shakables/ShakableTransform.cs | 391 + .../Shakables/ShakableTransform.cs.meta | 18 + .../Scripts/Shakables/ShakableTransform2D.cs | 14 + .../Shakables/ShakableTransform2D.cs.meta | 18 + .../SmoothCameraShaker/Scripts/ShakeData.cs | 647 + .../Scripts/ShakeData.cs.meta | 18 + .../Scripts/ShakerInstance.cs | 441 + .../Scripts/ShakerInstance.cs.meta | 21 + .../SmoothCameraShaker/Scripts/Shakers.meta | 8 + .../Scripts/Shakers/CameraShaker.cs | 599 + .../Scripts/Shakers/CameraShaker.cs.meta | 21 + .../Scripts/Shakers/ObjectShaker.cs | 489 + .../Scripts/Shakers/ObjectShaker.cs.meta | 24 + Assets/FirstGearGames/Utilities.meta | 8 + Assets/FirstGearGames/Utilities/Arrays.cs | 23 + .../FirstGearGames/Utilities/Arrays.cs.meta | 18 + Assets/FirstGearGames/Utilities/DDOL.cs | 60 + Assets/FirstGearGames/Utilities/DDOL.cs.meta | 18 + Assets/FirstGearGames/Utilities/Editor.meta | 8 + .../Utilities/Editor/DrawBitMaskField.cs | 72 + .../Utilities/Editor/DrawBitMaskField.cs.meta | 18 + .../Utilities/EditorRuntime.meta | 8 + .../EditorRuntime/BitMaskAttribute.cs | 19 + .../EditorRuntime/BitMaskAttribute.cs.meta | 18 + Assets/FirstGearGames/Utilities/Enums.cs | 109 + Assets/FirstGearGames/Utilities/Enums.cs.meta | 18 + Assets/FirstGearGames/Utilities/Floats.cs | 132 + .../FirstGearGames/Utilities/Floats.cs.meta | 18 + .../Utilities/FrameRateCalculator.cs | 70 + .../Utilities/FrameRateCalculator.cs.meta | 18 + Assets/FirstGearGames/Utilities/Ints.cs | 91 + Assets/FirstGearGames/Utilities/Ints.cs.meta | 18 + .../FirstGearGames/Utilities/Structures.meta | 8 + .../Utilities/Structures/RangeFloat.cs | 35 + .../Utilities/Structures/RangeFloat.cs.meta | 20 + .../Utilities/Structures/RangeInt.cs | 43 + .../Utilities/Structures/RangeInt.cs.meta | 20 + Assets/FirstGearGames/Utilities/Transforms.cs | 75 + .../Utilities/Transforms.cs.meta | 18 + Assets/FirstGearGames/Utilities/Vectors.cs | 138 + .../FirstGearGames/Utilities/Vectors.cs.meta | 18 + Assets/Prefabs/TestTrap.meta | 8 + Assets/Prefabs/TestTrap/Cube.prefab | 155 + Assets/Prefabs/TestTrap/Cube.prefab.meta | 7 + Assets/Scenes/TEST.unity | 922 ++ Assets/Scenes/TEST.unity.meta | 7 + Assets/Scripts/Manager.meta | 8 + Assets/Scripts/Manager/DeathTrapCollision.cs | 17 + .../Manager/DeathTrapCollision.cs.meta | 2 + Assets/Scripts/Manager/DeathTrapSpawner.cs | 62 + .../Scripts/Manager/DeathTrapSpawner.cs.meta | 2 + Assets/Scripts/Manager/GameManager.cs | 35 + Assets/Scripts/Manager/GameManager.cs.meta | 2 + 151 files changed, 23277 insertions(+) create mode 100644 Assets/FirstGearGames.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Rock_00.fbx create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Rock_00.fbx.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Grass.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Grass.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sprites.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sprites.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Box_00.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Box_00.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_2D.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_2D.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_3D.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_3D.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs.meta create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs create mode 100644 Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs.meta create mode 100644 Assets/FirstGearGames/Utilities.meta create mode 100644 Assets/FirstGearGames/Utilities/Arrays.cs create mode 100644 Assets/FirstGearGames/Utilities/Arrays.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/DDOL.cs create mode 100644 Assets/FirstGearGames/Utilities/DDOL.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Editor.meta create mode 100644 Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs create mode 100644 Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/EditorRuntime.meta create mode 100644 Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs create mode 100644 Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Enums.cs create mode 100644 Assets/FirstGearGames/Utilities/Enums.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Floats.cs create mode 100644 Assets/FirstGearGames/Utilities/Floats.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/FrameRateCalculator.cs create mode 100644 Assets/FirstGearGames/Utilities/FrameRateCalculator.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Ints.cs create mode 100644 Assets/FirstGearGames/Utilities/Ints.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Structures.meta create mode 100644 Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs create mode 100644 Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Structures/RangeInt.cs create mode 100644 Assets/FirstGearGames/Utilities/Structures/RangeInt.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Transforms.cs create mode 100644 Assets/FirstGearGames/Utilities/Transforms.cs.meta create mode 100644 Assets/FirstGearGames/Utilities/Vectors.cs create mode 100644 Assets/FirstGearGames/Utilities/Vectors.cs.meta create mode 100644 Assets/Prefabs/TestTrap.meta create mode 100644 Assets/Prefabs/TestTrap/Cube.prefab create mode 100644 Assets/Prefabs/TestTrap/Cube.prefab.meta create mode 100644 Assets/Scenes/TEST.unity create mode 100644 Assets/Scenes/TEST.unity.meta create mode 100644 Assets/Scripts/Manager.meta create mode 100644 Assets/Scripts/Manager/DeathTrapCollision.cs create mode 100644 Assets/Scripts/Manager/DeathTrapCollision.cs.meta create mode 100644 Assets/Scripts/Manager/DeathTrapSpawner.cs create mode 100644 Assets/Scripts/Manager/DeathTrapSpawner.cs.meta create mode 100644 Assets/Scripts/Manager/GameManager.cs create mode 100644 Assets/Scripts/Manager/GameManager.cs.meta diff --git a/Assets/FirstGearGames.meta b/Assets/FirstGearGames.meta new file mode 100644 index 00000000..334a1cc1 --- /dev/null +++ b/Assets/FirstGearGames.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ecb1e1208686dcf48ba6273f4fb15f39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker.meta b/Assets/FirstGearGames/SmoothCameraShaker.meta new file mode 100644 index 00000000..09db8434 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 882927f2a1bc2e5488f6b2156c78fa29 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo.meta new file mode 100644 index 00000000..28e4ebac --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d4bd9c5900c1ee4a91b619a57c6d494 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity new file mode 100644 index 00000000..8c11d5e2 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity @@ -0,0 +1,10561 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 9 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &17281990 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 17281991} + - component: {fileID: 17281994} + - component: {fileID: 17281993} + - component: {fileID: 17281992} + m_Layer: 0 + m_Name: Transform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &17281991 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 17281990} + m_LocalRotation: {x: -0.05105295, y: 0.9350177, z: -0.15061308, w: -0.31694067} + m_LocalPosition: {x: 5.774833, y: -1, z: 4.0350637} + m_LocalScale: {x: 0.59999955, y: 1.3, z: 1} + m_Children: [] + m_Father: {fileID: 527900847} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 18.301, y: -142.55, z: 0} +--- !u!114 &17281992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 17281990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9d4107aad3b3544da23b3f86c3f2d0f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 1 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 1 + _randomizeDirections: 1 +--- !u!23 &17281993 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 17281990} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &17281994 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 17281990} + m_Mesh: {fileID: 4300000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} +--- !u!1 &28772065 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 28772066} + - component: {fileID: 28772067} + m_Layer: 0 + m_Name: DistanceSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &28772066 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 28772065} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.6, z: 0} + m_Children: [] + m_Father: {fileID: 1852056576} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &28772067 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 28772065} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 21300000, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &33410890 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1536308433582276, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 33410891} + - component: {fileID: 33410893} + - component: {fileID: 33410892} + m_Layer: 0 + m_Name: Bone.005 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &33410891 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4397872704742768, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33410890} + m_LocalRotation: {x: 0.34409988, y: 0.030886797, z: -0.58746344, w: 0.7317978} + m_LocalPosition: {x: 0.0060895495, y: 0.02603006, z: 0.0024284997} + m_LocalScale: {x: 1, y: 1, z: 1.0000001} + m_Children: + - {fileID: 1325554998} + m_Father: {fileID: 952900638} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!59 &33410892 +HingeJoint: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 59305948372057196, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33410890} + m_ConnectedBody: {fileID: 606101272} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 0, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.0072895475, y: 0.0012300815, z: -0.0026714946} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &33410893 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54739078757934288, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33410890} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &70112384 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 70112385} + - component: {fileID: 70112388} + - component: {fileID: 70112387} + - component: {fileID: 70112386} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &70112385 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 70112384} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 716295265} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 35, y: -25, z: 0} +--- !u!114 &70112386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 70112384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ab8353b5ebd32545867da143199a814, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeTechnique: 1 + _makeDefaultOnEnable: 1 + _limitMagnitude: 0 + _positionalMagnitudeLimit: 10 + _rotationalMagnitudeLimit: 5 +--- !u!81 &70112387 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 70112384} + m_Enabled: 1 +--- !u!20 &70112388 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 70112384} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &127854301 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1895656635507758, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 877549488} + - component: {fileID: 127854302} + m_Layer: 0 + m_Name: Plant_Rigged_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &127854302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 114134362235266950, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 127854301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 1 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!1 &147367865 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 147367868} + - component: {fileID: 147367867} + - component: {fileID: 147367866} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &147367866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 147367865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &147367867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 147367865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &147367868 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 147367865} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &172606074 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 172606075} + - component: {fileID: 172606076} + m_Layer: 0 + m_Name: Wall (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &172606075 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 172606074} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.38, y: -6.18, z: -1.89} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1234856483} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &172606076 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 172606074} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 40, y: 10, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &189817816 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1998688019593524, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 189817817} + m_Layer: 0 + m_Name: Bone.003_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &189817817 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4993999476019840, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 189817816} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017427837, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 758009155} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &200910690 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 200910691} + - component: {fileID: 200910692} + m_Layer: 0 + m_Name: Wall (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &200910691 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 200910690} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 12.91, y: -6.18, z: 14.35} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1234856483} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!65 &200910692 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 200910690} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 40, y: 10, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &220810079 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 220810080} + - component: {fileID: 220810082} + - component: {fileID: 220810081} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &220810080 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220810079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1602987919} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &220810081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220810079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &220810082 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220810079} +--- !u!1 &247223956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 247223957} + - component: {fileID: 247223960} + - component: {fileID: 247223959} + - component: {fileID: 247223958} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &247223957 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 247223956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1881735589} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 35, y: -25, z: 0} +--- !u!114 &247223958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 247223956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ab8353b5ebd32545867da143199a814, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeTechnique: 1 + _makeDefaultOnEnable: 1 + _limitMagnitude: 0 + _positionalMagnitudeLimit: 10 + _rotationalMagnitudeLimit: 5 +--- !u!81 &247223959 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 247223956} + m_Enabled: 1 +--- !u!20 &247223960 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 247223956} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 2.5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &265967027 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 265967028} + - component: {fileID: 265967029} + m_Layer: 0 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &265967028 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 265967027} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_Children: [] + m_Father: {fileID: 1852056576} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!60 &265967029 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 265967027} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.28, y: 1.28} + newSize: {x: 1.28, y: 1.28} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: 0.61, y: 0.22999999} + - {x: 0.58, y: 0.26} + - {x: 0.51, y: 0.35999998} + - {x: 0.45999998, y: 0.44} + - {x: 0.21, y: 0.64} + - {x: -0.35999998, y: 0.64} + - {x: -0.56, y: 0.59999996} + - {x: -0.61, y: 0.53} + - {x: -0.64, y: 0.35} + - {x: -0.64, y: -0.22999999} + - {x: -0.19, y: -0.64} + - {x: 0.51, y: -0.64} + - {x: 0.64, y: -0.59999996} + - {x: 0.64, y: 0.17999999} +--- !u!1 &276671439 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 276671440} + m_Layer: 0 + m_Name: Crates + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &276671440 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 276671439} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.4, y: -31.866, z: -0.71} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2052957736} + - {fileID: 1618604858} + - {fileID: 1489157032} + - {fileID: 608450878} + - {fileID: 1172102057} + - {fileID: 1274942629} + m_Father: {fileID: 568020934} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &309982831 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 309982837} + - component: {fileID: 309982836} + - component: {fileID: 309982835} + - component: {fileID: 309982833} + - component: {fileID: 309982832} + - component: {fileID: 309982838} + - component: {fileID: 309982834} + m_Layer: 0 + m_Name: Box_01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &309982832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &309982833 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &309982834 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918097, z: -0.0000019073484} +--- !u!23 &309982835 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &309982836 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!4 &309982837 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_LocalRotation: {x: 6.65068e-12, y: 1, z: -0.0000018099951, w: 0.0000036358833} + m_LocalPosition: {x: 1.12, y: -1.78, z: -1.31} + m_LocalScale: {x: 0.5000002, y: 0.5, z: 0.5000002} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &309982838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 309982831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &317504090 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 317504091} + m_Layer: 0 + m_Name: Bounds + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &317504091 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 317504090} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.6193676, y: -31.10765, z: -0.89453125} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 530982441} + - {fileID: 751940840} + m_Father: {fileID: 568020934} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &332810800 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 332810801} + - component: {fileID: 332810803} + - component: {fileID: 332810802} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &332810801 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 332810800} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1293583619} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &332810802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 332810800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 2D +--- !u!222 &332810803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 332810800} +--- !u!1 &347318829 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 347318830} + - component: {fileID: 347318833} + - component: {fileID: 347318832} + - component: {fileID: 347318831} + m_Layer: 0 + m_Name: Boulder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &347318830 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 347318829} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1200325080} + m_Father: {fileID: 1482493863} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -371.45996, y: 75.16} + m_SizeDelta: {x: 237.31, y: 109.54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &347318831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 347318829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 347318832} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_Boulders + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &347318832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 347318829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8773585, g: 0.8773585, b: 0.8773585, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &347318833 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 347318829} +--- !u!1 &358658161 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 358658165} + - component: {fileID: 358658164} + - component: {fileID: 358658163} + - component: {fileID: 358658162} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &358658162 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 358658161} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &358658163 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 358658161} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: d8c78a8f28328f642add238f387a323c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &358658164 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 358658161} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &358658165 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 358658161} + m_LocalRotation: {x: 0, y: -0.35020733, z: 0, w: 0.9366723} + m_LocalPosition: {x: -17.943127, y: -33.704475, z: 18.482677} + m_LocalScale: {x: 20, y: 1, z: 10} + m_Children: [] + m_Father: {fileID: 599052392} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: -41, z: 0} +--- !u!1 &362805843 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 362805844} + - component: {fileID: 362805847} + - component: {fileID: 362805846} + - component: {fileID: 362805845} + m_Layer: 0 + m_Name: Reset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &362805844 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362805843} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1519399531} + m_Father: {fileID: 1482493863} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 221, y: -104} + m_SizeDelta: {x: 384, y: 192} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &362805845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362805843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 362805846} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_Reset + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &362805846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362805843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.93829006, b: 0.7688679, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &362805847 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362805843} +--- !u!1 &377057691 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 377057692} + - component: {fileID: 377057694} + - component: {fileID: 377057693} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &377057692 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 377057691} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 966471027} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -451, y: -204} + m_SizeDelta: {x: 831.6001, y: 224.80005} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &377057693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 377057691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 128 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 128 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &377057694 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 377057691} +--- !u!1 &395406098 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 395406099} + - component: {fileID: 395406104} + - component: {fileID: 395406103} + - component: {fileID: 395406102} + - component: {fileID: 395406101} + - component: {fileID: 395406100} + m_Layer: 0 + m_Name: Rock01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &395406099 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + m_LocalRotation: {x: -0.53092504, y: 0.21704489, z: 0.3099723, w: 0.7582397} + m_LocalPosition: {x: -1.83, y: 20, z: -6.74} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 867056096} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -70, y: 0, z: 44.47} +--- !u!54 &395406100 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!64 &395406101 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 1 + m_CookingOptions: 14 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!23 &395406102 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c2dd870f2e2d4af44a65cc7f311c3914, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &395406103 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!114 &395406104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 395406098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!1 &401070344 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1849801863884580, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 401070345} + - component: {fileID: 401070347} + - component: {fileID: 401070346} + m_Layer: 0 + m_Name: Bone.001 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &401070345 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4116679528967140, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 401070344} + m_LocalRotation: {x: -0.3695272, y: -0.0066187694, z: -0.56961495, w: 0.7341286} + m_LocalPosition: {x: 0.007823182, y: 0.033429503, z: -0.002244788} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_Children: + - {fileID: 1224526089} + m_Father: {fileID: 952900638} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -33.374, y: 29.503002, z: -84.642006} +--- !u!59 &401070346 +HingeJoint: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 59638853285261044, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 401070344} + m_ConnectedBody: {fileID: 606101272} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.009023196, y: 0.008629473, z: -0.0073447893} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &401070347 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54330613743818828, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 401070344} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &409193485 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 409193486} + - component: {fileID: 409193487} + - component: {fileID: 409193488} + - component: {fileID: 409193489} + m_Layer: 0 + m_Name: RightLeaf + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &409193486 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 409193485} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.031000271, y: -0.016001195, z: -0.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1357527894} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &409193487 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 409193485} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: 1be801af75d973a4b9e1fdc6fda7ac8c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.1, y: 0.52} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &409193488 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 409193485} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 3 +--- !u!233 &409193489 +HingeJoint2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 409193485} + m_Enabled: 1 + serializedVersion: 4 + m_EnableCollision: 0 + m_ConnectedRigidBody: {fileID: 1357527896} + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_AutoConfigureConnectedAnchor: 1 + m_Anchor: {x: 0, y: 0} + m_ConnectedAnchor: {x: -0.031000137, y: -0.016002655} + m_UseMotor: 1 + m_Motor: + m_MotorSpeed: 500 + m_MaximumMotorForce: 0 + m_UseLimits: 1 + m_AngleLimits: + m_LowerAngle: -7 + m_UpperAngle: 7 +--- !u!1 &467603461 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 467603462} + - component: {fileID: 467603464} + - component: {fileID: 467603463} + m_Layer: 0 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &467603462 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 467603461} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 730196187} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &467603463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 467603461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4245283, g: 0.4245283, b: 0.4245283, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f5142557b23d4694399a0d662d97059d, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &467603464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 467603461} +--- !u!1 &495747205 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 495747211} + - component: {fileID: 495747210} + - component: {fileID: 495747209} + - component: {fileID: 495747207} + - component: {fileID: 495747206} + - component: {fileID: 495747212} + - component: {fileID: 495747208} + m_Layer: 0 + m_Name: Box_05 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &495747206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &495747207 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &495747208 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918097, z: 0} +--- !u!23 &495747209 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &495747210 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!4 &495747211 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_LocalRotation: {x: -0, y: -0.65487266, z: -0, w: 0.7557393} + m_LocalPosition: {x: 1.503, y: 0.48, z: -0.491} + m_LocalScale: {x: 0.50000006, y: 0.5, z: 0.50000006} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: -40, z: 0} +--- !u!114 &495747212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 495747205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &522193778 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 522193779} + - component: {fileID: 522193780} + m_Layer: 0 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &522193779 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 522193778} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9, y: 0.9, z: 1} + m_Children: [] + m_Father: {fileID: 1670885687} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!60 &522193780 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 522193778} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.28, y: 1.28} + newSize: {x: 1.28, y: 1.28} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: 0.61, y: 0.22999999} + - {x: 0.58, y: 0.26} + - {x: 0.51, y: 0.35999998} + - {x: 0.45999998, y: 0.44} + - {x: 0.21, y: 0.64} + - {x: -0.35999998, y: 0.64} + - {x: -0.56, y: 0.59999996} + - {x: -0.61, y: 0.53} + - {x: -0.64, y: 0.35} + - {x: -0.64, y: -0.22999999} + - {x: -0.19, y: -0.64} + - {x: 0.51, y: -0.64} + - {x: 0.64, y: -0.59999996} + - {x: 0.64, y: 0.17999999} +--- !u!1 &527900844 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 527900847} + - component: {fileID: 527900846} + - component: {fileID: 527900845} + m_Layer: 0 + m_Name: ObjectShakerTesting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &527900845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 527900844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb70f33360ac0ad41890180d5fd971a8, type: 3} + m_Name: + m_EditorClassIdentifier: + ShakeData: {fileID: 11400000, guid: 3890100001ea08547bc772e4e0f9199b, type: 2} + RunShakeData: 0 +--- !u!114 &527900846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 527900844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d72f66df91b41304b92365de92f39380, type: 3} + m_Name: + m_EditorClassIdentifier: + _removeFromManagerOnDisable: 1 + _limitMagnitude: 0 + _positionalMagnitudeLimit: 10 + _rotationalMagnitudeLimit: 3 + _shakeOnEnable: {fileID: 0} +--- !u!4 &527900847 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 527900844} + m_LocalRotation: {x: -0, y: -0.34202012, z: -0, w: 0.9396927} + m_LocalPosition: {x: -3.2377505, y: -33.396, z: 13.204926} + m_LocalScale: {x: 0.5000005, y: 0.5, z: 0.5000005} + m_Children: + - {fileID: 580711698} + - {fileID: 1613818627} + - {fileID: 535244363} + - {fileID: 17281991} + - {fileID: 1214318577} + - {fileID: 1935350169} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &530982440 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 530982441} + - component: {fileID: 530982442} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &530982441 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 530982440} + m_LocalRotation: {x: -0, y: -0, z: -0.36474717, w: 0.9311066} + m_LocalPosition: {x: -14.29, y: 0.75, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 317504091} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -42.784} +--- !u!61 &530982442 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 530982440} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 20, y: 5} + m_EdgeRadius: 0 +--- !u!1 &531774997 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 531774998} + - component: {fileID: 531775000} + - component: {fileID: 531774999} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &531774998 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 531774997} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1762875119} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -99.2, y: 0.1} + m_SizeDelta: {x: 161.1, y: 55.5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &531774999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 531774997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Rigidbodies +--- !u!222 &531775000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 531774997} +--- !u!1 &532941481 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 532941482} + - component: {fileID: 532941483} + m_Layer: 0 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &532941482 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 532941481} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9, y: 0.9, z: 1} + m_Children: [] + m_Father: {fileID: 799013709} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!60 &532941483 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 532941481} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.28, y: 1.28} + newSize: {x: 1.28, y: 1.28} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: 0.61, y: 0.22999999} + - {x: 0.58, y: 0.26} + - {x: 0.51, y: 0.35999998} + - {x: 0.45999998, y: 0.44} + - {x: 0.21, y: 0.64} + - {x: -0.35999998, y: 0.64} + - {x: -0.56, y: 0.59999996} + - {x: -0.61, y: 0.53} + - {x: -0.64, y: 0.35} + - {x: -0.64, y: -0.22999999} + - {x: -0.19, y: -0.64} + - {x: 0.51, y: -0.64} + - {x: 0.64, y: -0.59999996} + - {x: 0.64, y: 0.17999999} +--- !u!1 &534588702 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 534588708} + - component: {fileID: 534588707} + - component: {fileID: 534588706} + - component: {fileID: 534588704} + - component: {fileID: 534588703} + - component: {fileID: 534588709} + - component: {fileID: 534588705} + m_Layer: 0 + m_Name: Box_03 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &534588703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &534588704 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &534588705 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836195, y: 2.1836195, z: 2.179807} + m_Center: {x: 0, y: 1.0918097, z: 0} +--- !u!23 &534588706 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &534588707 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!4 &534588708 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_LocalRotation: {x: -0, y: -0.2119218, z: -0, w: 0.9772867} + m_LocalPosition: {x: 0.762, y: -1.81, z: -0.101} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 17.35, z: 0} +--- !u!114 &534588709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534588702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &535244362 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 535244363} + - component: {fileID: 535244368} + - component: {fileID: 535244367} + - component: {fileID: 535244366} + - component: {fileID: 535244364} + m_Layer: 0 + m_Name: 2D_Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &535244363 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 535244362} + m_LocalRotation: {x: 0, y: 0.3420201, z: 0, w: 0.9396927} + m_LocalPosition: {x: 5.59, y: 4.06, z: -4.69} + m_LocalScale: {x: 4, y: 4, z: 2} + m_Children: + - {fileID: 1878417691} + m_Father: {fileID: 527900847} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 40, z: 0} +--- !u!50 &535244364 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 535244362} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &535244366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 535244362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 1 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &535244367 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 535244362} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &535244368 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 535244362} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &548572556 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 548572559} + - component: {fileID: 548572557} + - component: {fileID: 548572558} + - component: {fileID: 548572560} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &548572557 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 548572556} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &548572558 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 548572556} + m_Enabled: 1 +--- !u!4 &548572559 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 548572556} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 988822959} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 35, y: -25, z: 0} +--- !u!114 &548572560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 548572556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ab8353b5ebd32545867da143199a814, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeTechnique: 1 + _makeDefaultOnEnable: 1 + _limitMagnitude: 0 + _positionalMagnitudeLimit: 10 + _rotationalMagnitudeLimit: 5 +--- !u!1 &568020933 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 568020934} + m_Layer: 0 + m_Name: 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &568020934 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 568020933} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1723396215} + - {fileID: 1859211804} + - {fileID: 1357527894} + - {fileID: 276671440} + - {fileID: 1873462614} + - {fileID: 2080184612} + - {fileID: 1920429056} + - {fileID: 1881735589} + - {fileID: 1358814673} + - {fileID: 317504091} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &580711697 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 580711698} + - component: {fileID: 580711706} + - component: {fileID: 580711705} + - component: {fileID: 580711704} + - component: {fileID: 580711703} + - component: {fileID: 580711701} + m_Layer: 0 + m_Name: 3D_Box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &580711698 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1431370383} + m_Father: {fileID: 527900847} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -40, z: 0} +--- !u!65 &580711701 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918097, z: 0.0000019073486} +--- !u!114 &580711703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 1 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &580711704 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &580711705 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &580711706 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580711697} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!1 &599052391 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 599052392} + m_Layer: 0 + m_Name: 3D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &599052392 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 599052391} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 988822959} + - {fileID: 716295265} + - {fileID: 5780706965776490689} + - {fileID: 7065430076145580074} + - {fileID: 877549488} + - {fileID: 959564215} + - {fileID: 358658165} + - {fileID: 1944082110} + - {fileID: 867056096} + - {fileID: 1234856483} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &606101271 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1319713429091798, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 606101273} + - component: {fileID: 606101272} + m_Layer: 0 + m_Name: HingeTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!54 &606101272 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54847200778635264, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606101271} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!4 &606101273 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4337566040806538, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 606101271} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.0012, y: 0.0248, z: 0.0051} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 952900638} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &608450877 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 608450878} + - component: {fileID: 608450882} + - component: {fileID: 608450881} + - component: {fileID: 608450880} + - component: {fileID: 608450879} + - component: {fileID: 608450883} + m_Layer: 0 + m_Name: Crate (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &608450878 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.08, y: -0.59, z: -1.41} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &608450879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &608450880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &608450881 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &608450882 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &608450883 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 608450877} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &625009048 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 625009049} + - component: {fileID: 625009054} + - component: {fileID: 625009053} + - component: {fileID: 625009052} + - component: {fileID: 625009051} + - component: {fileID: 625009050} + m_Layer: 0 + m_Name: Rock02 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &625009049 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + m_LocalRotation: {x: 0.28079647, y: 0.12700722, z: 0.7117993, w: 0.631161} + m_LocalPosition: {x: -2.45, y: 40, z: 3.79} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 867056096} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 10, y: 34.66, z: 100} +--- !u!54 &625009050 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!64 &625009051 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 1 + m_CookingOptions: 14 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!23 &625009052 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c2dd870f2e2d4af44a65cc7f311c3914, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &625009053 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!114 &625009054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625009048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!1 &652956618 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 652956619} + - component: {fileID: 652956621} + - component: {fileID: 652956620} + m_Layer: 0 + m_Name: Clickable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &652956619 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652956618} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2122838072} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 66.53, y: 0} + m_SizeDelta: {x: 133.06, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &652956620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652956618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &652956621 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 652956618} +--- !u!1 &682942135 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 682942136} + - component: {fileID: 682942137} + m_Layer: 0 + m_Name: ChangeCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &682942136 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 682942135} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1076716568} + - {fileID: 2049199878} + m_Father: {fileID: 1482493863} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -148.22021, y: -57} + m_SizeDelta: {x: 273.76, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &682942137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 682942135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_ChangeCamera + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &696573548 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1584624691702198, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 696573549} + m_Layer: 0 + m_Name: Armature + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &696573549 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4255502493259674, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 696573548} + m_LocalRotation: {x: -0.7071068, y: 0.000000014901161, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100.00004, z: 100.000046} + m_Children: + - {fileID: 952900638} + m_Father: {fileID: 877549488} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &700079516 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 700079517} + - component: {fileID: 700079519} + - component: {fileID: 700079518} + m_Layer: 0 + m_Name: Clickable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &700079517 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700079516} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1298664755} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 66.53, y: 0} + m_SizeDelta: {x: 133.06, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &700079518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700079516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &700079519 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 700079516} +--- !u!1 &708663461 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 708663462} + - component: {fileID: 708663463} + - component: {fileID: 708663464} + - component: {fileID: 708663465} + m_Layer: 0 + m_Name: LeftLeaf + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &708663462 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 708663461} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.04, y: 0, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1357527894} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &708663463 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 708663461} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300000, guid: 1be801af75d973a4b9e1fdc6fda7ac8c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.1, y: 0.52} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &708663464 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 708663461} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 3 +--- !u!233 &708663465 +HingeJoint2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 708663461} + m_Enabled: 1 + serializedVersion: 4 + m_EnableCollision: 0 + m_ConnectedRigidBody: {fileID: 1357527896} + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_AutoConfigureConnectedAnchor: 0 + m_Anchor: {x: 0, y: 0} + m_ConnectedAnchor: {x: 0.03999996, y: 0} + m_UseMotor: 1 + m_Motor: + m_MotorSpeed: 500 + m_MaximumMotorForce: 0 + m_UseLimits: 1 + m_AngleLimits: + m_LowerAngle: -7 + m_UpperAngle: 7 +--- !u!1 &716295264 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 716295265} + m_Layer: 0 + m_Name: CameraHolderB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &716295265 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 716295264} + m_LocalRotation: {x: 0.280654, y: 0.13998607, z: -0.037902195, w: 0.9487891} + m_LocalPosition: {x: -5.87, y: -30.6, z: 10.6} + m_LocalScale: {x: 1.0000002, y: 1, z: 1.0000002} + m_Children: + - {fileID: 70112385} + m_Father: {fileID: 599052392} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 32.9, y: 16.92, z: 0.45400003} +--- !u!1 &730196186 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 730196187} + m_Layer: 0 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &730196187 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 730196186} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 467603462} + m_Father: {fileID: 2122337455} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -1.300003, y: -10.400002} + m_SizeDelta: {x: -51.2, y: -20.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &751940839 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 751940840} + - component: {fileID: 751940841} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &751940840 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 751940839} + m_LocalRotation: {x: 0, y: 0, z: 0.35836798, w: 0.93358046} + m_LocalPosition: {x: 13.17, y: 0.75, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 317504091} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 42} +--- !u!61 &751940841 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 751940839} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 20, y: 5} + m_EdgeRadius: 0 +--- !u!1 &758009154 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1638414858883226, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 758009155} + - component: {fileID: 758009157} + - component: {fileID: 758009156} + m_Layer: 0 + m_Name: Bone.003 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &758009155 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4947197597797156, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758009154} + m_LocalRotation: {x: -0.050327364, y: 0.079698145, z: 0.8282723, w: 0.55234087} + m_LocalPosition: {x: -0.010082979, y: 0.024798201, z: -0.0014264102} + m_LocalScale: {x: 1.0000002, y: 1.0000001, z: 1} + m_Children: + - {fileID: 189817817} + m_Father: {fileID: 952900638} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!59 &758009156 +HingeJoint: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 59972005539826592, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758009154} + m_ConnectedBody: {fileID: 606101272} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.008882981, y: -0.0000017937273, z: -0.0065264027} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &758009157 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54124062687080982, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 758009154} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &786138902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 786138903} + - component: {fileID: 786138904} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &786138903 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 786138902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.31, y: 2.89, z: -0.78} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1003196926} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &786138904 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 786138902} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 5, y: 0.5, z: 5} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &799013708 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 799013709} + - component: {fileID: 799013710} + - component: {fileID: 799013713} + - component: {fileID: 799013711} + m_Layer: 0 + m_Name: Rock (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &799013709 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799013708} + m_LocalRotation: {x: 0, y: 0, z: 0.94865537, w: 0.31631154} + m_LocalPosition: {x: -4.69, y: 15, z: 0} + m_LocalScale: {x: 1.25, y: 1.25, z: 1.25} + m_Children: + - {fileID: 532941482} + m_Father: {fileID: 1873462614} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 143.12} +--- !u!114 &799013710 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799013708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!50 &799013711 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799013708} + m_BodyType: 0 + m_Simulated: 0 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 10 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!212 &799013713 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 799013708} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 15 + m_Sprite: {fileID: 21300000, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &854195005 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 854195006} + - component: {fileID: 854195007} + m_Layer: 0 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &854195006 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854195005} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1298664755} + m_Father: {fileID: 1762875119} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &854195007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 854195005} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + toggleTransition: 1 + graphic: {fileID: 1298664756} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_ShakeRigidbodies + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 854195007} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Toggle, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &867056095 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 867056096} + m_Layer: 0 + m_Name: Rocks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &867056096 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 867056095} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.9862591, y: -20, z: 19.242842} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1062760326} + - {fileID: 395406099} + - {fileID: 625009049} + m_Father: {fileID: 599052392} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &877549488 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4252170578404524, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 127854301} + m_LocalRotation: {x: -0, y: -0.19217944, z: -0, w: 0.98135984} + m_LocalPosition: {x: -6.93, y: -33.78, z: 13.39} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: + - {fileID: 696573549} + - {fileID: 981792511} + m_Father: {fileID: 599052392} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &952900637 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1458052853556238, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 952900638} + m_Layer: 0 + m_Name: Bone + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &952900638 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4492305217144936, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 952900637} + m_LocalRotation: {x: 0.6266867, y: 0.08071654, z: -0.07245433, w: 0.77168584} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1.0000001, y: 1, z: 1} + m_Children: + - {fileID: 606101273} + - {fileID: 401070345} + - {fileID: 1085942885} + - {fileID: 758009155} + - {fileID: 1689806747} + - {fileID: 33410891} + m_Father: {fileID: 696573549} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &959564213 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 959564215} + - component: {fileID: 959564214} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &959564214 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 959564213} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &959564215 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 959564213} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 599052392} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &965639787 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1174525772201796, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 965639788} + m_Layer: 0 + m_Name: Bone.004_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &965639788 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4573209112020694, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 965639787} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017064013, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1689806747} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &966471026 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 966471027} + - component: {fileID: 966471029} + - component: {fileID: 966471028} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &966471027 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 966471026} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 377057692} + m_Father: {fileID: 989308488} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &966471028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 966471026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &966471029 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 966471026} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &981792510 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1815598762614754, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 981792511} + - component: {fileID: 981792512} + m_Layer: 0 + m_Name: plant + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &981792511 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4713533142050562, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 981792510} + m_LocalRotation: {x: 0.00000008146035, y: -0, z: 1.7763568e-15, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 877549488} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!137 &981792512 +SkinnedMeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 137308085883534716, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 981792510} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + - {fileID: 2100002, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300000, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + m_Bones: + - {fileID: 952900638} + - {fileID: 401070345} + - {fileID: 1085942885} + - {fileID: 758009155} + - {fileID: 1689806747} + - {fileID: 33410891} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 952900638} + m_AABB: + m_Center: {x: -0.00009130128, y: 0.023700738, z: -0.000492312} + m_Extent: {x: 0.030637199, y: 0.026565446, z: 0.031100761} + m_DirtyAABB: 0 +--- !u!1 &988822958 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 988822959} + m_Layer: 0 + m_Name: CameraHolderA + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &988822959 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 988822958} + m_LocalRotation: {x: -0, y: -0.35592264, z: -0, w: 0.9345155} + m_LocalPosition: {x: 2.4, y: -31.4, z: 10.8} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 548572559} + m_Father: {fileID: 599052392} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -41.7, z: 0} +--- !u!1 &989308486 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 989308488} + - component: {fileID: 989308487} + m_Layer: 0 + m_Name: PerfMonitor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &989308487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 989308486} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2040b8ae99aea8c4c8a59458ede6eb95, type: 3} + m_Name: + m_EditorClassIdentifier: + _fpsText: {fileID: 377057693} +--- !u!4 &989308488 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 989308486} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.7671722, y: -29.444422, z: 5.1838536} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 966471027} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1003196925 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1003196926} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1003196926 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1003196925} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1437291330} + - {fileID: 786138903} + m_Father: {fileID: 7065430076145580074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1007700169 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1007700170} + - component: {fileID: 1007700172} + - component: {fileID: 1007700171} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1007700170 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1007700169} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2111246645} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1007700171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1007700169} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1007700172 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1007700169} +--- !u!4 &1062760326 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.9862591, y: 0, z: -6} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: [] + m_Father: {fileID: 867056096} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1063252902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1062760326} + - component: {fileID: 1063252905} + - component: {fileID: 1064054694} + - component: {fileID: 1065184614} + - component: {fileID: 1063252904} + - component: {fileID: 1063252903} + m_Layer: 0 + m_Name: Rock00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!54 &1063252903 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!64 &1063252904 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 1 + m_CookingOptions: 14 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!114 &1063252905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!33 &1064054694 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!23 &1065184614 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1063252902} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c2dd870f2e2d4af44a65cc7f311c3914, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1069090207 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1069090208} + - component: {fileID: 1069090210} + - component: {fileID: 1069090209} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1069090208 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069090207} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2111246645} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -98.3, y: 0.1} + m_SizeDelta: {x: 159.3, y: 55.5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1069090209 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069090207} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Canvases + +' +--- !u!222 &1069090210 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1069090207} +--- !u!1 &1076716567 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1076716568} + - component: {fileID: 1076716570} + - component: {fileID: 1076716569} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1076716568 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1076716567} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 682942136} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1076716569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1076716567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19117647, g: 0.19117647, b: 0.19117647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1076716570 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1076716567} +--- !u!1 &1085942884 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1580316250580798, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1085942885} + - component: {fileID: 1085942887} + - component: {fileID: 1085942886} + m_Layer: 0 + m_Name: Bone.002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1085942885 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4957642066743350, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1085942884} + m_LocalRotation: {x: -0.52324283, y: 0.016005367, z: 0.3433307, w: 0.7797979} + m_LocalPosition: {x: -0.0068912604, y: 0.030272566, z: -0.0070868894} + m_LocalScale: {x: 0.99999994, y: 1, z: 1} + m_Children: + - {fileID: 1729696683} + m_Father: {fileID: 952900638} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!59 &1085942886 +HingeJoint: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 59341562785616752, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1085942884} + m_ConnectedBody: {fileID: 606101272} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 1, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.0056912573, y: 0.005472554, z: -0.012186889} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &1085942887 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54099504244426016, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1085942884} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &1144012089 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1144012095} + - component: {fileID: 1144012094} + - component: {fileID: 1144012093} + - component: {fileID: 1144012091} + - component: {fileID: 1144012090} + - component: {fileID: 1144012096} + - component: {fileID: 1144012092} + m_Layer: 0 + m_Name: Box_04 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1144012090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &1144012091 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1144012092 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918097, z: 0.0000019073486} +--- !u!23 &1144012093 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1144012094 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!4 &1144012095 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_LocalRotation: {x: -0, y: -0.65487266, z: -0, w: 0.7557393} + m_LocalPosition: {x: 1.587, y: -0.59, z: 0.143} + m_LocalScale: {x: 0.50000006, y: 0.5, z: 0.50000006} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: -40, z: 0} +--- !u!114 &1144012096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1144012089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1164072976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1164072977} + - component: {fileID: 1164072979} + - component: {fileID: 1164072978} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1164072977 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164072976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2122337455} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -2, y: 3} + m_SizeDelta: {x: 19.5, y: 54.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1164072978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164072976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7905393, g: 0.8962264, b: 0.85352844, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1164072979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1164072976} +--- !u!1 &1172102056 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1172102057} + - component: {fileID: 1172102061} + - component: {fileID: 1172102060} + - component: {fileID: 1172102059} + - component: {fileID: 1172102058} + - component: {fileID: 1172102062} + m_Layer: 0 + m_Name: Crate (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1172102057 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.3, y: -0.6, z: -1.92} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1172102058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1172102059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &1172102060 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &1172102061 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &1172102062 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172102056} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1172435641 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1172435642} + m_Layer: 0 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1172435642 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1172435641} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1696226044} + m_Father: {fileID: 2122337455} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -2.1739044, y: -11.575001} + m_SizeDelta: {x: -36.4, y: -10.05} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1200325079 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1200325080} + - component: {fileID: 1200325082} + - component: {fileID: 1200325081} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1200325080 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1200325079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 347318830} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1200325081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1200325079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: BOULDER +--- !u!222 &1200325082 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1200325079} +--- !u!1 &1214318576 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1214318577} + - component: {fileID: 1214318578} + - component: {fileID: 1214318579} + m_Layer: 0 + m_Name: 2D_Transform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1214318577 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1214318576} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.28, y: 3.17, z: -7.63} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 527900847} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1214318578 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1214318576} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300002, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.83, y: 1.15} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!114 &1214318579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1214318576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1668e20ecaba69547a8a160014c5640b, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 1 + _randomizeDirections: 1 +--- !u!1 &1224526088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1013518845757228, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1224526089} + m_Layer: 0 + m_Name: Bone.001_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1224526089 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4626185539506982, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1224526088} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017967971, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 401070345} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1234856482 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1234856483} + m_Layer: 0 + m_Name: Bounds + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1234856483 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1234856482} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -24.01, z: 3.8} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2134808388} + - {fileID: 200910691} + - {fileID: 2078751228} + - {fileID: 172606075} + m_Father: {fileID: 599052392} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1274942628 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1274942629} + - component: {fileID: 1274942633} + - component: {fileID: 1274942632} + - component: {fileID: 1274942631} + - component: {fileID: 1274942630} + - component: {fileID: 1274942634} + m_Layer: 0 + m_Name: Crate (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1274942629 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.82, y: 0.07, z: -1.71} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1274942630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1274942631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &1274942632 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &1274942633 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &1274942634 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1274942628} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1289626098 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1289626099} + - component: {fileID: 1289626101} + - component: {fileID: 1289626100} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1289626099 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289626098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1683135128} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1289626100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289626098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: EARTHQUAKE +--- !u!222 &1289626101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1289626098} +--- !u!1 &1293583618 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1293583619} + - component: {fileID: 1293583622} + - component: {fileID: 1293583621} + - component: {fileID: 1293583620} + m_Layer: 0 + m_Name: 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1293583619 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293583618} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 332810801} + m_Father: {fileID: 1482493863} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 88.30029, y: 75.16} + m_SizeDelta: {x: 108, y: 108} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1293583620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293583618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1293583621} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_2D + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1293583621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293583618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.627451, g: 0.9019608, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f5142557b23d4694399a0d662d97059d, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1293583622 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293583618} +--- !u!1 &1298664754 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1298664755} + - component: {fileID: 1298664757} + - component: {fileID: 1298664756} + m_Layer: 0 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1298664755 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1298664754} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 700079517} + m_Father: {fileID: 854195006} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 51.69, y: -0.56} + m_SizeDelta: {x: 86.46, y: 70.68} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1298664756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1298664754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1298664757 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1298664754} +--- !u!1 &1325554997 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1524236116513698, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1325554998} + m_Layer: 0 + m_Name: Bone.005_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1325554998 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4410869341281168, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1325554997} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.018505335, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 33410891} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1357527893 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1357527894} + - component: {fileID: 1357527895} + - component: {fileID: 1357527897} + - component: {fileID: 1357527896} + m_Layer: 0 + m_Name: Plant_Rigged + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1357527894 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1357527893} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.78, y: -32.868, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 708663462} + - {fileID: 409193486} + m_Father: {fileID: 568020934} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1357527895 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1357527893} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 11 + m_Sprite: {fileID: 21300002, guid: 1be801af75d973a4b9e1fdc6fda7ac8c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.61, y: 0.79} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &1357527896 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1357527893} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &1357527897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1357527893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1.25 + _requireInView: 1 + _includeChildren: 1 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!1 &1358814672 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1358814673} + m_Layer: 0 + m_Name: CameraHolderB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1358814673 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1358814672} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.84, y: -32.93, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1762961556} + m_Father: {fileID: 568020934} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1371172404 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1371172405} + - component: {fileID: 1371172408} + - component: {fileID: 1371172407} + - component: {fileID: 1371172406} + m_Layer: 0 + m_Name: Offroad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1371172405 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371172404} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1879988822} + m_Father: {fileID: 1482493863} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -618.4, y: 75.16} + m_SizeDelta: {x: 237.31, y: 109.54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1371172406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371172404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1371172407} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_OffRoad + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1371172407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371172404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.92245203, g: 0.9245283, b: 0.7718939, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1371172408 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1371172404} +--- !u!1 &1431370382 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1431370383} + - component: {fileID: 1431370388} + - component: {fileID: 1431370387} + - component: {fileID: 1431370386} + - component: {fileID: 1431370385} + - component: {fileID: 1431370384} + m_Layer: 0 + m_Name: 3D_Box (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1431370383 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 580711698} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -40, z: 0} +--- !u!65 &1431370384 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918097, z: 0.0000019073486} +--- !u!114 &1431370385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &1431370386 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1431370387 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1431370388 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1431370382} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!1 &1437291329 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1437291330} + - component: {fileID: 1437291331} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1437291330 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1437291329} + m_LocalRotation: {x: 0, y: 0, z: -0.113723405, w: 0.99351245} + m_LocalPosition: {x: 0.23, y: 1.32, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1003196926} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -13.06} +--- !u!136 &1437291331 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1437291329} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.75 + m_Height: 3 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1482493862 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1482493863} + - component: {fileID: 1482493866} + - component: {fileID: 1482493865} + - component: {fileID: 1482493867} + - component: {fileID: 1482493868} + - component: {fileID: 1482493864} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1482493863 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1371172405} + - {fileID: 347318830} + - {fileID: 1683135128} + - {fileID: 362805844} + - {fileID: 1293583619} + - {fileID: 1936726741} + - {fileID: 2122337455} + - {fileID: 2111246645} + - {fileID: 1762875119} + - {fileID: 682942136} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1482493864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 663365fdc7222f84fa76f2a79859e1f5, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _useDefaultCameraShaker: 1 + _cameraShaker: {fileID: 0} + _encapsulateChildren: 1 + _monitorEncapsulation: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _randomizeDirections: 1 +--- !u!114 &1482493865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1482493866 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 548572557} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 118 + m_TargetDisplay: 0 +--- !u!114 &1482493867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925c9f05d63a6fe49add246fdb4ff657, type: 3} + m_Name: + m_EditorClassIdentifier: + _2dObject: {fileID: 568020933} + _2dCameras: + - {fileID: 247223958} + - {fileID: 1762961557} + _3dObject: {fileID: 599052391} + _3dCameras: + - {fileID: 548572560} + - {fileID: 70112386} + _scaleSlider: {fileID: 2122337456} + _earthquakeData: {fileID: 11400000, guid: 3629d1d6b48ac3a47ba9e9bd7501a8c8, type: 2} + _offRoadData: {fileID: 11400000, guid: e832a8ee5e2677040b890c07820306d7, type: 2} +--- !u!114 &1482493868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1482493862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &1489157031 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1489157032} + - component: {fileID: 1489157036} + - component: {fileID: 1489157035} + - component: {fileID: 1489157034} + - component: {fileID: 1489157033} + - component: {fileID: 1489157037} + m_Layer: 0 + m_Name: Crate (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1489157032 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.48, y: -1.25, z: -1.16} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1489157033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1489157034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &1489157035 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &1489157036 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &1489157037 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1489157031} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1519399530 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1519399531} + - component: {fileID: 1519399533} + - component: {fileID: 1519399532} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1519399531 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1519399530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 362805844} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1519399532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1519399530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: RESET +--- !u!222 &1519399533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1519399530} +--- !u!1 &1602987918 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1602987919} + - component: {fileID: 1602987922} + - component: {fileID: 1602987921} + - component: {fileID: 1602987920} + m_Layer: 0 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1602987919 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1602987918} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 220810080} + m_Father: {fileID: 1935350169} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 6} + m_SizeDelta: {x: 300, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1602987920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1602987918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1602987921} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1602987921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1602987918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1602987922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1602987918} +--- !u!33 &1602992025 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!23 &1603990873 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1605921689 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1606416313} + - component: {fileID: 1602992025} + - component: {fileID: 1603990873} + - component: {fileID: 1605921691} + - component: {fileID: 1605921690} + - component: {fileID: 1605921693} + - component: {fileID: 1605921692} + m_Layer: 0 + m_Name: Box_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1605921690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &1605921691 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1605921692 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918021, z: -0.0000019073484} +--- !u!114 &1605921693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1606416313 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1605921689} + m_LocalRotation: {x: 6.65068e-12, y: 1, z: -0.0000018099951, w: 0.0000036358833} + m_LocalPosition: {x: 2.26, y: -1.74, z: -0.27} + m_LocalScale: {x: 0.5000002, y: 0.5, z: 0.5000002} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1613818626 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1613818627} + - component: {fileID: 1613818628} + m_Layer: 0 + m_Name: 2D_Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1613818627 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1613818626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 527900847} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &1613818628 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1613818626} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!1 &1618604857 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1618604858} + - component: {fileID: 1618604862} + - component: {fileID: 1618604861} + - component: {fileID: 1618604860} + - component: {fileID: 1618604859} + - component: {fileID: 1618604863} + m_Layer: 0 + m_Name: Crate (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1618604858 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.65, y: -1.25, z: -1.66} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1618604859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1618604860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &1618604861 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &1618604862 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!50 &1618604863 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1618604857} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1646202031 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1646202037} + - component: {fileID: 1646202036} + - component: {fileID: 1646202035} + - component: {fileID: 1646202033} + - component: {fileID: 1646202032} + - component: {fileID: 1646202038} + - component: {fileID: 1646202034} + m_Layer: 0 + m_Name: Box_02 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1646202032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &1646202033 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1646202034 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836197, y: 2.1836195, z: 2.1798072} + m_Center: {x: 0.0000014305115, y: 1.0918097, z: 0.0000038146973} +--- !u!23 &1646202035 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1646202036 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!4 &1646202037 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_LocalRotation: {x: -0, y: -0.47830868, z: -0, w: 0.8781918} + m_LocalPosition: {x: 0.767, y: -0.63, z: -0.983} + m_LocalScale: {x: 0.50000006, y: 0.5, z: 0.50000006} + m_Children: [] + m_Father: {fileID: 1944082110} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: -15.33, z: 0} +--- !u!114 &1646202038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1646202031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1670885686 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1670885687} + - component: {fileID: 1670885690} + - component: {fileID: 1670885689} + - component: {fileID: 1670885691} + m_Layer: 0 + m_Name: Rock + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1670885687 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1670885686} + m_LocalRotation: {x: 0, y: 0, z: 0.20816772, w: 0.97809315} + m_LocalPosition: {x: -0.64, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: + - {fileID: 522193779} + m_Father: {fileID: 1873462614} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 24.03} +--- !u!212 &1670885689 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1670885686} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 14 + m_Sprite: {fileID: 21300000, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!114 &1670885690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1670885686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!50 &1670885691 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1670885686} + m_BodyType: 0 + m_Simulated: 0 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 10 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1679804098 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1679804099} + - component: {fileID: 1679804101} + - component: {fileID: 1679804100} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679804099 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679804098} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1762875119} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679804100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679804098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1679804101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1679804098} +--- !u!1 &1683135127 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1683135128} + - component: {fileID: 1683135131} + - component: {fileID: 1683135130} + - component: {fileID: 1683135129} + m_Layer: 0 + m_Name: Earthquake + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1683135128 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1683135127} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1289626099} + m_Father: {fileID: 1482493863} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -126.700195, y: 75.16} + m_SizeDelta: {x: 237.31, y: 109.54} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1683135129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1683135127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1683135130} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_Earthquake + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1683135130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1683135127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8018868, g: 0.7285667, b: 0.57872015, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f496743e368965942a4bf94398c8c673, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1683135131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1683135127} +--- !u!1 &1689806746 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1341789945422318, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1689806747} + - component: {fileID: 1689806749} + - component: {fileID: 1689806748} + m_Layer: 0 + m_Name: Bone.004 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1689806747 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4110875914404350, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1689806746} + m_LocalRotation: {x: 0.75068474, y: 0.02446198, z: 0.23374179, w: 0.6174454} + m_LocalPosition: {x: -0.0032626053, y: 0.028448403, z: 0.0066653374} + m_LocalScale: {x: 1, y: 1.0000001, z: 1.0000001} + m_Children: + - {fileID: 965639788} + m_Father: {fileID: 952900638} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!59 &1689806748 +HingeJoint: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 59879517047240724, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1689806746} + m_ConnectedBody: {fileID: 606101272} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 1, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.0020626083, y: 0.0036484394, z: 0.0015653432} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &1689806749 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 54124310887512172, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1689806746} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &1696226043 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1696226044} + - component: {fileID: 1696226046} + - component: {fileID: 1696226045} + m_Layer: 0 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1696226044 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696226043} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1172435642} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1696226045 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696226043} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8490566, g: 0.8490566, b: 0.8490566, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1696226046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1696226043} +--- !u!1 &1723396214 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1723396215} + - component: {fileID: 1723396216} + m_Layer: 0 + m_Name: Tent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1723396215 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1723396214} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.06, y: -32.29, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 568020934} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1723396216 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1723396214} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 10 + m_Sprite: {fileID: 21300006, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.86, y: 2.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &1729696682 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 1100369342134988, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1729696683} + m_Layer: 0 + m_Name: Bone.002_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1729696683 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 4117940696219736, guid: c7c88767f3ac5c84a988ebb9e3ec3481, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1729696682} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.018834433, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1085942885} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1762875118 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1762875119} + m_Layer: 0 + m_Name: Rigidbodies + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1762875119 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762875118} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1679804099} + - {fileID: 531774998} + - {fileID: 854195006} + m_Father: {fileID: 1482493863} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -148.2002, y: 357} + m_SizeDelta: {x: 273.8, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1762961555 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1762961556} + - component: {fileID: 1762961559} + - component: {fileID: 1762961558} + - component: {fileID: 1762961557} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1762961556 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762961555} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1358814673} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 35, y: -25, z: 0} +--- !u!114 &1762961557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762961555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ab8353b5ebd32545867da143199a814, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeTechnique: 1 + _makeDefaultOnEnable: 1 + _limitMagnitude: 0 + _positionalMagnitudeLimit: 10 + _rotationalMagnitudeLimit: 5 +--- !u!81 &1762961558 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762961555} + m_Enabled: 1 +--- !u!20 &1762961559 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1762961555} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 2.5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &1784744896 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1784744897} + - component: {fileID: 1784744898} + m_Layer: 0 + m_Name: Grass (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1784744897 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784744896} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -1.7639999, z: 0} + m_LocalScale: {x: 1, y: 5, z: 1} + m_Children: [] + m_Father: {fileID: 1920429056} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!212 &1784744898 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1784744896} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 20 + m_Sprite: {fileID: 21300000, guid: 607b03c5535a1194e8fd3cf01db5732c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.67} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &1852056575 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1852056576} + - component: {fileID: 1852056577} + - component: {fileID: 1852056578} + m_Layer: 0 + m_Name: Rock (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1852056576 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1852056575} + m_LocalRotation: {x: 0, y: -0, z: 0.9048272, w: -0.4257791} + m_LocalPosition: {x: -1.38, y: 30, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: + - {fileID: 265967028} + - {fileID: 28772066} + m_Father: {fileID: 1873462614} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 230.4} +--- !u!114 &1852056577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1852056575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!50 &1852056578 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1852056575} + m_BodyType: 0 + m_Simulated: 0 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 10 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &1859211803 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1859211804} + - component: {fileID: 1859211805} + m_Layer: 0 + m_Name: Plant + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1859211804 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1859211803} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.78, y: -33.04, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 568020934} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1859211805 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1859211803} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 11 + m_Sprite: {fileID: 21300002, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.83, y: 1.15} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &1864898657 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1864898662} + - component: {fileID: 1864898661} + - component: {fileID: 1864898660} + - component: {fileID: 1864898659} + - component: {fileID: 1864898658} + - component: {fileID: 1864898664} + - component: {fileID: 1864898663} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!54 &1864898658 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &1864898659 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &1864898660 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1864898661 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1864898662 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.7816916, y: -32.948902, z: 13.94} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1864898663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1668e20ecaba69547a8a160014c5640b, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!114 &1864898664 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1864898657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!1 &1873462613 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1873462614} + m_Layer: 0 + m_Name: Rocks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1873462614 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1873462613} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.88, y: -27.13, z: -0.71} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1670885687} + - {fileID: 799013709} + - {fileID: 1852056576} + m_Father: {fileID: 568020934} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1878417690 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1878417691} + - component: {fileID: 1878417694} + - component: {fileID: 1878417693} + - component: {fileID: 1878417692} + m_Layer: 0 + m_Name: 2D_Box (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1878417691 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1878417690} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.7115698, y: -0.3524996, z: -0.0002927184} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 535244363} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 40, z: 0} +--- !u!50 &1878417692 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1878417690} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!61 &1878417693 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1878417690} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!212 &1878417694 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1878417690} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &1879988821 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1879988822} + - component: {fileID: 1879988824} + - component: {fileID: 1879988823} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1879988822 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879988821} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1371172405} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1879988823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879988821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: OFF-ROAD +--- !u!222 &1879988824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879988821} +--- !u!1 &1881735588 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1881735589} + m_Layer: 0 + m_Name: CameraHolderA + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1881735589 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1881735588} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.07, y: -31.87, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 247223957} + m_Father: {fileID: 568020934} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1887022377 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1887022378} + - component: {fileID: 1887022379} + m_Layer: 0 + m_Name: Sky (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1887022378 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1887022377} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 3.55, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2080184612} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!212 &1887022379 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1887022377} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 1ebe3e82ebb71d747b19e6cff408ccd6, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 7, y: 3.79} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &1920429055 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1920429056} + - component: {fileID: 1920429057} + - component: {fileID: 1920429058} + m_Layer: 0 + m_Name: Grass + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1920429056 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920429055} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -5.327, y: -33.766, z: 0} + m_LocalScale: {x: 20, y: 1, z: 1} + m_Children: + - {fileID: 1784744897} + m_Father: {fileID: 568020934} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1920429057 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920429055} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 20 + m_Sprite: {fileID: 21300000, guid: 607b03c5535a1194e8fd3cf01db5732c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.67} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!61 &1920429058 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1920429055} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0.049999997} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.67} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.67} + m_EdgeRadius: 0 +--- !u!1 &1935350168 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1935350169} + - component: {fileID: 1935350173} + - component: {fileID: 1935350170} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1935350169 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1935350168} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1602987919} + m_Father: {fileID: 527900847} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1935350170 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1935350168} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 663365fdc7222f84fa76f2a79859e1f5, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 1 + _useDefaultCameraShaker: 1 + _cameraShaker: {fileID: 0} + _encapsulateChildren: 1 + _monitorEncapsulation: 0 + _positionalMultiplier: 3 + _rotationalMultiplier: 3 + _randomizeDirections: 1 +--- !u!223 &1935350173 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1935350168} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1936726740 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1936726741} + - component: {fileID: 1936726744} + - component: {fileID: 1936726743} + - component: {fileID: 1936726742} + m_Layer: 0 + m_Name: 3D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1936726741 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1936726740} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2029650349} + m_Father: {fileID: 1482493863} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 201.1997, y: 75.16} + m_SizeDelta: {x: 108, y: 108} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1936726742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1936726740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1936726743} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_3D + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1936726743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1936726740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.627451, g: 0.90179294, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 51b273c33666ad14fadcf48ba5eb8857, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1936726744 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1936726740} +--- !u!1 &1944082109 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1944082110} + m_Layer: 0 + m_Name: Crates + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1944082110 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1944082109} + m_LocalRotation: {x: -0, y: 0.356901, z: -0, w: 0.93414223} + m_LocalPosition: {x: -0.58, y: -31.866, z: 18.14} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1606416313} + - {fileID: 309982837} + - {fileID: 1646202037} + - {fileID: 534588708} + - {fileID: 1144012095} + - {fileID: 495747211} + m_Father: {fileID: 599052392} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 41.82, z: 0} +--- !u!1 &1950116287 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1950116288} + - component: {fileID: 1950116290} + - component: {fileID: 1950116289} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1950116288 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1950116287} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2122337455} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 9.6173, y: -13} + m_SizeDelta: {x: 462.83, y: 41.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1950116289 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1950116287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Scale +--- !u!222 &1950116290 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1950116287} +--- !u!1 &2023423009 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2023423015} + - component: {fileID: 2023423014} + - component: {fileID: 2023423013} + - component: {fileID: 2023423012} + - component: {fileID: 2023423011} + - component: {fileID: 2023423010} + - component: {fileID: 2023423017} + - component: {fileID: 2023423016} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &2023423010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!54 &2023423011 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!23 &2023423012 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &2023423013 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &2023423014 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2023423015 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.42, y: -32.948902, z: 14.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2023423016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 663365fdc7222f84fa76f2a79859e1f5, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _useDefaultCameraShaker: 1 + _cameraShaker: {fileID: 0} + _encapsulateChildren: 0 + _monitorEncapsulation: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _randomizeDirections: 1 +--- !u!114 &2023423017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2023423009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9d4107aad3b3544da23b3f86c3f2d0f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 1 + _rotationalMultiplier: 1 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!1 &2029650348 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2029650349} + - component: {fileID: 2029650351} + - component: {fileID: 2029650350} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2029650349 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2029650348} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1936726741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2029650350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2029650348} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 3D +--- !u!222 &2029650351 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2029650348} +--- !u!1 &2049199877 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2049199878} + - component: {fileID: 2049199880} + - component: {fileID: 2049199879} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2049199878 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2049199877} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 682942136} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2049199879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2049199877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Change Camera +--- !u!222 &2049199880 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2049199877} +--- !u!1 &2052957735 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2052957736} + - component: {fileID: 2052957737} + - component: {fileID: 2052957740} + - component: {fileID: 2052957739} + - component: {fileID: 2052957738} + - component: {fileID: 2052957741} + m_Layer: 0 + m_Name: Crate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2052957736 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.95, y: -1.25, z: -2.13} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 276671440} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2052957737 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 12 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!114 &2052957738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2052957739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakerType: 0 + _positionalMultiplier: 4 + _rotationalMultiplier: 0.7 + _requireInView: 1 + _includeChildren: 0 + _ignoreSelf: 0 + _includeInactive: 0 + _localizeShake: 0 + _randomizeDirections: 1 +--- !u!61 &2052957740 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!50 &2052957741 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2052957735} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 7.5 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!1 &2078751227 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2078751228} + - component: {fileID: 2078751229} + m_Layer: 0 + m_Name: Wall (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2078751228 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2078751227} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -22.54, y: -6.18, z: 14.35} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1234856483} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!65 &2078751229 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2078751227} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 40, y: 10, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2080184611 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2080184612} + - component: {fileID: 2080184613} + m_Layer: 0 + m_Name: Sky + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2080184612 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2080184611} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -5.33, y: -31.55, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 1887022378} + m_Father: {fileID: 568020934} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2080184613 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2080184611} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 1ebe3e82ebb71d747b19e6cff408ccd6, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 7, y: 3.79} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!1 &2089370532 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2089370533} + - component: {fileID: 2089370534} + m_Layer: 0 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2089370533 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2089370532} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2122838072} + m_Father: {fileID: 2111246645} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2089370534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2089370532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + toggleTransition: 1 + graphic: {fileID: 2122838073} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1482493867} + m_MethodName: OnClick_ShakeCanvas + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 2089370534} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Toggle, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &2111246644 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2111246645} + m_Layer: 0 + m_Name: ShakeCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2111246645 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2111246644} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1007700170} + - {fileID: 1069090208} + - {fileID: 2089370533} + m_Father: {fileID: 1482493863} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -148.22021, y: 272} + m_SizeDelta: {x: 273.76, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2122337454 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2122337455} + - component: {fileID: 2122337456} + m_Layer: 0 + m_Name: Scale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2122337455 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2122337454} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1164072977} + - {fileID: 1950116288} + - {fileID: 1172435642} + - {fileID: 730196187} + m_Father: {fileID: 1482493863} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -245.7998, y: 173.09} + m_SizeDelta: {x: 475.6, y: 63.19} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2122337456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2122337454} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 467603463} + m_FillRect: {fileID: 1696226044} + m_HandleRect: {fileID: 467603462} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 2 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &2122838071 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2122838072} + - component: {fileID: 2122838074} + - component: {fileID: 2122838073} + m_Layer: 0 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2122838072 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2122838071} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 652956619} + m_Father: {fileID: 2089370533} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 51.69, y: -0.56} + m_SizeDelta: {x: 86.46, y: 70.68} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2122838073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2122838071} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2122838074 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2122838071} +--- !u!1 &2134808387 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2134808388} + - component: {fileID: 2134808389} + m_Layer: 0 + m_Name: Wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2134808388 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2134808387} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.38, y: -6.18, z: 34.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1234856483} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2134808389 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2134808387} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 40, y: 10, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &454519727144207886 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1543760693654283098} + - component: {fileID: 1157166917956714146} + m_Layer: 0 + m_Name: GameObject (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &867294834682390100 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6669295761026968164} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 5, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &1157166917956714146 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 454519727144207886} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!4 &1543760693654283098 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 454519727144207886} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.77, y: 2.05, z: 2.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746547386120130223} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1584767530643276761 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6669295761026968164} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.29, y: 2.59, z: -2.62} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746547386120130223} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1746547386120130223 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 6232428967364402820} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7433199686252774918} + - {fileID: 2306634504201556465} + - {fileID: 1584767530643276761} + - {fileID: 7386749650532468380} + - {fileID: 1543760693654283098} + m_Father: {fileID: 5780706965776490689} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1946268289620709384 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 4219082636322561904} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 9, y: 0.25, z: 9} + m_Center: {x: 0, y: 0, z: 0} +--- !u!4 &2306634504201556465 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 3184980304137292853} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.1, y: 2.59, z: -2.62} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746547386120130223} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3184980304137292853 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2306634504201556465} + - component: {fileID: 7815160714749206057} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &4219082636322561904 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 7433199686252774918} + - component: {fileID: 1946268289620709384} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &4970748440826648071 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 8026404565450401062} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &5780706965773590757 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530661} + m_Mesh: {fileID: 4300000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} +--- !u!33 &5780706965773590759 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530663} + m_Mesh: {fileID: 4300002, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} +--- !u!23 &5780706965774590501 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530661} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &5780706965774590503 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530663} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100002, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!4 &5780706965776490689 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530657} + m_LocalRotation: {x: -0, y: 0.9997524, z: -0, w: 0.022251181} + m_LocalPosition: {x: -6.06, y: -33.74, z: 16.44} + m_LocalScale: {x: 0.29999995, y: 0.65, z: 0.49999988} + m_Children: + - {fileID: 5780706965776490693} + - {fileID: 5780706965776490695} + - {fileID: 1746547386120130223} + m_Father: {fileID: 599052392} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 177.45, z: 0} +--- !u!4 &5780706965776490693 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530661} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.000000029802322, y: -0.6471027, z: 0.000000014901161} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5780706965776490689} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &5780706965776490695 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 5780706965776530663} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.000000029802322, y: -0.6471027, z: 0.000000014901161} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5780706965776490689} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5780706965776530657 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 5780706965776490689} + m_Layer: 0 + m_Name: Tent_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &5780706965776530661 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 5780706965776490693} + - component: {fileID: 5780706965773590757} + - component: {fileID: 5780706965774590501} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &5780706965776530663 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 5780706965776490695} + - component: {fileID: 5780706965773590759} + - component: {fileID: 5780706965774590503} + m_Layer: 0 + m_Name: Cube.001 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &6232428967364402820 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1746547386120130223} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &6669295761026968164 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1584767530643276761} + - component: {fileID: 867294834682390100} + m_Layer: 0 + m_Name: GameObject (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &7065430076145476618 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 7065430076145580074} + - component: {fileID: 7065430076148480010} + - component: {fileID: 7065430076147481290} + m_Layer: 0 + m_Name: Plant_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &7065430076145580074 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 7065430076145476618} + m_LocalRotation: {x: -0, y: -0.19217944, z: -0, w: 0.98135984} + m_LocalPosition: {x: -6.93, y: -33.78, z: 13.39} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: + - {fileID: 1003196926} + m_Father: {fileID: 599052392} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: -22.16, z: 0} +--- !u!23 &7065430076147481290 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 7065430076145476618} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} + - {fileID: 2100002, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &7065430076148480010 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 7065430076145476618} + m_Mesh: {fileID: 4300000, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} +--- !u!4 &7386749650532468380 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 8026404565450401062} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.29, y: 2.05, z: 2.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746547386120130223} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &7433199686252774918 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 4219082636322561904} + m_LocalRotation: {x: 0.14375174, y: 0, z: 0, w: 0.98961383} + m_LocalPosition: {x: -0, y: 4.46, z: -0.1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1746547386120130223} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 16.53, y: 0, z: 0} +--- !u!65 &7815160714749206057 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 3184980304137292853} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 5, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8026404565450401062 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 7386749650532468380} + - component: {fileID: 4970748440826648071} + m_Layer: 0 + m_Name: GameObject (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity.meta new file mode 100644 index 00000000..eaccea67 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: a1ace412602edd84eb6e7fabd521448e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Demo.unity + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials.meta new file mode 100644 index 00000000..69e2d51c --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b82d86293141a04a8586c7de0025fd7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat new file mode 100644 index 00000000..59313b99 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Box_00 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: c4a719c5202f2fe4386a44ae66246320, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat.meta new file mode 100644 index 00000000..562412d7 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 03b849fd35325f0408075f45ca07b697 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Box_00.mat + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat new file mode 100644 index 00000000..f20211ee --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Green + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.25591847, g: 0.6698113, b: 0.43853125, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat.meta new file mode 100644 index 00000000..6a9c93f4 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: d8c78a8f28328f642add238f387a323c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Green.mat + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat new file mode 100644 index 00000000..c8fc0f2b --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Rock_00 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 071a0df25fa7f034289d32d2b3c8f90b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.5471698, g: 0.5471698, b: 0.5471698, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat.meta new file mode 100644 index 00000000..785591c5 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: c2dd870f2e2d4af44a65cc7f311c3914 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Materials/Rock_00.mat + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models.meta new file mode 100644 index 00000000..21d28a5e --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 857b5c5d76cc36c4a91447df4929ea76 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx new file mode 100644 index 0000000000000000000000000000000000000000..e7d5532e9fd647ac0bc255dbeb39af305b3cc689 GIT binary patch literal 23244 zcmc&+c|6qJ_aAMv*-D%BY13*+JxEAI$`&a~G{#^uX2#6exAslQQ%{nuQcq8-N~N-< zENvteo-mTF$dY6WzjJ3k!zhDq{qei6KFw$Dz2|+;J@?#m&Rxa^ytf0Mj+fJ4VYX)aJ5o6oV_5fFNs6>IwIbINMGy4BvKe8D#Zp01>hMAk7!@4ufii|;(SV~wd4rnBKF$PxnxF3M;o{!PreCCYfk~h@*J21ufj|cM=IqcEN3)f^j*7urDd_N3As80?Z--V$@72MOsSyF>suMIB^!L6_?4N~CZaL4bW}9goUSGNV&z zL^_j1WT+}pfEOgf3;WPwD2^56rFoDY(Oba52~Xs z7{LQ=&w>vwg`WT!4Zcyu3qXRcs9vd4A~S)0eJ>|42Eoi zhuJ$g?sOj9AN0Kq17F7hm*fME838`{NUaCV8gq~Y5{5Ac6-|;pmO+P!o50f885nP3 z%aWVXFG~x=u#&PO{8Ls}RgzOuTFL&WproV}g+XIuEXE71Pa+eC5Cc*x9&O13Bte4vv24M!{R)v@uHLa)DQ5Df%gg zZP)wfc6F)Xj)ra*+Q23L+-^VRupmBGgxA-wa12A4@w|4X}`cwR>L=7 z1ZjF7BmXr%%fC)h#t`q?@ngwf=8p{`PibVP#r=D2X_Jlab^$}(;%)Pc@QsPaPv5Dh$rN2jHwPp z3uNty6nEEtPh*IDLN!LB!XZIAibyPIcnXBWbSAqm8`xP0f&BuXY*&vyaq~eGs0+*B zfi57y^aD_7eCcl#)~2IrNXF=S23yyi!KAwC(?JC0;4p_DY_-(@#3$WDUBc3MZaBn9 zfL4)RK%9@&g>Zw(HWOE%G77R#{4K<-Y&1rr30YViyD#h@xBqPy5BvZ_wG0Z7#OA|; z$;ARfege^y6NMrTruGM<>|tR54dMtJj4AM{!yZ^23dt3QgWxiR2ZYK4Qw*S?KEiy) z37J!=OcT%pqk(k>`&Po!r3vOlMMPJ94wXw47e89DO67f9vE;mj>DUV(-A0r z)YkjybvN z2fB=Gy&0Y4idOoYVSQvzB9oZjY|CR$rDDq#sDoqAwJjL&A`UScGhGNl8FCiRcn7K{ zgCAWOMz@4R2c5#16A45xf5TBi&5@*Sb2(astP`&mp`IdBN^SxUxJu4rJWMdUAyo*? zK^>^bO#@Vj4iP9u=`@`7q(Ei4>P9GZh*JpPp)?1#5 zHjra0etlgI0Sb~6UrK9!l$7BpxALR>cW6qy7hi5GhNI-mtrX1AA^M5;;>+zOjFQLr zaVL~19k%A!y&PnQpTg+=1nI&IM=ND69fWKIqCS;wL~ba{0 zVU2)DuoxeO$7Xb5pL|gi@e6L(7DMH+MP^h6^LJsx0Tu~=F+4xm`k@Wc=bwAY<>fc5 zkS=V^{UEzO)L%D2K7fikxscOIWXJnZNff>_`sR>ie5Z5mkYs%4vMkI(eoPKwb~X=5 z#+S+9A<6hM`3NIhz>y@+R3p{V$BxDNIe(P(dk2TT#TQ|@YuMBs@Sel_?!kHMR8;8E0tE#^oBt~K~o>|PAp zn1c<0eLps)2P1*zQK&u@(}hh0q$8NCMlmxezaAVhn&T->#1VPegF|DC$hkfn8e>F$ zRYd0JzTmz7x4u{mjWMFWgb$4|qP~=280!5)j*SbPvJojxOy>~|%{*C-Nch8ys7K^s zVMf%cgh6091N1+2s&iPF5p_yO?q}HyXE|x}y&u$j@S~26e}XN_Ej;a<`k`ur zVJyQ3GRml73umh5V9O@~C~Lv0t8uD>AHbOqonT$-L4*xvIPz!0whWxzyVGb?*cC=_ zgY4<3&*sPpLxF_`4%^SxVZsr%J-XWfHxIn{pSYkSgq;}591bsNpHQDpB>HeRv43b5 z3UQG?6BwE5!EV`Ld?JE2AV3}qb17&K$%sIf<8@Yp~-*f z;8Dzqu=_mKPZ>~Qc+|5Psy+u5#cv3e>!W`B{uAb49_l?{A`i8UgNdRvo^87yz7B%8 zd@hH6Er%Y~UOe=2Sa^wty<>|ZirBd5KlY{|dKp2=hgA<62jo zfjd+O^^j+m?lDG+qLiOEdeNxEMz4iC-4RyPX3kWKQz8&>(}3MN*?AmrWhli48f{&| z<`sLFkk8o-Vuy{p2_u*1kRx#$!@&>92=9%p{|C|Z^FV}@YYm48^?$7^iNSzr%Gqp2 z@clTM#Rm-pSjV44Gnk3P{R3X=e=()9^H5Pfg22NMBG>aIU1|A@PK|G%gr`0 zG(3bE*s8^OPF`hP(AbBuj$-po%{TTz8YusIb8SXZ~A(5(ZSVVIQ!STpt zm_uU`*l9q0H0A)HwT2#v0f#^YBD#<@{DBS-u+z_DX9duRHw}0|?r7|Ip-0Z+eT+v7 z4iIeTVB1o>aKFQ;&>{|}*r33!$RG`joL?(|Lo(&DSr%|$?M}wihp<`vjl?O8Jsz9I z#p7X$zaAH0^h-JNLwaoC3&s#Slj%5e#~`k5brHMIIGd zd0wxJy0eMs#dN0=CobVsK|eR=bXt8Ml}km2!f8F=6KfdSaWiCHZ>aS zVNA*z3I z2#WBI866A(j5ZBIl_7WkFk%oLB1VF++zeN@_(V2H4IDVPR}>XEa+}YgL{n@F9Zy4? zS`H>_D8~`_(`@EPa{{B`St$UAp5TuLktk~96A&Oi*TI9S0dLSR1lhl^#jgqCMW|~z zs0gJm-2X+$Pz(|?69}Cf>yH3&uxP&lL)^$=62-rm7IAs~t+P=hn6ijVGY&kO=@>l5 z_iv%^0d%B)3pnU#`od)AhWh+Q`z}VsqlSozL_-k^9}NNIk)$G+lW2lXKo8Hw6~yFb zk^_+{0WmD9fHHV2;WLbGGGza}{6IqsmXHmQie^2Q2H3z5K<1GJdfh^DU^??(R3ns3 zj0%DWr1{8jts|10oS8$Dbz)@l95N&{Gd#3~hI-Iz>5z|81lNq%!ibQJbO>;Th{4ZP zA)=ia5f~lBAR=PlKx5wn8=A@U7%66`*dCoprHz2HY#=3)3U>1V@jukPHyMaAQ5^t4 z?4mZ!$arsvMBoNB!Wq&nz~sQ_c{Cbra+teQAQExnr=5E-sy{fbqTzr&B)-a=gjI)# z2Qi71j(v>;#j`_=Mav*`u6QS+1<}nNT?XUFo+{`p5(?%or=a$D=`h)jhWtUV>Owxw z6T{#U?Ei2T5Qn>o(eo$+x~Dz@Wk9X}uc^+epF)sh2N;LI2BI#asV2m|cV?7(T@aiP zD785Jr|WJ{gd6?JI00@sTcqfM*>)6MVrjs<=Vr1$1E3byyohiyxIb6&gDOt22Zt)W zhB!tD3Ya9AfDSQ`g>thY*Gs_tZ)M6fWzqd@v&{BMh);Gp^!S^Y^xC-#*6be>UUWcm zwdwd0+>xB6hjhsk-Yw;*t`#hkxrRBL7`5)40JFUPwM#{Zi9VRW|iHf!^ zl*GjF(}k?OGM58!cCmh|@>sp!O{F_O)o~d`#|M zl9b!0Y9F3`|X)9cb`wJZaC5;_s>ZTsFga~s&cRJY(u71@3eC%osDj9 zIt1ipSkq<7W|j8tni85z3@a;}(s|s^QubqckJd|SQ**RoU~Z}3zuIlHV&};GQ7I?W zsZ?$kU1yx~h}JN%q-%_5&d8n3G$cvOK{u;6k8-gU-X{k?LDlI-{dwLyqHz@I6 z#j=WM?$X>7S2%6f>&gCSR%M?m$Zn+-9-kiNlTlS*f3t8(h)keb$GFDcw2OI74Id*t zalKd0%6`@8A!r|pyC~~e=KB4GV0V~y>s*0Z8QLC6)BYi}1MzG~7j!NgjloL0jlD(a%6r}G&FZNb5Ne)yUseA^MdkHK( zG1mFy#;FGaqf1MblahQr5)%k3lNc6>_g@r|b#994ZB!E5Hb!FOL;ahpl^v(g-m_ah zRxnl8wyg1fTNEQNh1K0-e%8!cZRY`n^A|53d>>&pjyXQ$v9!x>lZ@P%F1fxlCazeU z+q*YOJw5Nc14k}X-Gi&T3XG~n`vvj-tUU`q<-7k9ebno`JJ@T8{H8uxnlQb#Z14W+g85HOYp?R z=mY-R+xOm7q{+v~$IYr;5;aBjZ4~u}(}yzYt_hx5SK?0BPKp|x7rb(IjlXtG3ZYuk z#l-Hmz@NG5gph~doJ794X!?4J{GE?43V8l;w@JEt^QfF|)`9IT+tLEJqOIR{=EY=B zEm`qjT+)q{d-_zS(6?gcn$p04WUZaMv>s_`RG&^Pe{#>IQde~cE4<~4px2@X+iSg| z9=S8Ry2nJ;`G4`ZPMa#TfBm`bG;2ShSw~_XHG7ejPL2zIU#y`bm9l3;dDiKcaWSFU zV+ir@H?Ham_Ht@V&ukWRo=Xo9kePlof_hb*@N!#GfK5Tq^U#dX#TxgeJ^Wpk>Rken zj(?+{DqEPK+IDQzwr2sK-IS$*ld^W)mJG?*Zs!pw;g%LLp>|L$y431IC@VZC+Ucl}WrwdSasf8NuCu;@fj-wnS@u?nMfEJ9CX9VBDKzulIjsd^A?ew1<7-#dGsY})l&tR-(sg|~%}Y*3 ztf@?nrCb-iH#k^t@3Gdun&(!27r3WgCbD#GbCY<UQf;WGg`VkyR&E46h0~|w9e6NPx1M4VNU1a zCaDrD#?{8|sG#J$Cr!(;!<13xn>I_cZ)e%W9?Y|A>K-?0 z_iE9H`(7S4%cwP)o^kk$q-L$5;_Q#QQ}e&hI}q^I3AgtUQAu}37ENC?dtJrMOe^sj z2D3jzr0e~)ZvOsF^Og61eD3gPi}mVRAD7JCYji7T{z03QH;%5_eB&?6tB#XhtPQlr zl6TCBEXvqCp;%umlk6louijyLQt>0(^~Ko%!e;vF5}W8pKWuV4q7wCC)SK648>Cxp zKCD!|XE-|X-V5mldZ@lk^Qnug;ttm&m(PnQRWEIHey=Ipp5wHY^kJf1N0w*6OA|ru zj!e5AF{#SMYsSY-+&=!IU<&j=dD7gI4=2qF@zPg0Fh)FLwfK|s$DTU;qx3h)$Z1@{ zsYf=|H+L<6Wvw?ZV#)j@Ds0RqUZ?%-bDeQ~TtmyQgUi1hl3(6@#IdaDT5zsIB*@0kVS+AaWKsMm&OQWLOJ;AnayFR_Asa`=MjzGb`*{Ho zzU<*C7{mUN1gd@?%bg1E)36N>^iyTnv_`va?7a`r72F!{0e<5nMut|IGx~l2@gpIM z@%2b_*tqLn!{HpA?h10aWjO4Ba^!Ye*ly>I_01zwbws7-=<3XQSgxfLnEoza$-S8- zW@MsfGJ5}5U9qFfmG7-q71I-)OqEaGv6eQv;Qfv{qeU3%Nj}x3o7+5ObH82LAGyP) z+BomZj zIl_zMkI26y`nBX~eL34=yJv&#l!JMy0)qQP3FV(^{ygS!zI=WBuIT-XU&+Z%A3I&z z+}rWJiQwiG2XAJI-PF=MvF8F?J}m28D09dEj+96{EiUWo^-B+EjdubvS@Fg8c5fS> zKG-_tVBliE(!J(UmMnFd{3rJmQp7K;jEZZ~|9;Rvzb@IwqJ>uMlDgX@rG8s>VI=Ew z!GlKEq?k87!F%RxklZRLo>t{UC^Rim9T&@LkbWR%b?=VMv#)m_B(zamuU(P-+IIdv zJ$X*s5}S_D4F#QU`bO;^d~}qS*nGcR|7`Pv)q+RQ8C=#Dr9~!(RDWg_ME6hv)xLG_ z-lsc#g?US|d0;~3m^$@;FRpNFH_nN@c*MKH_pWBP!5hh*%s9N1WV2l+VQ1cI`Qxc) zTGzFzv_%o8|6}AX-x+zdYscLghAc6S2aPwHc6W8XZL6yFJYimPMrNDD$(q%n^Q1m) z+V#OQHXI+_;~%=eP_8&msd{_oLrt{wzVenw89JBsxAv&! zA9T>HZ4FWr^14M;3z!x2Wn25i=Jd4piJ9lG1Ws$1clVR-zU1hR@B+7Yc~uTS{-V>~oEx$W=PBuiPZcn`8+)M9xSqRMTLQwIry1hKIE;5{?(g-k^;koY_L^ z-Q!{{v%Th2RKZQvfVM*Ul$ZmBHF$CaHCF9=wzI^+n($SmH2jIf+g@L4QOOzoT_IC2P&@T_s%&;% z2En%dMaI0I6J<;MTzc!~lxo)%SKO)1%s6{+mhqQK0r{F2rVFSxZ~J8SHMDO3{wWpT zUR8UQ=uX*w%=D7(B?C_{jR#sYy*5Zk8Gm^4(dy{&Z#OL;TlD(*n0_jdww<0xEeZ3T z)(}y8sUzUyA73sNQWrwBuP*cC-Bg`_!}e=D4Q>m3LcQD@zjv`AjWkPSgJ&k;KM}bj zlE&`4r6s1zX^Ybuwd;C?%EPqwrpnbBwaJdVuBY^ZL6Y4Yt1RLYd+bBlgO}ay&qc%= z+Kt>zKg+(%W_IVK+Dl9M{F~2|p7QpR=bM)Aqh~PGC@}N;(-f0_(eqZJdn)xTvv-$}w@#>p4Bh0IN32 zaz+!`%jKoL5Q;{F>JMN ziD=@&C2N#b3f5nXi8v#tuxrhcgA1qAMsNDQ@Oqxv)Dz3Tnw_;yX-sXF>UmI;8gakH zpS8VOIm_y3*WvWuV5K<55*Pi?_r|3){9ADA%cgqi_CK~WmR@WtP3hlZHiW%DCeg(H2U+-ZwMgP%-e-;WwZmkR67Vk>Z-kKVqGh3!jI9V{zt8US= zBl9f}$tRNLomA}bOv?!Q{z2heu@}=fEvyt*(pm7a{Nd;%DTAnKc2Nf>zi~4Oi9b*^ z*p_mPzJvB6z$r$tS7iF_aBC%WZ8vLDRyp#LI03i`MfBo&+j+q1(ZC(GS zi$UpIVmIw-`NvMIDl21$XN+4nwOz-hMlOA} zF7fULp}bvFYcv0xtkYxdF59%(r`A{4EUNS~DWLxP7~78>%a|`e_c#@rn6qBsr^?S3 z?|8L7sa(dkMg7x>wzgf0TkbBrLnB3IjSiGlD(bLaEjQM`%zQXD&)d!2U z$JSg3-R*wzrf29KmS3%I$CGnCZ;z;bZfV@@{mi8MXuzw2SN{gy`t&mKxpMHAjZHJ^ z=swCX4qk3Jl)YE=T#vP*=$kHw=n9|tyAn^E)<=uiKJ<&US7>RUb4q@R=I!*1Y?0v**R>JI^R~xq)YQFaj8D-*H z=ljyG%HYLl_5a2Q+uoOO3l2Pau3_!VlGt7H4E2h`ZW_W56Kgaz3|p`MEsG0ed|BAE zBBn9Ox2SP@y1{$jth89cugfdmp0T~4$@L2=ZlENy|dnS@pUrs~)1mRGIV_0I3QcymXO=qHxZ z=wz?QOY4s>5o|kjTCZHCL{^klb@qJAYE`QX@t3!p43O+xA71R0w@)+PGVnB^EHmW+ zW8&4VTRQM#7oUlhK>d_w^`|G5ijqMcbLAh1#~f*SO_h1} zucE>Cu>oJ6ZK}+h!4z$~k@RSxh)1_pUAV-bsX~S=+0}8?(n+V8`4tZ{dUJPuu08TS zGR(7SyMBJx`J@x)w4UQX?>@NH%J4x^uf_M^)fo|ql76?d_u{>ilqwB2`<5q9iyE6; z;=YJEHDz2p>t&+KykW-?#vfxK7U{+@l=rA}#oZ|SHRclr34E&poYrCr_<8Goa< z@o~3Kt?EBtC;1-o+8NW#xUx~!zEY`nQGJiOPfn`IXs(qs4gO}Nr_^xUd>d8-4g zvu{7DmG!m#*L!xz1N#O^YTCN?`d-0^oxO!uI^A!_-BUHxF8*i5w*+NbqLteViTsz= zK7wY_^VVi83!l3+P5m_U7K@P_-z!k?xF~!a=8`Q(L(C3t7~M+j+bUWInXpwtnrDhDQUZ( z=O5FuD(Jvu$-DU6r=Qi8G%8cCK07gkp{b#ve_efXi|aJ~lBfj2^VY@Q+6Ioye+;g- z%imX?WBr)tFnr$|omRZMauHN5DQ3iqF* zH9I%6s557U)A9Phy6JvVp^X2ueQw;UOC6l}FdEPg%;~yqHF4fqpT)aHn!T52d zn&OJ*?k4mX&BDS}FWU8ca$ekDF7IfrpLwdt(0bV*3XN>)=A(y=pM5==D;U<| z6BFG2mr<~?G8CRv?@)Pr`(%f1eoM*G;8{C0Wwcp&fe~UgasQOnKivB5ysGB)7q_f* zT{VR>I~%Tf>-(vywB(lmSJd4seeLNJvEwSMDjMuU8l76|r?J9LMNN!5a9?}vb@eF; zE2&kdk4oA|Muum9!7JoRH>*_t7jv@a?UGWgAC{pv!4 zWVDVn>QHxfc$e)A39VT*XIo|$#dXE&Wp+#3-X^KpWhEuq?^x5j&43*6xUxR%eKWZv zDD=r`zo>Wi&u#K7uB(F(Yz!Pc-V*WCY7(PjFEZAc|_v6mQ|8wm7kbKxOqnr^sZDd(#aX%EXS(*^(<(tWsv& zSXW~mX{|i}?%cT94cm$IfApWXBq?+zima$St+KEzzRFs(@ndPTjpieQU}4tv(3<*= z05N5CpJ|@)PK8-CcJ7mhniTuYV3uCkhIqcxf;oueT{k#5ABcrbq030X~1ZG z0wT6afKoUYN0wvwi^5RpOa+<6{t;n1?m;p8MNUfgm9{$c;s?0lZ$SgxYRaU`Y?Og7 zUI2&srwk8vYCrN@(6H-?k*jdXk?j7LOR!+xHgUQG+nU_=xfd*lzM#lQJcfXW`m>CK zhYSiAZv@v9;Tjx9kKGIzkLZWHu&EyMAc5p_DE^XojxHq*>rBdJy84wA0I355oh}B@oeVoJuiF_!%fp)SQU^kcS5m zVN=jwltk{951~59nVSZfmL*Vtgu-LOhqNf5YH0ix@ic1IX9N1Z@sD1wa8P)z zvh@LQnPz`VZSDU$76lUw5y;^VCWH*^+sfdOhDx2uSH{20dF^=9qie5J+x!5mF8W)} Z|6i$n>(QNMt;GTLA18fq4_!F%{{WNw(~JNB literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx.meta new file mode 100644 index 00000000..e71b6a03 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 0b7b3aef80260e449a6926672c9aa717 +ModelImporter: + serializedVersion: 23 + fileIDToRecycleName: + 100000: //RootNode + 100002: Area + 100004: Area.001 + 100006: box + 100008: Camera + 400000: //RootNode + 400002: Area + 400004: Area.001 + 400006: box + 400008: Camera + 2000000: Camera + 2100000: crate + 2300000: //RootNode + 2300002: box + 3300000: //RootNode + 3300002: box + 4300000: box + 10800000: Area + 10800002: Area.001 + externalObjects: {} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + previousCalculatedGlobalScale: 1 + hasPreviousCalculatedGlobalScale: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Box_00.fbx + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx new file mode 100644 index 0000000000000000000000000000000000000000..f7a9b176badf233288a69ebbeee0b64fa58d9de9 GIT binary patch literal 34316 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 Wl4pD6w-!!A=;u#z9e(&tvi}71(gx}P literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx.meta new file mode 100644 index 00000000..ccabb554 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx.meta @@ -0,0 +1,105 @@ +fileFormatVersion: 2 +guid: 4e561f465385cbe4db4c50851a3f0fa7 +ModelImporter: + serializedVersion: 23 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2100000: Material.002 + 2100002: Material.001 + 2300000: //RootNode + 3300000: //RootNode + 4300000: plant + externalObjects: {} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + previousCalculatedGlobalScale: 1 + hasPreviousCalculatedGlobalScale: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_00.fbx + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx new file mode 100644 index 0000000000000000000000000000000000000000..7bc879ed7d15e3d87ecc2f17137e0c3c9ed90496 GIT binary patch literal 55052 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 z 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 Q2fw;^cd#_s1#V{kKY_mk9smFU literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx.meta new file mode 100644 index 00000000..a191f68b --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx.meta @@ -0,0 +1,125 @@ +fileFormatVersion: 2 +guid: de4cf409bd3d2dd448331b14b0994fa2 +ModelImporter: + serializedVersion: 22 + fileIDToRecycleName: + 100000: Armature + 100002: Bone + 100004: Bone.001 + 100006: Bone.001_end + 100008: Bone.002 + 100010: Bone.002_end + 100012: Bone.003 + 100014: Bone.003_end + 100016: Bone.004 + 100018: Bone.004_end + 100020: Bone.005 + 100022: Bone.005_end + 100024: plant + 100026: //RootNode + 400000: Armature + 400002: Bone + 400004: Bone.001 + 400006: Bone.001_end + 400008: Bone.002 + 400010: Bone.002_end + 400012: Bone.003 + 400014: Bone.003_end + 400016: Bone.004 + 400018: Bone.004_end + 400020: Bone.005 + 400022: Bone.005_end + 400024: plant + 400026: //RootNode + 2100000: Material.002 + 2100002: Material.001 + 4300000: plant + 9500000: //RootNode + 13700000: plant + externalObjects: {} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 2 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Plant_Rigged_00.fbx + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Rock_00.fbx b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Rock_00.fbx new file mode 100644 index 0000000000000000000000000000000000000000..5145de6661f5b7d527a249d62379050c81ee1321 GIT binary patch literal 12732 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 literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx.meta new file mode 100644 index 00000000..dfe0f7b0 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx.meta @@ -0,0 +1,112 @@ +fileFormatVersion: 2 +guid: 96bbfaed20474fc41b1b57731310caf4 +ModelImporter: + serializedVersion: 23 + fileIDToRecycleName: + 100000: Cube + 100002: Cube.001 + 100004: //RootNode + 400000: Cube + 400002: Cube.001 + 400004: //RootNode + 2100000: Material.002 + 2100002: Material.001 + 2300000: Cube + 2300002: Cube.001 + 3300000: Cube + 3300002: Cube.001 + 4300000: Cube + 4300002: Cube.001 + externalObjects: {} + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + previousCalculatedGlobalScale: 1 + hasPreviousCalculatedGlobalScale: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + serializedVersion: 2 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Models/Tent_00.fbx + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs.meta new file mode 100644 index 00000000..c224df42 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 925ee75452ecf0a44a3d0d42cadd5715 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D.meta new file mode 100644 index 00000000..a6b420a4 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5ced5e2a08a4d34fbaf4213cf141c66 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab new file mode 100644 index 00000000..c9d302ee --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1559319329555182539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1559319329555182532} + - component: {fileID: 1559319329555182533} + - component: {fileID: 1559319329555182528} + - component: {fileID: 1559319329555182535} + - component: {fileID: 1559319329555182534} + - component: {fileID: 1559319329555182529} + m_Layer: 0 + m_Name: Crate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1559319329555182532 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_LocalRotation: {x: -0, y: -0.356901, z: -0, w: 0.93414223} + m_LocalPosition: {x: -0.47, y: -1.25, z: -3.4} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1559319329555182533 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300004, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.67, y: 0.63} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &1559319329555182528 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.67, y: 0.67} + newSize: {x: 0.67, y: 0.63} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.67, y: 0.63} + m_EdgeRadius: 0 +--- !u!114 &1559319329555182535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58b3fda749163f142b26ea94be1da637, type: 3} + m_Name: + m_EditorClassIdentifier: + _positionMultiplier: 0.75 + _rotationMultiplier: 0.6 + _requireInView: 1 +--- !u!114 &1559319329555182534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!50 &1559319329555182529 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559319329555182539} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab.meta new file mode 100644 index 00000000..336f7f9b --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 8376ac1fa7e8b7348b08738a6bdf4bea +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Crate.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab new file mode 100644 index 00000000..14905018 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab @@ -0,0 +1,188 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7609922555388080146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7609922555388080147} + - component: {fileID: 7609922555388080157} + - component: {fileID: 7609922555388080159} + - component: {fileID: 7609922555388080158} + m_Layer: 0 + m_Name: Rock + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7609922555388080147 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555388080146} + m_LocalRotation: {x: 0, y: 0, z: 0.20816772, w: 0.97809315} + m_LocalPosition: {x: -0.64, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: + - {fileID: 7609922555596769879} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 24.03} +--- !u!212 &7609922555388080157 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555388080146} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 14 + m_Sprite: {fileID: 21300000, guid: ace093f24bbfec5478e3194559d620de, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!50 &7609922555388080159 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555388080146} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 10 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &7609922555388080158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555388080146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!1 &7609922555596769878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7609922555596769879} + - component: {fileID: 7609922555596769872} + m_Layer: 0 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7609922555596769879 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555596769878} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9, y: 0.9, z: 1} + m_Children: [] + m_Father: {fileID: 7609922555388080147} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!60 &7609922555596769872 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7609922555596769878} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.28, y: 1.28} + newSize: {x: 1.28, y: 1.28} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: 0.61, y: 0.22999999} + - {x: 0.58, y: 0.26} + - {x: 0.51, y: 0.35999998} + - {x: 0.45999998, y: 0.44} + - {x: 0.21, y: 0.64} + - {x: -0.35999998, y: 0.64} + - {x: -0.56, y: 0.59999996} + - {x: -0.61, y: 0.53} + - {x: -0.64, y: 0.35} + - {x: -0.64, y: -0.22999999} + - {x: -0.19, y: -0.64} + - {x: 0.51, y: -0.64} + - {x: 0.64, y: -0.59999996} + - {x: 0.64, y: 0.17999999} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab.meta new file mode 100644 index 00000000..a672a356 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 75e00c64f4be39d49899e6f64917a753 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/2D/Rock.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D.meta new file mode 100644 index 00000000..63afb8f2 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 947e54b905fe768488070965b856b4a0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab new file mode 100644 index 00000000..9f600fb7 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8230252366219629135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8230252366219267695} + - component: {fileID: 8230252366220561999} + - component: {fileID: 8230252366221560975} + - component: {fileID: 8230252366219629133} + - component: {fileID: 8230252366219629132} + - component: {fileID: 8230252366219629131} + - component: {fileID: 8230252366219629130} + m_Layer: 0 + m_Name: Box_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8230252366219267695 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8230252366220561999 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_Mesh: {fileID: 4300000, guid: 0b7b3aef80260e449a6926672c9aa717, type: 3} +--- !u!23 &8230252366221560975 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 03b849fd35325f0408075f45ca07b697, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!54 &8230252366219629133 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &8230252366219629132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _positionMultiplier: 1 + _rotationMultiplier: 1 + _requireInView: 1 +--- !u!114 &8230252366219629131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317f9e79939b5214b9f9647aec30130c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!65 &8230252366219629130 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8230252366219629135} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.1836193, y: 2.1836195, z: 2.1798067} + m_Center: {x: 0, y: 1.0918021, z: -0.0000019073484} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab.meta new file mode 100644 index 00000000..57101b02 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: a1b80e217faa7604993ffbb5b8eff177 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Box_00.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab new file mode 100644 index 00000000..ba3996cf --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab @@ -0,0 +1,202 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2103868798883616046 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103868798883616045} + - component: {fileID: 2103868798883616044} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2103868798883616045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103868798883616046} + m_LocalRotation: {x: 0, y: 0, z: -0.113723405, w: 0.99351245} + m_LocalPosition: {x: 0.23, y: 1.32, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2103868800387291025} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -13.06} +--- !u!136 &2103868798883616044 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103868798883616046} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.75 + m_Height: 3 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2103868800033915257 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103868800033915256} + - component: {fileID: 2103868800033915255} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2103868800033915256 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103868800033915257} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.31, y: 2.89, z: -0.78} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2103868800387291025} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2103868800033915255 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103868800033915257} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 5, y: 0.5, z: 5} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2103868800387291026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103868800387291025} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2103868800387291025 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103868800387291026} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2103868798883616045} + - {fileID: 2103868800033915256} + m_Father: {fileID: 9169050384047783493} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &9169050384047809125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9169050384047783493} + - component: {fileID: 9169050384049110629} + - component: {fileID: 9169050384050076837} + m_Layer: 0 + m_Name: Plant_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9169050384047783493 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9169050384047809125} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2103868800387291025} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9169050384049110629 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9169050384047809125} + m_Mesh: {fileID: 4300000, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} +--- !u!23 &9169050384050076837 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9169050384047809125} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} + - {fileID: 2100002, guid: 4e561f465385cbe4db4c50851a3f0fa7, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab.meta new file mode 100644 index 00000000..5f3a763d --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 91286df337ecfe24e822269527e69ba7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_00.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab new file mode 100644 index 00000000..2a75e074 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab @@ -0,0 +1,801 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1895656635507758} + m_IsPrefabParent: 1 +--- !u!1 &1013518845757228 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4626185539506982} + m_Layer: 0 + m_Name: Bone.001_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1100369342134988 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4117940696219736} + m_Layer: 0 + m_Name: Bone.002_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1174525772201796 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4573209112020694} + m_Layer: 0 + m_Name: Bone.004_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1319713429091798 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4337566040806538} + - component: {fileID: 54847200778635264} + m_Layer: 0 + m_Name: HingeTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1341789945422318 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4110875914404350} + - component: {fileID: 54124310887512172} + - component: {fileID: 59879517047240724} + m_Layer: 0 + m_Name: Bone.004 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1458052853556238 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4492305217144936} + m_Layer: 0 + m_Name: Bone + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1524236116513698 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4410869341281168} + m_Layer: 0 + m_Name: Bone.005_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1536308433582276 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4397872704742768} + - component: {fileID: 54739078757934288} + - component: {fileID: 59305948372057196} + m_Layer: 0 + m_Name: Bone.005 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1580316250580798 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4957642066743350} + - component: {fileID: 54099504244426016} + - component: {fileID: 59341562785616752} + m_Layer: 0 + m_Name: Bone.002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1584624691702198 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4255502493259674} + m_Layer: 0 + m_Name: Armature + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1638414858883226 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4947197597797156} + - component: {fileID: 54124062687080982} + - component: {fileID: 59972005539826592} + m_Layer: 0 + m_Name: Bone.003 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1815598762614754 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4713533142050562} + - component: {fileID: 137308085883534716} + - component: {fileID: 65895162045860104} + m_Layer: 0 + m_Name: plant + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1849801863884580 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4116679528967140} + - component: {fileID: 54330613743818828} + - component: {fileID: 59638853285261044} + m_Layer: 0 + m_Name: Bone.001 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1895656635507758 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4252170578404524} + - component: {fileID: 114134362235266950} + m_Layer: 0 + m_Name: Plant_Rigged_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1998688019593524 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4993999476019840} + m_Layer: 0 + m_Name: Bone.003_end + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4110875914404350 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1341789945422318} + m_LocalRotation: {x: 0.75068474, y: 0.02446198, z: 0.23374179, w: 0.6174454} + m_LocalPosition: {x: -0.0032626053, y: 0.028448403, z: 0.0066653374} + m_LocalScale: {x: 1, y: 1.0000001, z: 1.0000001} + m_Children: + - {fileID: 4573209112020694} + m_Father: {fileID: 4492305217144936} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4116679528967140 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1849801863884580} + m_LocalRotation: {x: -0.3695272, y: -0.0066187694, z: -0.56961495, w: 0.7341286} + m_LocalPosition: {x: 0.007823182, y: 0.033429503, z: -0.002244788} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_Children: + - {fileID: 4626185539506982} + m_Father: {fileID: 4492305217144936} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -33.374, y: 29.503002, z: -84.642006} +--- !u!4 &4117940696219736 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1100369342134988} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.018834433, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4957642066743350} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4252170578404524 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1895656635507758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4255502493259674} + - {fileID: 4713533142050562} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4255502493259674 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1584624691702198} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: + - {fileID: 4492305217144936} + m_Father: {fileID: 4252170578404524} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4337566040806538 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1319713429091798} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.0012, y: 0.0248, z: 0.0051} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4492305217144936} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4397872704742768 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1536308433582276} + m_LocalRotation: {x: 0.34409988, y: 0.030886797, z: -0.58746344, w: 0.7317978} + m_LocalPosition: {x: 0.0060895495, y: 0.02603006, z: 0.0024284997} + m_LocalScale: {x: 1, y: 1, z: 1.0000001} + m_Children: + - {fileID: 4410869341281168} + m_Father: {fileID: 4492305217144936} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4410869341281168 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1524236116513698} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.018505335, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4397872704742768} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4492305217144936 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1458052853556238} + m_LocalRotation: {x: 0.6266867, y: 0.08071654, z: -0.07245433, w: 0.77168584} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1.0000001, y: 1, z: 1} + m_Children: + - {fileID: 4337566040806538} + - {fileID: 4116679528967140} + - {fileID: 4957642066743350} + - {fileID: 4947197597797156} + - {fileID: 4110875914404350} + - {fileID: 4397872704742768} + m_Father: {fileID: 4255502493259674} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4573209112020694 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1174525772201796} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017064013, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4110875914404350} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4626185539506982 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1013518845757228} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017967971, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4116679528967140} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4713533142050562 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1815598762614754} + m_LocalRotation: {x: 0.000000081460335, y: 0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4252170578404524} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4947197597797156 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1638414858883226} + m_LocalRotation: {x: -0.050327364, y: 0.079698145, z: 0.8282723, w: 0.55234087} + m_LocalPosition: {x: -0.010082979, y: 0.024798201, z: -0.0014264102} + m_LocalScale: {x: 1.0000002, y: 1.0000001, z: 1} + m_Children: + - {fileID: 4993999476019840} + m_Father: {fileID: 4492305217144936} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4957642066743350 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1580316250580798} + m_LocalRotation: {x: -0.52324283, y: 0.016005367, z: 0.3433307, w: 0.7797979} + m_LocalPosition: {x: -0.0068912604, y: 0.030272566, z: -0.0070868894} + m_LocalScale: {x: 0.99999994, y: 1, z: 1} + m_Children: + - {fileID: 4117940696219736} + m_Father: {fileID: 4492305217144936} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4993999476019840 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1998688019593524} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.017427837, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4947197597797156} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &54099504244426016 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1580316250580798} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &54124062687080982 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1638414858883226} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &54124310887512172 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1341789945422318} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &54330613743818828 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1849801863884580} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &54739078757934288 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1536308433582276} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 1 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!54 &54847200778635264 +Rigidbody: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1319713429091798} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!59 &59305948372057196 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1536308433582276} + m_ConnectedBody: {fileID: 54847200778635264} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 0, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.007289551, y: 0.0012300517, z: -0.002671502} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!59 &59341562785616752 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1580316250580798} + m_ConnectedBody: {fileID: 54847200778635264} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 1, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.005691261, y: 0.005472565, z: -0.012186881} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!59 &59638853285261044 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1849801863884580} + m_ConnectedBody: {fileID: 54847200778635264} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.009023183, y: 0.008629495, z: -0.0073447875} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!59 &59879517047240724 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1341789945422318} + m_ConnectedBody: {fileID: 54847200778635264} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 1, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.002062604, y: 0.0036483966, z: 0.0015653358} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!59 &59972005539826592 +HingeJoint: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1638414858883226} + m_ConnectedBody: {fileID: 54847200778635264} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 1, z: 0} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: -0.008882978, y: -0.0000018049031, z: -0.006526412} + m_UseSpring: 1 + m_Spring: + spring: 15 + damper: 1 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 1 + m_Limits: + min: 0 + max: 37 + bounciness: 1 + bounceMinVelocity: 0.1 + contactDistance: 1 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!65 &65895162045860104 +BoxCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1815598762614754} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2, y: 3, z: 2} + m_Center: {x: 0, y: 1.5, z: 0} +--- !u!114 &114134362235266950 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1895656635507758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5901f943dff13b94693d37f9edb0beb8, type: 3} + m_Name: + m_EditorClassIdentifier: + _positionMultiplier: 1 + _rotationMultiplier: 1 + _requireInView: 0 + _includeChildren: 1 +--- !u!137 &137308085883534716 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1815598762614754} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + - {fileID: 2100002, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300000, guid: de4cf409bd3d2dd448331b14b0994fa2, type: 3} + m_Bones: + - {fileID: 4492305217144936} + - {fileID: 4116679528967140} + - {fileID: 4957642066743350} + - {fileID: 4947197597797156} + - {fileID: 4110875914404350} + - {fileID: 4397872704742768} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4492305217144936} + m_AABB: + m_Center: {x: -0.00009130128, y: 0.023700738, z: -0.000492312} + m_Extent: {x: 0.030637199, y: 0.026565446, z: 0.031100761} + m_DirtyAABB: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab.meta new file mode 100644 index 00000000..40f90e2d --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: c7c88767f3ac5c84a988ebb9e3ec3481 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Plant_Rigged_00.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab new file mode 100644 index 00000000..aeee91b3 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &785427536581347301 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785427536581123013} + - component: {fileID: 785427536581347306} + - component: {fileID: 785427536578223077} + - component: {fileID: 785427536579352869} + - component: {fileID: 785427536581347307} + - component: {fileID: 785427536581347300} + - component: {fileID: 785427536581347305} + m_Layer: 0 + m_Name: Rock00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &785427536581123013 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &785427536581347306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} +--- !u!33 &785427536578223077 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!23 &785427536579352869 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c2dd870f2e2d4af44a65cc7f311c3914, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &785427536581347307 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 1 + m_CookingOptions: 14 + m_Mesh: {fileID: 4300002, guid: c2075e0f9ff03bc4ba16756e24147cd0, type: 3} +--- !u!54 &785427536581347300 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &785427536581347305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785427536581347301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f42fbf4b895a7e4bb2115de600da21f, type: 3} + m_Name: + m_EditorClassIdentifier: + _shakeData: {fileID: 11400000, guid: fd1250282c8f2e841ac602704e5efc0c, type: 2} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab.meta new file mode 100644 index 00000000..fc81236d --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: a652f4be15791ad48bf092047a354c37 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Rock00.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab new file mode 100644 index 00000000..e9c7c991 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab @@ -0,0 +1,444 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &90429714602921593 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6693602138073732879} + - component: {fileID: 2364104652506087681} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6693602138073732879 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 90429714602921593} + m_LocalRotation: {x: 0.14375174, y: 0, z: 0, w: 0.98961383} + m_LocalPosition: {x: -0, y: 4.46, z: -0.1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2589727623187373990} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 16.53, y: 0, z: 0} +--- !u!65 &2364104652506087681 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 90429714602921593} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 9, y: 0.25, z: 9} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1729143264741842236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2003745357155893496} + - component: {fileID: 6321210365350547232} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2003745357155893496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1729143264741842236} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.1, y: 2.59, z: -2.62} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2589727623187373990} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &6321210365350547232 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1729143264741842236} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 5, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &4432302199323547399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3359964866465182291} + - component: {fileID: 3153471070702333867} + m_Layer: 0 + m_Name: GameObject (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3359964866465182291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4432302199323547399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.77, y: 2.05, z: 2.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2589727623187373990} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &3153471070702333867 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4432302199323547399} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &6102360419424597039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6723722231160035221} + - component: {fileID: 9167025689193793294} + m_Layer: 0 + m_Name: GameObject (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6723722231160035221 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6102360419424597039} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.29, y: 2.05, z: 2.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2589727623187373990} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &9167025689193793294 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6102360419424597039} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 4, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &7440629646117157741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3328808532678709968} + - component: {fileID: 4018675536972494685} + m_Layer: 0 + m_Name: GameObject (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3328808532678709968 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7440629646117157741} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.29, y: 2.59, z: -2.62} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2589727623187373990} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &4018675536972494685 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7440629646117157741} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 5, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &7779201236161932776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7779201236161638856} + m_Layer: 0 + m_Name: Tent_00 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7779201236161638856 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932776} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7779201236161638860} + - {fileID: 7779201236161638862} + - {fileID: 2589727623187373990} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7779201236161932780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7779201236161638860} + - component: {fileID: 7779201236158771692} + - component: {fileID: 7779201236159738668} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7779201236161638860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932780} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.000000029802322, y: -0.6471027, z: 0.000000014901161} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7779201236161638856} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7779201236158771692 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932780} + m_Mesh: {fileID: 4300000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} +--- !u!23 &7779201236159738668 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932780} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &7779201236161932782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7779201236161638862} + - component: {fileID: 7779201236158771694} + - component: {fileID: 7779201236159738670} + m_Layer: 0 + m_Name: Cube.001 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7779201236161638862 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932782} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.000000029802322, y: -0.6471027, z: 0.000000014901161} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7779201236161638856} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7779201236158771694 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932782} + m_Mesh: {fileID: 4300002, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} +--- !u!23 &7779201236159738670 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7779201236161932782} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100002, guid: 96bbfaed20474fc41b1b57731310caf4, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &7904517780300779405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2589727623187373990} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2589727623187373990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7904517780300779405} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6693602138073732879} + - {fileID: 2003745357155893496} + - {fileID: 3328808532678709968} + - {fileID: 6723722231160035221} + - {fileID: 3359964866465182291} + m_Father: {fileID: 7779201236161638856} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab.meta new file mode 100644 index 00000000..0561aa88 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 09ab028ffbee66c43878c74d018aa080 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Prefabs/3D/Tent_00.prefab + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData.meta new file mode 100644 index 00000000..64c5af57 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cf6784d695536747b2444db3a442488 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset new file mode 100644 index 00000000..3631eaeb --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: Earthquake + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCanvases: 1 + _shakeRigidbodies: 1 + _unlimitedDuration: 1 + _totalDuration: 1 + _fadeInDuration: 1 + _fadeOutDuration: 1 + _magnitude: 1 + _magnitudeNoise: 0.35 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughness: 14 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 0.1, y: 0.1, z: 0} + _rotationalInfluence: {x: 0.35, y: 0.15, z: 0.35} + _randomSeed: 1 + _seed: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset.meta new file mode 100644 index 00000000..4847677c --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 3629d1d6b48ac3a47ba9e9bd7501a8c8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/Earthquake.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset new file mode 100644 index 00000000..3c5b42cc --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset @@ -0,0 +1,67 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: OffRoad + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCameras: 1 + _shakeCanvases: 1 + _shakeObjects: 1 + _iterationPercent: 1 + _unlimitedDuration: 1 + _totalDuration: 1 + _fadeInDuration: 0.5 + _fadeOutDuration: 0.5 + _magnitude: 2 + _magnitudeNoise: 0 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughness: 2.5 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 0.025, y: 0.4, z: 0} + _positionalInverts: 0 + _rotationalInfluence: {x: 0.3, y: 0, z: 0.3} + _rotationalInverts: 0 + _randomSeed: 1 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset.meta new file mode 100644 index 00000000..27c46028 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: e832a8ee5e2677040b890c07820306d7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/OffRoad.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset new file mode 100644 index 00000000..c8996429 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: RockImpact + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCameras: 1 + _shakeCanvases: 1 + _shakeObjects: 1 + _unlimitedDuration: 0 + _totalDuration: 0.65 + _fadeInDuration: 0 + _fadeOutDuration: 0 + _magnitude: 2 + _magnitudeNoise: 0 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: -0.0118255615 + value: 0.68992233 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 0.12158468 + value: 0.50882876 + inSlope: 0.3773096 + outSlope: 0.3773096 + tangentMode: 0 + - serializedVersion: 2 + time: 0.24658784 + value: 0.80328476 + inSlope: -0.015097341 + outSlope: -0.015097341 + tangentMode: 0 + - serializedVersion: 2 + time: 0.3582877 + value: 0.50703704 + inSlope: -2.650396 + outSlope: -2.650396 + tangentMode: 0 + - serializedVersion: 2 + time: 0.99487305 + value: 0.0028076172 + inSlope: 0.0633389 + outSlope: 0.0633389 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughness: 10 + _roughnessNoise: 0 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 0.15, y: 0.35, z: 0.15} + _positionalInverts: 0 + _rotationalInfluence: {x: 0, y: 0, z: 0.5} + _rotationalInverts: 0 + _randomSeed: 1 + _seed: 1 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset.meta new file mode 100644 index 00000000..7c0260b8 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: fd1250282c8f2e841ac602704e5efc0c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/ShakeData/RockImpact.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures.meta new file mode 100644 index 00000000..f658e6e5 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 492bb6be5e80f2442a42b3c2758e138f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D.meta new file mode 100644 index 00000000..8c7f81a7 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aee481cf3664cc84baac07b01aa446bd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Grass.png b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Grass.png new file mode 100644 index 0000000000000000000000000000000000000000..29e63d3e6b330f58ada596d05adb77089f865b17 GIT binary patch literal 1885 zcmcIlJ#6Ge6gF2N?xec{iH0k%95}(j_;3BQV`Xz}yy12c&V^*91S-bk@vfD%$JkDG zH`N_NNU70DTtfu{8VW>*5PxZquAxAbNECD@l!j9}o_D=_0VN?6tmO50=FRuM_ue;e z_SaT#UcU77B|#7_ciOFWc)R8E#0B_of2uqSuZwB>ja(3}9F)&vcVE16RS+KEkGfmM zmiL-Nc`TEF`%E6iDOd}_;*C*C=r$`vpY@`oA^q{yH+%id9kt!UMjvP0_WXv%9M4M^PP;cm0gw;3o~bFpBFsu^HaFZ zm;c5vpmT@mPBxgNC!h)&uo$p&u+=8~Qpe30DR|c9d@w82+RUTqx@BRo`21#+1bmpk zP?D|LcV@;S?sL1mIfq|E^Cq)P$%SB zOh95$OnOX7lU^x!paJ2wqa3O`u8zIoUm%`uP;{KT@yKO8X?~G3c#|R0gAzU1(Yq z<)8I>B#fE3njrhKnt7FmWzw4`Wa(rr*L7RRG&GS>uY;C#1HKVg2XpUyTzlP-tz+W|i2_X|rP@CKoeX z1^@seoPq!{62igE?G>7EAjfK(-~fQ8`S%y}T$qL(07ypd4UOH6b#>&B7-vz04aOQJ z>g|jrNCSWZ+#8EPI-=aUtx>l2E{Z(sHT68)_BM(<_a${9x>z-ooxQe?8|tplZ9}Aw zBU09e2d>1e;4Mc0a7MW!xV@d7TyS#UiadYd$`Q_g-xlNH{zJswQISXGcZ1xt4*2viIP5rIm|NkZgcGTeWCcnGbz*`VbN z)HVNVi*TjLW9ROUl@k;5^70b(f{9|>Y{j6mva(_jaWQdm5rTvW?xBl2!dt`z$NM*e zItqt$v&XvIV_dj@BOW?`V}le!IiZ{h*f@eL^bh^8a%yfUggeH~5QB00yQB2~ZjoD@Ajd6m z-`>Rr=km5blV7 zPZ(okkAC>?i0bOf-EhIVBV3TE8|sQY1f@jn?QP^_P*T!R6vA2rB5PwKA_bAK5s|S* zqeNt(Fj-j}BvJ}0j{HL}!t?4Fq{nYh{C@sV+S*`{1dM-pQ%)RBfP)}qL}XABC=n=3 zLRJI;k${O0x+Spo_QC5e(1NAqz1N4shmCybje#)jZs*gxODp{AzqhC$mq5q`iKXsL4F z&`^_t%1TLzh>JpbxNVSfXpEaPfH{<>}dpSbzoGw4rPFFO;XS?f*XgN4z0i{3BwaTnJ8dBg7*s15|No@mQ(9pdBIl7?x!bU9;V-OJs%pqDpkYOl1hOLm zTT$adXsP2>Ts^IeMnuc zJL?(Wnk>R|ixX%hln(OYaJmZK^9*jC{P#o~*%|dA2ve6q)dID$X;b%3Af5}1JeiPp zCBYPRkOOoPD%e->bTT2nax_x?Rw&n5e}UWgKJ6pc??ElclisM{hGT4~KDE#lpxbx1 zh>FI=m*k1X{5V2?t?O8g#je~jNp?Wfw$9%332e4uN(@y$UhSV1*NHRVseGhQtW2Lx zmYGDS5sKyye{l8F%C6oVLeG@;N)y+4%QcF|<{V8=qn^ED_(Sor%cmD8;5~y}4`&;? z3v_gf0KaoRzZcR+?sO0K+BmGF+0xk1i6e{GB|u#w(h~FWt}|T2TyI}G}` z$~>~-V){i%M%8j7GZ~fXGkGpBfn#om?x{wXNEs`iq!+ z@9z5A43~#z)Mk$AYD~TUgNlebU7_sbdp1u}ZYEm*2E;G+0sUkP{IXv9rzfdnlNb90 zi0)niCXc%@oQE*7PEQWlEs=8O6o@Fc=ZzlZ`?kt=-VPxl$Je;@c`c?XYHmQR+HbEFv5$9;sl+ zB!6fhQMjh{Bt6ECM(JINbUgUBFjyB7R4Lw9+w9HGf&p!V>-Z3n;9&6|@t2uma{+}J zt@LIqW!nL4k%~xqikfd7$~negyu0E}*fGx-XJ_WHk*VNTkrW_6L6vIP+|U{ZsPkGw zKT^kww78qc6|N2rCuR_>y6G*%RzSQ8!#cP5Yztc%XMEPG@jB4JgpH{$Ai z>F>mBuKV#%+GNi6g6; ziTN^n-PQuY#F*nRZ_+Z^uS+=Pb$EK=@I~9^R5gNtvg2NhMDk{8bm5EM(aYJDvd!-; zAmfkQViahptE#w+UXe(BEzsBAN)T6M(_~z!eptyT03%7=_*I*$drHG0~# zM%axVNfMymY;@1Q>nG^$^^;X-5;M_%57JBwSN+n0oXX}dK~wogH&d#F-<9sjoG?1r zvK`#>gx>s?*L>U&t@5Uqj-Dl_oQS}^jJ6hTH?EJpZ?ekl9{2%DRbKBDLVC>Cb1EmA zN;236CnUS6uq3%unCC&x^P%Kb5P4fKxz7iEmFLB!^6Ov4Y705W9>M>vDy=B0yJqCrz1l zgN$;kB$(xfycuw;fjz^m!5?0N|w{Vz}akBlFV1$2vgN0 z)3R!Alk=(fcu$qt;up-jEX`;{`w#Bl@9x>!q5$K&B)(r)V;o#rcMO=Bw!&sEJU|ol z1>#XuOrs<(gC<&l(PhP}icj%T4nor2N&266s2bRnLb4=h?ygrUfF~cDTDpV9UfLb4 zNuaqS85zl<_|ch$#A!rwtdGU~^zg3xvJg-7UO2V&`N+x5CSO?YitW(lmg?gD)6TI` zoh&DR<=VU+i^Aktlyzg!qcb!$p8jj~oRJqiFz)S_=boFT18p+f^|C>9t@O$i_D>jN zIdb{-Ue5Pq{UFMOQKwxrEW}PHP~-6eQsLbrkU8%$=qAcod zFTU+tJ_QR@1Ab@zmbs>uJL*Qz)I?6c*zQmAZ$VOD%ep@;U}#Qm`mYPSpzpiq@;uGL z5Q4iRA-I<=)$n<=oS{+NnAHS+e)HwE8nF|lW7OuoZ%7Qy@-&U5-vlpksmHH;TC+9PVGk$Vv3J^_Olx)&O;IH=y%xC1kFrWmiW(QbZ+%P%(Tl;`rFsd&o=3LpNnLhJ#Ql;fnt!2ewd!){x(FGL&XX&s;oU9$ zWad{^J6}f2eSfbu6bY-1hltNto!Ze3*Q{z30iHth{ev*BYmL75)bTfqrCy4gw<2)qR2~-LM=p>uTF0B>RDUv+M2G;EiX93;d3s&_^5@>ZTkIjm-UnV z;g1&xRP%RAUq@7>&FuQDX2@0y zzeDaBw?_+=Lv&76dfG_+&w(0~u(9P?A8ySt-v%$ROYwfGe_fP{w21qyC%P;ptJMcR zsbZM<%vQ5=<8{_&&qFXkaFlxjZ$2wMo_uWUgny$W`?Vxi`e*6#d~^*L@lwk{E6=W9 z)b>EewsqK7x~v+hhP?}fDAS*Pu1=z~Gr##&c`s7O+)I15e=x6vS$!<9p|CwrP}AEw5XKo^E8(@Swf3pqd5ORD zy&H8o+NMwTl3iT%S>cz-y6cEV6&@n1>P?gLc;?&X{uy%0cAgGNCQezf$zbY>pjj9H ztRI7S1TNcHCMu*jF1b*Z_-8#*={6KTWDP%Ug(#iOpJph%WNmv-)sMyUm*!A<-s{f3 zZfF50J)U%|`?=@aC01DOyzF=;l9r-oo3$jo;nW{d%tP$Ap0@gxy}H!t8mFL8)o9Dc zG0UF0b+<0-Z6&ddgvyorY5B1!7DQ!6m7KNyLy-5ObMf(O$MesA?atC89vzn*vtV3o z@Tu{K_Y+x~p9S$XtZsjWnkF+)zP#H|4R zUq6}rP0*@2LRII=UoK3|%h!uUI`qcLBh3_KA0>ZD#B6>|Tn(={*%(!LAGaNk#~~J7 zXnJaUS~D|7gcONS52E8v3c9(zr5O#ZO@@TfYgBBG^VSE7sl(wsLGN!*DW^7?08(pmA zo~@m1V4yWkkrb6vAy~^tcRS;3{ztoV-i6Hi+ahb10`c}xChI&d+-1*vc`9W|9{ze%%3^l}*O-MWV55(YylrffpJWiDs zwpq_7i9`KlL=Xy8*e?ne#AYwy4I??Jb=E!OcRHfu&KK$nr&c`-$&M{sY7hm<-zXX! zEjGdjr3FanOR$~S1q`Y;M_qRSKl18_>BR@j3(Lrsy(6GDM(K&lub4@jJyx#3RF;5; zSqTgMHHOcb@IEky8XGg)QYNY|8cK%l<#nxWpL|!|rFH~}YoC51Mw5xn=uJo|A@!?Y zJ-CSd(GVgPX!B#ToEAj$Iu{t*3T7YLU6vlHP#tzw613~-Z=EUjkUlbo*P?9azGAos zqT#2t@7V(-hpH*#`QUG@E@nO<(sxu>8n?aaH%+=$(q$SLF4g4ux#xBJ+I}w~jB?~3 zx|u?LVypWi$w~DXzZi9I7m6~Sm3f736AP=(5l_`vc!O&$)%U*3a;6NBNup6G-0SP; zd98`*d$z{cR9-TW-o=t}bedy#ptbR=7%vcM6>iAGWwI0izJJEC_Ll591HS6g+*6f3 zhC-$C@Gfi0qG2CyV579IOXA})xG-&Er!SB`A=&48??D+j#Yaa*AhN}U^Tf|-FXETJ zAgF3rLmJW)GcNt&VGoCO4@dSuAz?^14?Li4av?IFv89eTMM;aVe>I3Xp1c+wSYFbi z>yqO6ZU27BoR{HE;OvCP!;nHOx#Pu@=i z?1=7h(IJCj{ZMimndOurWc?_3{>%fVfMD~6V#82$&XSVC2_GOj$=I<=#@&9==7u#t znV{R=%FgvmJVe~jVuhLTb2EbnJ?X%YWop=^2EVG~O90}1wE(cEVPg_Gjg7cbOZ@gO zH!%;Ox>R)$WULfG{RrV-J5fFZX!?M!PoKhvFR_@U@aW!Mre=(j{l!DD;#q9_AF$Xn zBcTr`Xy&cN$<^7Db5+$$GH}~>;^AlHL1cJ+IZ-Vjw%E9GlI%BF>hi*;px!vKGCJ*Rnb_G)@_KTZtUN{0 zS^DUwP3fu|VZp=1^sP{bm~al4m-U_}2aq@;Ho+^f1*A4y{bOP&27tG-Q!&l?PnL~r{iE-(~&B-g5huB}X-`cRzp*)$MXV+z# z&g@w=mZBF}^#inAAI@_f%@u6b1Z>{bT5sMDdfOXs_Hi?{=%=9hG>Y{O9*Z+0>qwV* zm%KD@W`S?_a(re4#8QYIhOMKea}E7ohcr>GeI4#U;J1jd>ME|)InpR`B(Lh8YNWH~ zC%v6?GTS(?9WnF3LQJ{g+qVk8d7Xzw9G5^tyuY_ybkxyx$~-oYISg-x3S1@7m3ha2*3o;U(9BkDfAU-|y_YWW@31`6&< zw-Q}a1}I;eiWk2CxU&0qmdN62}21hbwC(-qH+BEk-b1S6oDt2*j_&?WMuY8F}4u>c=m42>#cmW(ebQCT}@O&fW@oe zO=czeK%=+)nI=to(uNoFRe|(VWF^+Htli_#X!v?>5#KciR`h3DB0Bn?5hopDcVglt z@wvrC$_+X~D*1Dmt{;%fvCkc)mp(fBzx21`0C)|okB@b$s`v?`%R~K+f>e_2LQ%q{ zvrMrBrl4MvHWp1FylMJOs9Om;dtvI>VmB>6RT@U(MAa`B#MXxY`DvZ(0r`DKReV=8 zX{Lt~^|PA3lvO!&TqU&T$2Vr;{)Tx6FTKO7(_5}B^$g68clTQlR=;pUvG>W;_k1;d zOUwianZb7nFg^BX%2U6iUM-r_E?Gio?6^PHAtWw!ldT6}?C`0xnn{ti{gq_ykW)6a zLmBWfn~tBN11$oeM@PT`qB3?#s2QFzVi}mSk;I3AqeW-xqGPRtCSN#ikr|g#eRU>- zyG5RVb1$IU?upi&11+V?WN~Ps2=d(r9CFJ+DtUsR72Sw7c4}O#4ZhWE>J#%>9sYP} zpY@pHt{g}?#SXJF5qNbw!1mxlndJ_{$gZQQ^TLUcJZRW>_2bfP7&xrd^p{^{kRoY- zeQ+$X*Q2CPEXbhG4g#w1p|(fAAqF*83|h2Kp3Fvk(i*x#KwKEdbb*%CIdNDR6A>Rb_4zO|SE`f~oQI?ERWf%W7wfpcQ& zrH{qf0yibue8s=bwYr3L=l`Uft;H)aH`rWkrOLE;J30Xn?(Pd!kkDlP;=zP`@+T4@27Zec4GDDk^|R0H+Y=lliMP8D=-#Wd9n{K7=>2Q2 zl_t8^=>}H5G*s;5w(U&HH&qrt&F(4Kb}FtOm}DfXJ&(zFK5&lTG!Im1W3uyWuzTy` zzuvwLeoz);E$p0e zOjRef##D3WPf{Kpw_D*a!KpHJRA$09=5>eC?5aIfj+|fbNlFI zcY5>OtD0Uw=;Ur>e4Zdlh*J4Li>W>!*!cBn0nMtW5FyuSz2#z4a+vk2i0uI`MpZhB z!D`TQ9Ye#81C^u)$&OT?@l8LnZeJfGkredR8IqgqtbdB9ty{u~yX`=P2i7+iMb5G(-QcM|U!AeRy;Et8a>Zigi5N zYT(21lM{i@^}d-3;p+mc(aMu&g{?T-I*@@fEvA|`reb9Fy{{u4 za5FmM^y#2ta!y3-CoQ_$+x~}UANL{Y787X_Hxf|jGkBiPAok#cI6GY50n~=vUwgm> zqb%YO)B0Q&a%qxXK?cL*2?@wJ!O`^)a<86Sez$5~44faI&xyRG8YgA=4ho6TMaz7! zoa*k2Hcc`i%&9$OU884;DZMF$H=iipM)sUh#2WcseANIOuS{b%BczAZCNoCI4!o9YiW#77p zx2@em?=e}e-I)u#i_3QrVqs3vsFan7%Px4bPC0s&Wa|QUyWwA2&A9!riY%bIAk~(M2{~ z1+jGgiu2qAkx>K=QHIhp&EY8DTGrqZaF7#y>!Zo{HJgExZ|k1=qpZ_why_(`vmOu6 zNy%+fTee-C=WWEXQ{U~F3Om7IcPS4&C>6=QuPhhsmmbAtSw4wzLklCY59AZl+^}t7 z3RS4m-~%<%ETT3epV;^9mVScpmgK%i@PNR2!FoXFj z(~d3+2B^0Ag;E zsCR!J%}=3`Lnlt072-RQj>(psRQIZl+omlBkHliHPCbPClb&y4o|zJ>s;WS&A+k3L zDm(>`+Krn8=~5W#G{-gU4@*CgEN3>g>rT$g`XK$p4?=duo6~c8SU=oJhQVIoUWbM{^vXMi zY`H5-OMYjnF~P0zz6xu-J`?~UAa?qZMrKNK9SXI$u3J^U{48TDjGnEz^8i$}JXpsS zxW80<{=IS{;Ma@BQxk`eq{%_oJ5x6WCgxH|OgxIg1Kz4gVn?bE5>J9OrHH%WBd}Kc zmdBVSMx|!|+c`{xoh;I#>Tv1iMyux~_alOvGZ`+=nm;7Yob24%k8k&A;8z;Y&3Eln z&?6b?vNP-uInWSb(e`=V`5ZzhV4jLu%Q+d{*CU+>q7T8UbiJRi{-$jI6z?_ZyMP0o z(BPl?KFom5TE_(1ZSaATXern{85X0nV48_gV@I>?B1*e%L8tU(#EcWO>B8|V$qvIG zF`m@0Th8SRspu6I=!*qvY3~g&neHFHL;|6_&TG; z{Zs}fS@J$03CsSogBuU#c>k4si#9R5DsaF86d zO^dNQJTh6yl{aPfiCCs6Yh{nHe(x&lyQ$3(bG_HDvqhVMno#X{w@nd!D}!C>Fj9#* zlJN^rmpDdsmv5al+K20q3ts2At;%Kk)||>mEyGtIs_!W9BZZfeoxsD1$<&qUgmietN(Ju)Ha$BoEsY@Io7H1Ru_~HmD~WUv><_RrVcE=Y)-WL zjzVSW`0PgNVjk5*2OHMZfqn{=M7EjYO62;-K{g801p}^8tx|Cku1hl2xtZdqT9=;@ zX4j{dK^^3=?w+w0-^o==J?i2*x6QBC65mOq8)W(=5_V=3`T0Z3`4F;JIeDEIVf#%K z@B$9V@Ld)Y%tl8=0nXs4!Olz8fkj1GBSG+7pvyp?k@==#1aPlUn{==TaS?OV~f%%~np9mPVz#eO6#NAi*NuVHA+FV?x zcOj;wA{1&7$cm`k4DL6Cf^bnDWCiWLzbxv1S>+FPZjMq~Em;oKu*hsr$t7~Z9_20D z>T>y5og8`xS`BezLi_OOu(n7|UzM!-=fg(h#wE~zu5ou~GynHD9y!^?K6VWC;U$TP z=i`&G^Rzx!c*7buvoiRBP<-U($erkvcBxjinR%G^taz6{Z|hF{hx-j;UPiDutIXba z$bh`Cxp2e@ESjMzkS4Z&wT3>#j|m+ z_eH!OQBw7f{UoRQZNQ1=I^|J!vVXhW5NBp>PiPm*O~K|EKS43M`t|cwX|oxz$3Fzgj0NZ_KQtBVUz3^pH}=ew!n>%w6M&M z{e%)2iWxr&@?-QR1C^sEsoSK^2H$0iB47HQL>Iqr57y!-Q`JvQz7g@#DoMs-Zmo_Z zk0mlHlF>b1*QFsbvt^g;P9Y%Q1z{@s#8-2yKhK zvvEkoOcaVx%U$tp+Gx1MHY}>jPxeN$NAQ@Fh@T4RS@{9+`b3SkI(1?`?F0dL=PwVE zyWR@A+aiD7Sw;8kQ0by){>qgGiai-zsX^$T*=)`3R_+6f+mxQXl~$LWxj#I2Q&!Kv z$3J8=%Esl0=E0{?phwxiEtDn5T ze`HepDa<@^(wj+Tkf%DBXS-5EQnd(mR%eq5UE!BGuJ9_KF02Hd(ApEg93$K2+qjRAeX!pnh<_{9eI?tZ%O z?jO3P|9d8v0Y3#Bm!BtsI(TR)$rw~aulM()WWN6dAHVtoC>lcdfj%6!#Y}r3*FaTD zij~<>%p_Gx2MWx}kWx7KP^b~xO57K1qVjtUGt;s6`NZLV18D%Pn8a^QZ@i@irf(Ic^4H*19OECic zXtGpzR6XM?F@jc8o~#CqSJ;(2-30wkS%|ga-OHcbmGSp zQE@=a!8mrxDzxWXjGY4U#CeMuRr+~fB`kvOi?T0NGZ3bRn#c_I}M zqYC??6@2DyyRlY*g5B?bP z3zjf2Q&YN%U+1M=rl8m+8)=ia#M-#~Dft#((a{#t7_#7+8XFvpeF;Qwh3qRNtAu(@ z@_td(N_b5N09D5m@|2^N)$2rzuOk@8b0RD#l|__>y@_3QnKT+aW0-tsT0Vhhjutq9 zEo@Me|He~S@6W&%xw4rvoSyTjG3Ubzd|V+QlRu~QhVAat+QZsGzs!=ftAgLJcYc@f zH-C~ZrrozQmaMn4u}fQ+Qz_YujaRXa?xZBlR^Mb54h9Q07r_f9r6aHlDuPX&95<$4 zDM&vMyPV0;vYo|BnscPkb&W3cB1DoC0A9*@D2}XNO4;QzWE_4Y2e+Ds0_W1`y3W&1 zVLf}~^2vwSC6t<@lJXuMqQCc|grXbTO}%F~74;+bo8FI{NYXUo$CkYpDdR>6CIy~- z@CF+D3p#26U%qyo1^<*h{f;(q)!b)}VO&JpeV|XE20fqwydKDCpZN3RD08L*g{u=E z=?aDxx=2&%@h)n3js~6hK+F09o=@sk*6?4A?C0 zliErAig@<*n{B`^5h4&6fZvEzB5xTbX_}@Y^WM1o_MnA#GPB^MFV$GXi0m1CaDepZ zfx~x}*-_5~i#>8EhWlx&KV1ipO{G*rCyF8Q8sxMzPlB#@iz(Pu+)!0Hl{ZW)!(j2U1i-Zk)Z1eJQ8(Y50Y zSR|u{&8Kbswm1ScfQ@Lb>g23d!h+&bUHx;bZ8ODvGBVGvrFZDtaDjx97-3CKV7!xP zW)d$QH62aV>l;Lz@PI}*Mv4uvt=^QU#WQLP0(@d6p5=>9)Oan8ka?9i8A>q@TZ3I+*()KCBkp~JYMQfudV`Q>h`rT z(+b&b{Gi=hP!L%aYh+STT&;)CgOfXdtbbuBBCGE!otog!+!G13Qdb%vtRp&g^kHST zoa5WFAHPa>91?K_+){dX&Q<@bW(ai#Ka%frJcxZiq1CuX*dQlXk@3#YXEde@t^L37 dg6|pJujn;rZ&`jJ;lDY+4UOCC?^LaV{}-9Zt^NQ2 literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png.meta new file mode 100644 index 00000000..fe09d698 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png.meta @@ -0,0 +1,228 @@ +fileFormatVersion: 2 +guid: 1be801af75d973a4b9e1fdc6fda7ac8c +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Plant.png + uploadId: 376379 +TextureImporter: + internalIDToNameTable: + - first: + 213: 21300000 + second: LeftLeaf + - first: + 213: 21300002 + second: Base + - first: + 213: 21300004 + second: RightLeaf + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: LeftLeaf + rect: + serializedVersion: 2 + x: 38 + y: 83 + width: 90 + height: 40 + alignment: 9 + pivot: {x: 0.95225424, y: 0.65089834} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Base + rect: + serializedVersion: 2 + x: 165 + y: 41 + width: 61 + height: 79 + alignment: 9 + pivot: {x: 0.43815613, y: 0.94887656} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: RightLeaf + rect: + serializedVersion: 2 + x: 36 + y: 15 + width: 110 + height: 52 + alignment: 9 + pivot: {x: 0.06102132, y: 0.34039542} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 42305410000000000800000000000000 + internalID: 21300004 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Base: 21300002 + LeftLeaf: 21300000 + RightLeaf: 21300004 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png new file mode 100644 index 0000000000000000000000000000000000000000..d9360f746cd54bb5824e803d6a27a5e22e04b9bf GIT binary patch literal 118189 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 literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png.meta new file mode 100644 index 00000000..0893d510 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png.meta @@ -0,0 +1,106 @@ +fileFormatVersion: 2 +guid: 1ebe3e82ebb71d747b19e6cff408ccd6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 73749b737329d7d4f8519e3316fee01f + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sky.png + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sprites.png b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/2D/Sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..a23ce98cb6e2df6528002ac9f1eccebdaf7e6683 GIT binary patch literal 35595 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 z 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 literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png.meta new file mode 100644 index 00000000..aa6f2b72 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 071a0df25fa7f034289d32d2b3c8f90b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/3D/Rock_00.png + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI.meta new file mode 100644 index 00000000..7c4db313 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c10aa86cceea72b46a38302b31ad2b71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_2D.png b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..c99ea6f5834fe4f4fc8e697985c370b33c3630f9 GIT binary patch literal 4641 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 literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png.meta b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png.meta new file mode 100644 index 00000000..8a991a11 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png.meta @@ -0,0 +1,137 @@ +fileFormatVersion: 2 +guid: f496743e368965942a4bf94398c8c673 +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Demo/Textures/UI/LowPoly_Button_White.png + uploadId: 376379 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf b/Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01bcec72789111c7afbdda767f2e1751344ec72f GIT binary patch literal 149905 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 g4Rx%Rx;hl4FQ2+n{ literal 0 HcmV?d00001 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf.meta b/Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf.meta new file mode 100644 index 00000000..49c3f8a6 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: af3f9d3883ab6df4c893a32f6d18a8e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Documentation.pdf + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts.meta new file mode 100644 index 00000000..00168f68 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c0b3da18ad2e7d47aca9eba6f6a2b6c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs new file mode 100644 index 00000000..82fc938f --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs @@ -0,0 +1,700 @@ + +using FirstGearGames.Utilities.Objects; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace FirstGearGames.SmoothCameraShaker +{ + + public class CameraShakerHandler : MonoBehaviour + { + #region Public. + /// + /// Dispatched after the default Shaker is changed. + /// + public static event Action OnDefaultShakerChanged; + /// + /// Dispatched after the default Shaker is changed. Obsolete: use OnDefaultShakerChanged instead. + /// + [Obsolete("Obsolete: use OnDefaultShakerChanged instead.")] + public static event Action OnDefaultCameraShakerChanged + { + add { OnDefaultShakerChanged += value; } + remove { OnDefaultShakerChanged -= value; } + } + /// + /// Dispatched when shaking starts when previously stopped on all Shakers. + /// + public static event Action OnAllShakingStarted; + /// + /// Dispatched when shaking ends on all Shakers. + /// + public static event Action OnAllShakingEnded; + /// + /// Dispatched every update a shake occurs. This is the total values of InstantiatedShakers. + /// + public static event Action OnAllShakeUpdate; + /// + /// Dispatched every fixed update a shake occurs. Contains the shake values from last update of InstantiatedShakers. + /// + public static event Action OnAllShakeFixedUpdate; + /// + /// Dispatched when shaking starts on any Shaker. + /// + public static event Action OnShakingStarted; + /// + /// Dispatched when shaking ends on any Shaker. + /// + public static event Action OnShakingEnded; + /// + /// Dispatched every update a shake occurs on any Shaker. + /// + public static event Action OnShakeUpdate; + /// + /// Dispatched every fixed updated a shake occurs on any Shaker. Contains the shake values from last update. + /// + public static event Action OnShakeFixedUpdate; + /// + /// Dispatched after a Shaker is added to InstantiatedShakers. + /// + public static event Action OnShakerInstantiated; + /// + /// Dispatched after a Shaker is added to InstantiatedShakers. Obsolete: use OnShakerInstantiated instead. + /// + [Obsolete("Obsolete: use OnShakerInstantiated instead.")] + public static event Action OnCameraShakerInstantiated + { + add { OnShakerInstantiated += value; } + remove { OnShakerInstantiated -= value; } + } + /// + /// Dispatched after a Shaker is removed from InstantiatedShakers. + /// + public static event Action OnShakerDestroyed; + /// + /// Dispatched after a Shaker is removed from InstantiatedShakers. Obsolete: use OnShakerDestroyed instead. + /// + [Obsolete("Obsolete: use OnShakerDestroyed instead.")] + public static event Action OnCameraShakerDestroyed + { + add { OnShakerDestroyed += value; } + remove { OnShakerDestroyed -= value; } + } + /// + /// All instantiated Shaker scripts. + /// + public static List InstantiatedShakers = new List(); + /// + /// All instantiated Shaker scripts. Obsolete: use InstantiatedShakers instead. + /// + [Obsolete("Obsolete: use InstantiatedShakers instead.")] + public static List InstantiatedCameraShakers + { + get { return InstantiatedShakers; } + set { InstantiatedShakers = value; } + } + /// + /// + /// z + private CameraShaker _defaultCameraShaker; + /// + /// Current default Shaker. + /// + public static CameraShaker DefaultCameraShaker + { + get + { + if (_instance == null) + return null; + + return _instance._defaultCameraShaker; + } + private set + { + if (_instance == null) + return; + + _instance._defaultCameraShaker = value; + } + } + /// + /// True if any CameraShaker is currently shaking. + /// + public static bool Shaking { get { return (_instance._shaking.Count > 0); } } + #endregion + + #region Private. + /// + /// Collection of CameraShakers which are currently shaking. + /// + private List _shaking = new List(); + /// + /// Singleton instance of this script. + /// + private static CameraShakerHandler _instance; + #endregion + + private void Awake() + { + //Make sure there is only once instance. + if (_instance != null && _instance != this) + { + if (Debug.isDebugBuild) Debug.LogWarning("Multiple CameraShakerHandler scripts found. This script auto loads itself and does not need to be placed in your scenes."); + Destroy(this); + return; + } + } + + private void Update() + { + UpdateShakers(); + } + + private void FixedUpdate() + { + UpdateFixedShakers(); + } + + private void OnDestroy() + { + DisableAll(); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void FirstInitialize() + { + DDOL ddol = DDOL.ReturnDDOL(); + + GameObject obj = new GameObject(); + obj.name = "CameraShakerHandler"; + _instance = obj.AddComponent(); + _instance.enabled = false; + + _instance.transform.SetParent(ddol.transform); + } + + /// + /// Disables activity on all camera shakers. + /// + private void DisableAll() + { + //Disable camera shakers. + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (InstantiatedShakers[i] != null) + InstantiatedShakers[i].Disable(); + } + } + + /// + /// Updates Shakers on standard time. + /// + private void UpdateShakers() + { + if (_shaking.Count == 0) + return; + + ShakeValues totalCamera = new ShakeValues(); + ShakeValues totalCanvases = new ShakeValues(); + ShakeValues totalRigidbodies = new ShakeValues(); + + //True if any shakers are running. + bool anyShaking = false; + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + ShakeValues camera; + ShakeValues canvases; + ShakeValues rigidbodies; + if (InstantiatedShakers[i].UpdateShakers(out camera, out canvases, out rigidbodies)) + { + anyShaking = true; + + totalCamera.Position += camera.Position; + totalCamera.Rotation += camera.Rotation; + totalCanvases.Position += canvases.Position; + totalCanvases.Rotation += canvases.Rotation; + totalRigidbodies.Position += rigidbodies.Position; + totalRigidbodies.Rotation += rigidbodies.Rotation; + } + } + + //If any where shaking. + if (anyShaking) + OnAllShakeUpdate?.Invoke(new ShakeUpdate(totalCamera, totalCanvases, totalRigidbodies)); + } + + /// + /// Updates Shakers on fixed time. + /// + private void UpdateFixedShakers() + { + /* Don't exit if total shaking is 0 + * as shaking may have stopped but still + * have a fixed shake queued. */ + ShakeValues totalCamera = new ShakeValues(); + ShakeValues totalCanvases = new ShakeValues(); + ShakeValues totalRigidbodies = new ShakeValues(); + + //True if any shakers are shaking a fixed value. + bool anyShaking = false; + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + ShakeValues camera; + ShakeValues canvases; + ShakeValues rigidbodies; + if (InstantiatedShakers[i].UpdateFixedShakers(out camera, out canvases, out rigidbodies)) + { + anyShaking = true; + + totalCamera.Position += camera.Position; + totalCamera.Rotation += camera.Rotation; + totalCanvases.Position += canvases.Position; + totalCanvases.Rotation += canvases.Rotation; + totalRigidbodies.Position += rigidbodies.Position; + totalRigidbodies.Rotation += rigidbodies.Rotation; + } + } + + if (anyShaking) + OnAllShakeFixedUpdate?.Invoke(new ShakeUpdate(totalCamera, totalCanvases, totalRigidbodies)); + } + + /// + /// Returns if an action can be run on the specified Shaker using an All method. + /// + /// + /// + /// + private static bool CanRunAllOn(CameraShaker shaker, bool includeDisabled) + { + if (shaker == null) + return false; + if (!shaker.gameObject.activeInHierarchy && !includeDisabled) + return false; + + return true; + } + + + #region Shaker referencing handling. + /// + /// Adds CameraShaker to shaking. This is for internal use only. + /// + /// + internal static void AddShaking(CameraShaker shaker) + { + int startCount = _instance._shaking.Count; + _instance._shaking.AddUnique(shaker); + + //Shaking just started. + if (startCount == 0 && _instance._shaking.Count > 0) + { + _instance.enabled = true; + OnAllShakingStarted?.Invoke(); + } + } + /// + /// Removes CameraShaker from shaking. This is for internal use only. + /// + /// + internal static void RemoveShaking(CameraShaker shaker) + { + int startCount = _instance._shaking.Count; + _instance._shaking.Remove(shaker); + + //Last shaker was removed. + if (startCount > 0 && _instance._shaking.Count == 0) + { + /* Since this is the last shaker being removed send + * zero values. This has to be done before update otherwise these + * values would send after the OnAllShakingEnded. */ + OnAllShakeUpdate?.Invoke(new ShakeUpdate()); + OnAllShakeFixedUpdate?.Invoke(new ShakeUpdate()); + + OnAllShakingEnded?.Invoke(); + _instance.enabled = false; + + } + } + /// + /// Adds a CameraShaker to the InstantiatedCameraShakers field. This is for internal use only. + /// + /// + internal static void AddInstantiatedShaker(CameraShaker value) + { + int index = InstantiatedShakers.IndexOf(value); + /* If shaker already exist then remove the current entry. + * It will then be added to the end. */ + if (index != -1) + InstantiatedShakers.RemoveAt(index); + //First time being added, subscribe to events. + else + ChangeShakerSubscriptions(value, true); + + InstantiatedShakers.Add(value); + OnShakerInstantiated?.Invoke(value); + } + + /// + /// Removes a CameraShaker from the InstantiatedCameraShakers field. This is for internal use only. + /// + /// + internal static void RemoveInstantiatedShaker(CameraShaker value) + { + ChangeShakerSubscriptions(value, false); + + InstantiatedShakers.Remove(value); + /* If value was the current default shaker then try to change value + * to the next most recently enabled shaker. This isn't ideal + * but can occur with user error. */ + if (value == DefaultCameraShaker && InstantiatedShakers.Count > 0) + SetFirstDefault(); + + OnShakerDestroyed?.Invoke(value); + } + + /// + /// Iterates through CameraShakers and sets the most recently active instance as default. + /// + private static void SetFirstDefault() + { + for (int i = (InstantiatedShakers.Count - 1); i >= 0; i--) + { + if (InstantiatedShakers[i] != null && InstantiatedShakers[i].gameObject.activeInHierarchy) + { + SetDefaultCameraShaker(InstantiatedShakers[i]); + return; + } + } + + //Fall through. Ideally won't happen but can depending on user setup. + SetDefaultCameraShaker(null); + } + #endregion + + #region Relaying CameraShaker events. + /// + /// Changes subscriptions to a camera shaker. + /// + /// + /// + private static void ChangeShakerSubscriptions(CameraShaker shaker, bool subscribe) + { + if (shaker == null) + return; + + if (subscribe) + { + shaker.OnShakingStarted += Shaker_OnShakingStarted; + shaker.OnShakingEnded += Shaker_OnShakingEnded; + shaker.OnShakeUpdate += Shaker_OnShakeUpdate; + shaker.OnShakeFixedUpdate += Shaker_OnFixedShakeUpdate; + } + else + { + shaker.OnShakingStarted -= Shaker_OnShakingStarted; + shaker.OnShakingEnded -= Shaker_OnShakingEnded; + shaker.OnShakeUpdate -= Shaker_OnShakeUpdate; + shaker.OnShakeFixedUpdate -= Shaker_OnFixedShakeUpdate; + } + } + + /// + /// Received when any instantiated CameraShaker stops shaking. + /// + /// + private static void Shaker_OnShakingEnded(CameraShaker obj) + { + OnShakingEnded?.Invoke(obj); + } + + /// + /// Received when any instantiated CameraShaker starts shaking. + /// + /// + private static void Shaker_OnShakingStarted(CameraShaker obj) + { + OnShakingStarted?.Invoke(obj); + } + + /// + /// Received when any instantiated CameraShaker calls OnShakeUpdate. + /// + /// + /// + private static void Shaker_OnShakeUpdate(CameraShaker arg1, ShakeUpdate arg2) + { + OnShakeUpdate?.Invoke(arg1, arg2); + } + /// + /// Received when any instantiated CameraShaker calls OnFixedShakeUpdate. + /// + /// + /// + private static void Shaker_OnFixedShakeUpdate(CameraShaker arg1, ShakeUpdate arg2) + { + OnShakeFixedUpdate?.Invoke(arg1, arg2); + } + #endregion + + + #region API. + /// + /// Copies ShakerInstances from one CameraShaker to another. + /// + /// CameraShaker copied from. + /// CameraShaker copied to. + /// True to copy the from cameras current offsets. Both CameraShakers must have the same ShakeTechnique for this to work. + public static void CopyShakerInstances(CameraShaker from, CameraShaker to, bool copyOffset = true) + { + //If neither shaker is null then add instances. + if (from != null && to != null) + { + to.AddShakerInstances(from.ShakerInstances); + + //Also copy offsets when possible. + if (copyOffset && from.ShakeTechnique == to.ShakeTechnique) + { + /* Use the to camera shake technique. Since they are the same + * it really doesn't matter which one I read. */ + CameraShaker.ShakeTechniques technique = to.ShakeTechnique; + + //Matrix. + if (technique == CameraShaker.ShakeTechniques.Matrix) + { + /* Cannot copy the matrix because camera view will remain as last cameras view. + * If fixed values are known for from camera then use those. */ + if (from.FixedCamera != null) + to.SetMatrixOffsets(from.FixedCamera.Position, from.FixedCamera.Rotation); + } + //LocalSpace. + else if (to.ShakeTechnique == CameraShaker.ShakeTechniques.LocalSpace) + { + to.SetLocalSpaceOffsets(from.transform.localPosition, from.transform.localEulerAngles); + } + } + } + } + + /// + /// Sets the DefaultCamereaShaker field. + /// + /// New CameraShaker to use as default. + public static void SetDefaultCameraShaker(CameraShaker value) + { + CameraShaker old = DefaultCameraShaker; + DefaultCameraShaker = value; + OnDefaultShakerChanged?.Invoke(new CameraShakerChange(old, value)); + } + + /// + /// Sets Scale value on the default CameraShaker. + /// + /// New scale to use. + public static void SetScale(float value) + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.SetScale(value); + } + /// + /// Sets the Scale value of InstantiatedCameraShakers. + /// + /// New scale to use + /// True to issue call on disabled CameraShakers as well. + public static void SetScaleAll(float value, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].SetScale(value); + } + } + + /// + /// Shakes the default CameraShaker using data. + /// + /// ShakeData to use. + /// Instance generated using data. + public static ShakerInstance Shake(ShakeData data) + { + if (DefaultCameraShaker == null) + return null; + + return DefaultCameraShaker.Shake(data); + } + /// + /// Shakes the all camera shakers using data. + /// + /// ShakeData to use. + /// True to issue call on disabled CameraShakers as well. + /// Instances generated using data. + public static List ShakeAll(ShakeData data, bool includeDisabled = false) + { + List results = new List(); + + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + results.Add(InstantiatedShakers[i].Shake(data)); + } + + return results; + } + + + /// + /// Sets the paused state of all shaker instances on the default CameraShaker. + /// + /// New pause state. + public static void SetPaused(bool value) + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.SetPaused(value); + } + /// + /// Sets the paused state of all shaker instances on the all CameraShakers. + /// + /// New pause state. + /// True to issue call on disabled CameraShakers as well. + public static void SetPausedAll(bool value, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].SetPaused(value); + } + } + + /// + /// Abruptly stops all instances on the default CameraShaker. + /// + public static void Stop() + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.Stop(); + } + /// + /// Abruptly stops all instances on InstantiatedCameraShakers. + /// + /// True to issue call on disabled CameraShakers as well. + public static void StopAll(bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].Stop(); + } + } + + /// + /// Fades out all instances on the default CameraShaker. This operation only works on instances not already fading out. + /// + /// Overrides instance fade out duration with a new value. + public static void FadeOut(float? durationOverride = null) + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.FadeOut(durationOverride); + } + /// + /// Fades out all instances on all CameraShakers. This operation only works on instances not already fading out. + /// + /// Overrides instance fade out duration with a new value. + /// True to issue call on disabled CameraShakers as well. + public static void FadeOutAll(float? durationOverride = null, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].FadeOut(durationOverride); + } + } + + + /// + /// Multiplies magnitude values for all instances on the defaut camera shaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + public void MultiplyMagnitude(float multiplier, float moveRate, bool rateUsesDistance) + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.MultiplyMagnitude(multiplier, moveRate, rateUsesDistance); + } + /// + /// Multiplies magnitude values for all instances on all camera shakers. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + /// True to issue call on disabled CameraShakers as well. + public void MultiplyMagnitudeAll(float multiplier, float moveRate, bool rateUsesDistance, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].MultiplyMagnitude(multiplier, moveRate, rateUsesDistance); + } + } + + /// + /// Multiplies roughness values for all instances on the default camera shaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + public void MultiplyRoughness(float multiplier, float moveRate, bool rateUsesDistance) + { + if (DefaultCameraShaker == null) + return; + + DefaultCameraShaker.MultiplyRoughness(multiplier, moveRate, rateUsesDistance); + } + /// + /// Multiplies roughness values for all instances on all camera shakers. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + /// True to issue call on disabled CameraShakers as well. + public void MultiplyRoughnessAll(float multiplier, float moveRate, bool rateUsesDistance, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].MultiplyRoughness(multiplier, moveRate, rateUsesDistance); + } + } + #endregion + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs.meta new file mode 100644 index 00000000..ed995eed --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: ada9c62fbc6a3314aba805f35565b3ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/CameraShakerHandler.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs new file mode 100644 index 00000000..766f92f3 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs @@ -0,0 +1,73 @@ + +using UnityEngine; + +namespace FirstGearGames.SmoothCameraShaker +{ + public class ShakeUpdate + { + public ShakeUpdate() + { + Camera = new ShakeValues(); + Canvases = new ShakeValues(); + Objects = new ShakeValues(); + } + public ShakeUpdate(ShakeValues camera, ShakeValues canvases, ShakeValues objects) + { + Camera = camera; + Canvases = canvases; + Objects = objects; + } + /// + /// ShakeValues for the camera. + /// + public readonly ShakeValues Camera; + /// + /// ShakeValues for canvases. + /// + public readonly ShakeValues Canvases; + /// + /// ShakeValues for rigidbodies. + /// + public readonly ShakeValues Objects; + } + + public class ShakeValues + { + public ShakeValues() + { + Position = Vector3.zero; + Rotation = Vector3.zero; + } + public ShakeValues(Vector3 position, Vector3 rotation) + { + Position = position; + Rotation = rotation; + } + /// + /// Position value of the shake. + /// + public Vector3 Position; + /// + /// Rotation value of the shake. + /// + public Vector3 Rotation; + } + + public struct CameraShakerChange + { + public CameraShakerChange(CameraShaker oldShaker, CameraShaker newShaker) + { + OldShaker = oldShaker; + NewShaker = newShaker; + } + + /// + /// Old CameraShaker. + /// + public readonly CameraShaker OldShaker; + /// + /// New CameraShaker. + /// + public readonly CameraShaker NewShaker; + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs.meta new file mode 100644 index 00000000..573edf50 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 6d17ed76ee8f15541a502ccfc07aa5c8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/EventArgs.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs new file mode 100644 index 00000000..3ae08df0 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs @@ -0,0 +1,10 @@ +namespace FirstGearGames.SmoothCameraShaker +{ + [System.Serializable, System.Flags] + public enum InvertibleAxes : int + { + X = 1, + Y = 2, + Z = 4 + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs.meta new file mode 100644 index 00000000..34aa3184 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 50056176a8ca0c0439934482c81cdac6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/InvertibleAxes.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs new file mode 100644 index 00000000..fc059e96 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs @@ -0,0 +1,309 @@ + +using FirstGearGames.Utilities.Objects; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace FirstGearGames.SmoothCameraShaker +{ + + public class ObjectShakerHandler : MonoBehaviour + { + #region Public. + ///// + ///// Dispatched after a Shaker is added to InstantiatedShakers. + ///// + //public static event Action OnShakerInstantiated; + ///// + ///// Dispatched after a Shaker is removed from InstantiatedShakers. + ///// + //public static event Action OnShakerDestroyed; + /// + /// All instantiatedShaker scripts. + /// + public static List InstantiatedShakers = new List(); + #endregion + + #region Private. + /// + /// Collection of Shakers which are currently shaking. + /// + private List _shaking = new List(); + /// + /// Singleton instance of this script. + /// + private static ObjectShakerHandler _instance; + #endregion + + private void Awake() + { + //Make sure there is only once instance. + if (_instance != null && _instance != this) + { + if (Debug.isDebugBuild) Debug.LogWarning("Multiple ObjectShakerHandler scripts found. This script auto loads itself and does not need to be placed in your scenes."); + Destroy(this); + return; + } + } + + private void Update() + { + UpdateShakers(); + } + + private void FixedUpdate() + { + UpdateFixedShakers(); + } + + private void OnDestroy() + { + DisableAll(); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void FirstInitialize() + { + DDOL ddol = DDOL.ReturnDDOL(); + + GameObject obj = new GameObject(); + obj.name = "ObjectShakerHandler"; + _instance = obj.AddComponent(); + _instance.enabled = false; + + _instance.transform.SetParent(ddol.transform); + } + + /// + /// Disables activity on all camera shakers. + /// + private void DisableAll() + { + //Disable camera shakers. + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (InstantiatedShakers[i] != null) + InstantiatedShakers[i].Disable(); + } + } + + /// + /// Updates Shakers on standard time. + /// + private void UpdateShakers() + { + if (_shaking.Count == 0) + return; + + for (int i = 0; i < InstantiatedShakers.Count; i++) + InstantiatedShakers[i].UpdateShakers(); + } + + /// + /// Updates Shakers on fixed time. + /// + private void UpdateFixedShakers() + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + InstantiatedShakers[i].UpdateFixedShakers(); + } + + /// + /// Returns if an action can be run on the specified Shaker using an All method. + /// + /// + /// + /// + private static bool CanRunAllOn(ObjectShaker shaker, bool includeDisabled) + { + if (shaker == null) + return false; + if (!shaker.gameObject.activeInHierarchy && !includeDisabled) + return false; + + return true; + } + + + #region Shaker referencing handling. + /// + /// Adds Shaker to shaking. This is for internal use only. + /// + /// + internal static void AddShaking(ObjectShaker shaker) + { + _instance._shaking.AddUnique(shaker); + _instance.enabled = (_instance._shaking.Count > 0); + } + /// + /// Removes Shaker from shaking. This is for internal use only. + /// + /// + internal static void RemoveShaking(ObjectShaker shaker) + { + _instance._shaking.Remove(shaker); + _instance.enabled = (_instance._shaking.Count > 0); + } + /// + /// Adds a Shaker to the InstantiatedShakers field. This is for internal use only. + /// + /// + internal static void AddInstantiatedShaker(ObjectShaker value) + { + InstantiatedShakers.AddUnique(value); + //OnShakerInstantiated?.Invoke(value); + } + + /// + /// Removes a Shaker from the InstantiatedShakers field. This is for internal use only. + /// + /// + internal static void RemoveInstantiatedShaker(ObjectShaker value) + { + InstantiatedShakers.Remove(value); + //OnShakerDestroyed?.Invoke(value); + } + #endregion + + #region API. + /// + /// Copies ShakerInstances from one CameraShaker to another. + /// + /// CameraShaker copied from. + /// CameraShaker copied to. + public static void CopyShakerInstances(ObjectShaker from, ObjectShaker to) + { + //If neither shaker is null then add instances. + if (from != null && to != null) + to.AddShakerInstances(from.ShakerInstances); + } + + /// + /// Sets the Scale value of InstantiatedCameraShakers. + /// + /// New scale to use + /// True to issue call on disabled CameraShakers as well. + public static void SetScaleAll(float value, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].SetScale(value); + } + } + + /// + /// Shakes the all camera shakers using data. + /// + /// ShakeData to use. + /// True to issue call on disabled CameraShakers as well. + /// Instances generated using data. + public static List ShakeAll(ShakeData data, bool includeDisabled = false) + { + List results = new List(); + + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + results.Add(InstantiatedShakers[i].Shake(data)); + } + + return results; + } + + + /// + /// Sets the paused state of all shaker instances on the all CameraShakers. + /// + /// New pause state. + /// True to issue call on disabled CameraShakers as well. + public static void SetPausedAll(bool value, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].SetPaused(value); + } + } + + /// + /// Abruptly stops all instances on InstantiatedCameraShakers. + /// + /// True to issue call on disabled CameraShakers as well. + public static void StopAll(bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].Stop(); + } + } + + + /// + /// Fades out all instances on all CameraShakers. This operation only works on instances not already fading out. + /// + /// Overrides instance fade out duration with a new value. + /// True to issue call on disabled CameraShakers as well. + public static void FadeOutAll(float? durationOverride = null, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].FadeOut(durationOverride); + } + } + + /// + /// Multiplies magnitude values for all instances on all camera shakers. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + /// True to issue call on disabled CameraShakers as well. + public void MultiplyMagnitudeAll(float multiplier, float moveRate, bool rateUsesDistance, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].MultiplyMagnitude(multiplier, moveRate, rateUsesDistance); + } + } + + /// + /// Multiplies roughness values for all instances on all camera shakers. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using movdRate unmodified. + /// True to issue call on disabled CameraShakers as well. + public void MultiplyRoughnessAll(float multiplier, float moveRate, bool rateUsesDistance, bool includeDisabled = false) + { + for (int i = 0; i < InstantiatedShakers.Count; i++) + { + if (!CanRunAllOn(InstantiatedShakers[i], includeDisabled)) + continue; + + InstantiatedShakers[i].MultiplyRoughness(multiplier, moveRate, rateUsesDistance); + } + } + #endregion + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs.meta new file mode 100644 index 00000000..0902f5a9 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 5645861d4fd767f48b7cb99e0ee87402 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/ObjectShakerHandler.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets.meta new file mode 100644 index 00000000..58f32112 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7c161b8b7cbfc549ae174d4c5988f3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset new file mode 100644 index 00000000..5344ea0f --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset @@ -0,0 +1,82 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: ConstantCurvy + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCanvases: 1 + _shakeRigidbodies: 1 + _unlimitedDuration: 1 + _totalDuration: 1 + _fadeInDuration: 1 + _fadeOutDuration: 1 + _magnitude: 0.5 + _magnitudeNoise: 0.1 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0.014367644 + outSlope: 0.014367644 + tangentMode: 0 + - serializedVersion: 2 + time: 0.5 + value: 0.25 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 1.5 + value: 0.25 + inSlope: 0.0036582947 + outSlope: 0.0036582947 + tangentMode: 34 + - serializedVersion: 2 + time: 2 + value: 1.0036583 + inSlope: -0.00000054336607 + outSlope: -0.00000054336607 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughness: 13 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 1, y: 1, z: 0} + _rotationalInfluence: {x: 0, y: 0.5, z: 2} + _randomSeed: 1 + _seed: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset.meta new file mode 100644 index 00000000..970d970a --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 710c880799ac4264dab849dc626d5ac8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantCurvy.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset new file mode 100644 index 00000000..759ce87b --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: ConstantFlat + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCanvases: 1 + _shakeRigidbodies: 1 + _unlimitedDuration: 1 + _totalDuration: 1 + _fadeInDuration: 0 + _fadeOutDuration: 0 + _magnitude: 0.25 + _magnitudeNoise: 0.05 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + _roughness: 13 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 1, y: 1, z: 0} + _rotationalInfluence: {x: 0, y: 0.5, z: 1} + _randomSeed: 1 + _seed: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset.meta new file mode 100644 index 00000000..764d6b4f --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 2c6062901f01a2e40bae62c743fdac13 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/ConstantFlat.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset new file mode 100644 index 00000000..a84805bd --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: CurveFade + m_EditorClassIdentifier: + _scaledTime: 1 + _shakeCameras: 1 + _shakeCanvases: 1 + _shakeObjects: 1 + _unlimitedDuration: 0 + _totalDuration: 1 + _fadeInDuration: 0 + _fadeOutDuration: 0 + _magnitude: 0.5 + _magnitudeNoise: 0.1 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + - serializedVersion: 2 + time: 0.16723633 + value: 0.995121 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 0.5 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughness: 8 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + - serializedVersion: 2 + time: 2 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _positionalInfluence: {x: 1, y: 1, z: 0} + _rotationalInfluence: {x: 0, y: 0.5, z: 1} + _randomSeed: 1 + _seed: 0 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset.meta new file mode 100644 index 00000000..26188442 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 94a2bf00ef401804d8dae290e3a2266b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/CurveFade.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset new file mode 100644 index 00000000..b85d6c7b --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ba2a80b753f77d4d96ab2af3748cee8, type: 3} + m_Name: Explosion + m_EditorClassIdentifier: + _scaledTime: 1 + _unlimitedDuration: 0 + _totalDuration: 1 + _fadeInDuration: 0 + _fadeOutDuration: 0 + _magnitude: 1 + _magnitudeNoise: 0.1 + _magnitudeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.8 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _magnitudeCurveTiming: 1 + _roughness: 7.5 + _roughnessNoise: 0.3 + _roughnessCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _roughnessCurveTiming: 1 + _positionalInfluence: {x: 1, y: 1, z: 0} + _rotationalInfluence: {x: 0, y: 0, z: 1} diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset.meta new file mode 100644 index 00000000..54911fe7 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: cfb5721468f522e4984b6e517151f6d8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Presets/Explosion.asset + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables.meta new file mode 100644 index 00000000..54d70439 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4419d99f40dc9b7489ba9917a0d1ccd3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs new file mode 100644 index 00000000..71b57352 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs @@ -0,0 +1,36 @@ +using UnityEngine; + + +namespace FirstGearGames.SmoothCameraShaker +{ + + + + public class ShakableBase : MonoBehaviour + { + #region Types. + public enum ShakerTypes + { + CameraShaker = 0, + ObjectShaker = 1 + } + #endregion + + #region Serialized. + /// + /// + /// + [Tooltip("Shaker type to use. CameraShaker will subscribe to your current or otherwise configured CameraShaker. ObjectShaker will subscribe to the first ObjectShaker found on or in parented objects.")] + [SerializeField] + private ShakerTypes _shakerType = ShakerTypes.CameraShaker; + /// + /// Shaker type to use. CameraShaker will subscribe to your current or otherwise configured CameraShaker. ObjectShaker will subscribe to the first ObjectShaker found on or in parented objects.s + /// + public ShakerTypes ShakerType { get { return _shakerType; } } + #endregion + + + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs.meta new file mode 100644 index 00000000..6f42f5e5 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 52ce313d243e43145988d09cfb991db6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableBase.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs new file mode 100644 index 00000000..2c85bd09 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs @@ -0,0 +1,558 @@ +using FirstGearGames.Utilities.Maths; +using System.Collections.Generic; +using UnityEngine; + +namespace FirstGearGames.SmoothCameraShaker +{ + + public class ShakableCanvas : ShakableBase + { + #region Types. + private struct StartValues + { + public StartValues(Vector3 position, Vector3 rotation) + { + Position = position; + Rotation = rotation; + } + /// + /// Start position for an object. + /// + public readonly Vector3 Position; + /// + /// Start rotation for an object. + /// + public readonly Vector3 Rotation; + } + #endregion + + #region Serialized. + /// + /// True to shake when the default camera shaker does. False to specify a camera shaker to use. + /// + [Tooltip("True to shake when the default camera shaker does. False to specify a camera shaker to use.")] + [SerializeField] + private bool _useDefaultCameraShaker = true; + /// + /// Camera shaker to monitor. + /// + [Tooltip("Camera shaker to monitor.")] + [SerializeField] + private CameraShaker _cameraShaker = null; + /// + /// Sets a new CameraShaker to use. This method will do nothing if using ShakableObject as the ShakerType. + /// + /// + public void SetCameraShaker(CameraShaker shaker) + { + if (base.ShakerType == ShakerTypes.ObjectShaker) + return; + + if (_useDefaultCameraShaker) + { + if (Debug.isDebugBuild) Debug.LogWarning("Cannot set CameraShaker with UseDefaultCameraShaker set. If you wish to change CameraShaker at run-time set UseDefaultCameraShaker to false before entering play."); + } + else + { + ChangeCameraShakers(_cameraShaker, shaker, true); + } + } + /// + /// True to create a parent object and attach children to it. The parent object will be shaken instead of each individual canvas child. If your direct children move at all this value must be true. Setting value as false may incur extra cost as well. + /// + [Tooltip("True to create a parent object and attach children to it. The parent object will be shaken instead of each individual canvas child. If your direct children move at all this value must be true. Setting value as false may incur extra cost as well.")] + [Space(10)] + [SerializeField] + private bool _encapsulateChildren = true; + /// + /// True to watch for additional children to encapsulate. This may be false if you do not add direct children to this canvas at runtime. + /// + [Tooltip("True to watch for additional children to encapsulate. This may be false if you do not add direct children to this canvas at runtime.")] + [SerializeField] + private bool _monitorEncapsulation = false; + /// + /// Positional shakes are multiplied by this value. Lower values will result in a lower positional magnitude. + /// + [Tooltip("Positional shakes are multiplied by this value. Lower values will result in a lower positional magnitude.")] + [SerializeField] + private float _positionalMultiplier = 1f; + /// + /// Rotational shakes are multiplied by this value. Lower values will result in lower ritational magnitude. + /// + [Tooltip("Rotational shakes are multiplied by this value. Lower values will result in lower rotational magnitude.")] + [SerializeField] + private float _rotationalMultiplier = 1f; + /// + /// True to randomly change influence direction when shaking starts. + /// + [Tooltip("True to randomly change influence direction when shaking starts.")] + [Space(10)] + [SerializeField] + private bool _randomizeDirections = true; + #endregion + + #region Private. + /// + /// Transform children are being attached to. This only exist if EncapsulateChildren is true. + /// + private RectTransform _parentRect; + /// + /// Start values for children of this transform. + /// + private Dictionary _childrenStartValues = new Dictionary(); + /// + /// Next time to clean ChildrenStartValues. + /// + private float _nextCleanStartValuesTime; + /// + /// Current camera shaker this canvas is subscribed to. + /// + private CameraShaker _currentCameraShaker = null; + /// + /// ObjectShaker used for this object. May be null if not using ObjectShaker type. + /// + private ObjectShaker _objectShaker = null; + /// + /// Direction to multiply position by when shaking starts. + /// + private float _randomPositionMultiplier = 1f; + /// + /// Direction to multiply rotation by when shaking starts. + /// + private float _randomRotationMultiplier = 1f; + #endregion + + private void Awake() + { + FirstInitialize(); + } + + private void OnEnable() + { + //Subscribe. + ChangeSubscription(true); + } + + private void Update() + { + /* If fails to encapsulate new children then remove script. + * Something unrecoverable went wrong. */ + if (_monitorEncapsulation && !EncapsulateChildren(false)) + { + DestroyImmediate(this); + return; + } + + CheckRemoveNullStartValues(); + } + + private void OnDisable() + { + //Unsubscribe. + ChangeSubscription(false); + + ResetOffsets(); + } + + /// + /// Initializes this script for use. Should only be cmpleted once. + /// + private void FirstInitialize() + { + //If using ObjectShaker type. + if (base.ShakerType == ShakerTypes.ObjectShaker) + { + _objectShaker = GetComponentInParent(); + if (_objectShaker == null) + { + Debug.LogError("ObjectShaker could not be found on or above object " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + } + + Canvas canvas = GetComponent(); + //Canvas null. + if (canvas == null) + { + if (Debug.isDebugBuild) Debug.LogError("Canvas does not exist on this object, this script has been destroyed."); + DestroyImmediate(this); + return; + } + //World space canvases already shake. + if (canvas.renderMode == RenderMode.WorldSpace) + { + if (Debug.isDebugBuild) Debug.LogError("ShakeableCanvas is not needed for Canvas RenderMode.WorldSpace"); + DestroyImmediate(this); + return; + } + //Camera space canvases don't need this script when using matrix on the CameraShaker. + if (canvas.renderMode == RenderMode.ScreenSpaceCamera) + { + //Camera not set. + if (canvas.worldCamera == null) + { + if (Debug.isDebugBuild) Debug.LogWarning("WorldCamera is not set for this canvas. Cannot determine if this script is needed. If the CameraShaker for your intended WorldCamera is Matrix this script is not needed."); + } + //Camera known. + else + { + CameraShaker shaker = canvas.worldCamera.GetComponent(); + if (shaker == null) + { + if (Debug.isDebugBuild) Debug.LogWarning("CameraShaker not found on WorldCamera. If the CameraShaker for your intended WorldCamera will use Matrix this script is not needed."); + } + else + { + if (shaker.ShakeTechnique == CameraShaker.ShakeTechniques.Matrix) + if (Debug.isDebugBuild) Debug.LogWarning("CameraShaker technique on WorldCamera is set to Matrix. This script is not needed for Matrix shake techniques. Ignore this message if you intend to change the ShakeTechnique."); + } + } + } + + //Subscribe to the CameraShaker if not using default. + if (!_useDefaultCameraShaker) + ChangeCameraShakers(null, _cameraShaker, false); + + //Encapsulation is enabled. + if (_encapsulateChildren) + { + //Try to encapsulate children. + if (!EncapsulateChildren(true)) + { + DestroyImmediate(this); + return; + } + } + //Encapsulation is disabled, be sure to disable monitor as well. + else + { + _monitorEncapsulation = false; + } + } + + /// + /// Changes which CameraShaker to use when not using defualt CameraShaker. + /// + /// + /// + private void ChangeCameraShakers(CameraShaker oldShaker, CameraShaker newShaker, bool resetOffsets = true) + { + //No change. + if (oldShaker == newShaker) + return; + + _currentCameraShaker = newShaker; + + //Since canvas subs and unsubs using OnEnable/Disable only change subscriptions if enabled. + if (gameObject.activeInHierarchy) + { + //Offsets are automatically reset OnDisable, so only need to reset if active. + if (resetOffsets) + ResetOffsets(); + + ChangeCameraShakerSubscription(oldShaker, false); + ChangeCameraShakerSubscription(newShaker, true); + } + } + + /// + /// Encapsulate children transforms into a newly created transform. + /// + private bool EncapsulateChildren(bool initialization) + { + if (!_encapsulateChildren) + return true; + + //If being run for the first time. + if (initialization) + { + GameObject obj = new GameObject(); + //Shouldn't happen but just incase. + if (obj == null) + { + if (Debug.isDebugBuild) Debug.LogError("Encapsulation failed because parent object could not be created."); + return false; + } + //Add a rect since this is a UI object. + _parentRect = obj.AddComponent(); + //Shouldn't happen but just incase. + if (_parentRect == null) + { + if (Debug.isDebugBuild) Debug.LogError("Encapsulation failed because parentRect could not be created."); + return false; + } + + //Setup parent rect to be full screen/stretched. + _parentRect.name = "ShakableParentRect"; + _parentRect.SetParent(transform); + _parentRect.anchorMin = new Vector2(0f, 0f); + _parentRect.anchorMax = new Vector2(1f, 1f); + _parentRect.offsetMin = Vector2.zero; + _parentRect.offsetMax = Vector2.zero; + _parentRect.localScale = Vector3.one; + _parentRect.localPosition = Vector3.zero; + _parentRect.localEulerAngles = Vector3.zero; + } + + //If the parent rect somehow got destroyed, shouldn't be possible. + if (_parentRect == null) + return false; + + int childCount = transform.childCount; + + /* If parent rect is a child of this, and child count is 1 then no reason to go + * further as there are no other children. This isn't considered a failure. */ + if (_parentRect.parent == transform && childCount == 1) + return true; + + /* Since the child collection of this transform will change + * as children are re-ordered a local copy is set first + * and navigated to ensure all children objects are set + * properly. */ + + Transform[] children = new Transform[childCount]; + for (int i = 0; i < childCount; i++) + children[i] = transform.GetChild(i); + + //Child to rect parent if not rect parent. + for (int i = 0; i < childCount; i++) + { + if (children[i] != _parentRect.transform && children[i].gameObject.activeInHierarchy) + children[i].SetParent(_parentRect, false); + } + + return true; + } + + #region ShakeUpdates. + /// + /// Received when shaking starts when previously stopped on all Shakers. + /// + private void OnShakingStarted() + { + RandomizeDirections(); + } + /// + /// Received when shaking starts when previously stopped on all Shakers. + /// + private void CameraShaker_OnShakingStarted(CameraShaker obj) + { + OnShakingStarted(); + } + /// + /// Received when shaking starts when previously stopped on ObjectShaker. + /// + private void ObjectShaker_OnShakingStarted(ObjectShaker obj) + { + OnShakingStarted(); + } + /// + /// Received every update a shake occurs. + /// + /// + private void CameraShaker_OnShakeUpdate(CameraShaker shaker, ShakeUpdate obj) + { + ShakeUpdateOccurred(obj); + } + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void ObjectShaker_OnShakeUpdate(ObjectShaker arg1, ShakeUpdate arg2) + { + ShakeUpdateOccurred(arg2); + } + /// + /// Called when a shake update occurs, wether it be from CameraShaker or ObjectShaker. + /// + /// + private void ShakeUpdateOccurred(ShakeUpdate obj) + { + //No reason to shake if not active in scene. + if (!gameObject.activeInHierarchy) + return; + + Vector3 positionalOffset = obj.Canvases.Position * _positionalMultiplier; + Vector3 rotationalOffset = obj.Canvases.Rotation * _rotationalMultiplier; + + //If using an encapsulation. + if (_parentRect != null) + { + _parentRect.localPosition = positionalOffset; + _parentRect.localEulerAngles = rotationalOffset; + } + //Not using encapsulation. + else + { + foreach (Transform t in transform) + { + Vector3 pos; + Vector3 rot; + StartValues startValues; + + //If already in dictionary. + if (_childrenStartValues.TryGetValue(t, out startValues)) + { + pos = startValues.Position + positionalOffset; + rot = startValues.Rotation + rotationalOffset; + } + //Not yet in dictionary. + else + { + _childrenStartValues.Add(t, new StartValues(t.localPosition, t.localEulerAngles)); + pos = t.localPosition + positionalOffset; + rot = t.localEulerAngles + rotationalOffset; + } + + t.localPosition = pos; + t.localEulerAngles = rot; + } + } + } + #endregion + + /// + /// Updates random multipliers for shakable. + /// + private void RandomizeDirections() + { + if (!_randomizeDirections) + return; + + _randomPositionMultiplier = Floats.RandomlyFlip(_randomPositionMultiplier); + _randomRotationMultiplier = Floats.RandomlyFlip(_randomRotationMultiplier); + } + + /// + /// Resets the offsets on children. + /// + private void ResetOffsets() + { + //If using an encapsulation. + if (_parentRect != null) + { + _parentRect.localPosition = Vector3.zero; + _parentRect.localEulerAngles = Vector3.zero; + } + //Not using encapsulation. + else + { + foreach (KeyValuePair dict in _childrenStartValues) + { + if (dict.Key != null) + { + dict.Key.localPosition = dict.Value.Position; + dict.Key.localEulerAngles = dict.Value.Rotation; + } + } + } + } + + /// + /// Periodically removes null values from ChildrenStartValues. Should be called every frame. + /// + private void CheckRemoveNullStartValues() + { + //ParentRect is immune to this behaviour, not needed if using parent rect. + if (_parentRect != null) + return; + + //Only clean every 30 seconds. More than enough to prevent a memory leak. + if (Time.unscaledTime < _nextCleanStartValuesTime) + return; + _nextCleanStartValuesTime = Time.unscaledTime + 30f; + + //Build a collection of null keys then remove them from the dictionary after. + List keysToRemove = new List(); + foreach (KeyValuePair dict in _childrenStartValues) + { + if (dict.Key == null) + keysToRemove.Add(dict.Key); + } + for (int i = 0; i < keysToRemove.Count; i++) + { + try + { + _childrenStartValues.Remove(keysToRemove[i]); + } + catch { } + } + } + + #region Change subscriptions. + /// + /// Changes the subscription to a camera shaker. + /// + /// + /// + private void ChangeCameraShakerSubscription(CameraShaker shaker, bool subscribe) + { + if (shaker == null) + return; + + if (subscribe) + { + shaker.OnShakeUpdate += CameraShaker_OnShakeUpdate; + shaker.OnShakingStarted += CameraShaker_OnShakingStarted; + } + else + { + shaker.OnShakeUpdate -= CameraShaker_OnShakeUpdate; + shaker.OnShakingStarted -= CameraShaker_OnShakingStarted; + } + } + /// + /// Changes the subscription to the default camera shaker by using CameraShakerHandler. + /// + /// + private void ChangeDefaultCameraShakerSubscription(bool subscribe) + { + if (subscribe) + { + CameraShakerHandler.OnShakeUpdate += CameraShaker_OnShakeUpdate; + CameraShakerHandler.OnShakingStarted += CameraShaker_OnShakingStarted; + } + else + { + CameraShakerHandler.OnShakeUpdate -= CameraShaker_OnShakeUpdate; + CameraShakerHandler.OnShakingStarted -= CameraShaker_OnShakingStarted; + } + } + /// + /// Changes subscriptions based on current settings and shaker type. + /// + /// + private void ChangeSubscription(bool subscribe) + { + //CameraShaker type. + if (base.ShakerType == ShakerTypes.CameraShaker) + { + //If using default camera shaker then subscribe to default on enable. + if (_useDefaultCameraShaker) + ChangeDefaultCameraShakerSubscription(subscribe); + else + ChangeCameraShakerSubscription(_currentCameraShaker, subscribe); + } + //ObjectShaker type. + else if (base.ShakerType == ShakerTypes.ObjectShaker) + { + if (_objectShaker != null) + { + if (subscribe) + { + _objectShaker.OnShakeUpdate += ObjectShaker_OnShakeUpdate; + _objectShaker.OnShakingStarted += ObjectShaker_OnShakingStarted; + } + else + { + _objectShaker.OnShakeUpdate -= ObjectShaker_OnShakeUpdate; + _objectShaker.OnShakingStarted -= ObjectShaker_OnShakingStarted; + } + } + } + } + #endregion + + } + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs.meta new file mode 100644 index 00000000..0c5c68b9 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 663365fdc7222f84fa76f2a79859e1f5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableCanvas.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs new file mode 100644 index 00000000..ef4eef8f --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs @@ -0,0 +1,366 @@ +using FirstGearGames.Utilities.Maths; +using FirstGearGames.Utilities.Objects; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; + +namespace FirstGearGames.SmoothCameraShaker +{ + + + public class ShakableRigidbody : ShakableBase + { + #region Types. + /// + /// Data about how to update rigidbodies with shakes. + /// + private class RigidbodyData + { + public RigidbodyData(Rigidbody rb) + { + Rigidbody = rb; + } + + /// + /// Rigidbody on this object. + /// + public readonly Rigidbody Rigidbody; + /// + /// Direction to multiply position by at random intervals. + /// + public float RandomPositionMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomPositionMultiplier. + /// + /// + public void SetRandomPositionMultiplier(float value) + { + RandomPositionMultiplier = value; + } + /// + /// Direction to multiply rotation by at random intervals. + /// + public float RandomRotationMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomRotationMultiplier. + /// + /// + public void SetRandomRotationMultiplier(float value) + { + RandomRotationMultiplier = value; + } + /// + /// Next time to update randomMultipliers. + /// + public float NextRandomizeTime { get; private set; } = -1f; + /// + /// Sets the value for NextRandomizeTime. + /// + /// + public void SetNextRandomizeTime(float value) + { + NextRandomizeTime = value; + } + /// + /// Positional values last time shake offsets were received. + /// + public Vector3 LastPositional { get; private set; } = Vector3.zero; + /// + /// Sets the value for LastPositional. + /// + /// + public void SetLastPositional(Vector3 value) + { + LastPositional = value; + } + /// + /// Rotational values last time shake offsets were received. + /// + public Vector3 LastRotational { get; private set; } = Vector3.zero; + /// + /// Sets the value for LastRotational. + /// + /// + public void SetLastRotational(Vector3 value) + { + LastRotational = value; + } + } + #endregion + + #region Serialized. + /// + /// Multiplier to apply towards position. + /// + [Tooltip("Multiplier to apply towards position.")] + [Space(10f)] + [SerializeField] + [FormerlySerializedAs("_positionMultiplier")] + private float _positionalMultiplier = 1f; + /// + /// Multipplier to apply towards rotation. + /// + [Tooltip("Multipplier to apply towards rotation.")] + [SerializeField] + [FormerlySerializedAs("_rotationMultiplier")] + private float _rotationalMultiplier = 1f; + /// + /// Only shake when in view of a camera. + /// + [Tooltip("Only shake when in view of a camera.")] + [Space(10f)] + [SerializeField] + private bool _requireInView = true; + /// + /// True to find rigidbodies in children too. This allows you to use one ShakableRigidbody on the parent if all children rigidbodies should shake as well. + /// + [Tooltip("True to find rigidbodies in children too. This allows you to use one ShakableRigidbody on the parent if all children rigidbodies should shake as well.")] + [SerializeField] + private bool _includeChildren = false; + /// + /// True to ignore the transform this component resides, and only shake children. + /// + [Tooltip("True to ignore the transform this component resides, and only shake children.")] + [SerializeField] + private bool _ignoreSelf = false; + /// + /// True to also find inactive children. + /// + [Tooltip("True to also find inactive children.")] + [SerializeField] + private bool _includeInactive = false; + /// + /// True to convert forces to local space before applying. + /// + [Tooltip("True to convert forces to local space before applying.")] + [Space(10f)] + [SerializeField] + private bool _localizeShake = false; + /// + /// True to randomly change force direction. Best used with bulk objects so they do not all shake the same direction. + /// + [Tooltip("True to randomly change force direction. Best used with bulk objects so they do not all shake the same direction.")] + [SerializeField] + private bool _randomizeDirections = true; + #endregion + + #region Private. + /// + /// Data about each rigidbody to shake. + /// + private RigidbodyData[] _rbData; + /// + /// True if currently in view. + /// + private bool _inView = false; + /// + /// ObjectShaker used for this object. May be null if not using ObjectShaker type. + /// + private ObjectShaker _objectShaker = null; + #endregion + + private void Awake() + { + FirstInitialize(); + } + + private void OnEnable() + { + if (_requireInView && _inView) + ChangeSubscription(true); + else if (!_requireInView) + ChangeSubscription(true); + } + + private void OnDisable() + { + if (_requireInView && _inView) + ChangeSubscription(false); + else if (!_requireInView) + ChangeSubscription(false); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + private void FirstInitialize() + { + //If using ObjectShaker type. + if (base.ShakerType == ShakerTypes.ObjectShaker) + { + _objectShaker = GetComponentInParent(); + if (_objectShaker == null) + { + Debug.LogError("ObjectShaker could not be found on or above object " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + } + + //If not including children. + if (!_includeChildren) + { + Rigidbody rb = GetComponent(); + if (rb == null) + { + Debug.LogWarning("Rigidbody is empty on " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + + _rbData = new RigidbodyData[1]; + _rbData[0] = new RigidbodyData(rb); + } + //Include children. + else + { + List rbs = new List(); + Transforms.GetComponentsInChildren(transform, rbs, !_ignoreSelf, _includeInactive); + if (rbs.Count == 0) + { + Debug.LogWarning("No rigidbodies exist on parent or children of " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + + _rbData = new RigidbodyData[rbs.Count]; + for (int i = 0; i < rbs.Count; i++) + _rbData[i] = new RigidbodyData(rbs[i]); + } + + /* Try to find a renderer. One is required on this object for OnBecameVisible and OnBecameInvisible + * to call. If a renderer doesn't exist then add a low cost renderer. */ + if (_requireInView) + { + if (GetComponent() == null) + { + if (Debug.isDebugBuild) + Debug.Log("Renderer not found on object. Adding renderer so RequireInView works properly. Added renderer may be smaller than actual object, and sometimes may not be detected as in view. To resolve add your own renderer to the object this script resides.", this); + SpriteRenderer r = gameObject.AddComponent(); + r.sprite = null; + } + } + } + + #region OnShakeUpdate. + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void CameraShakerHandler_OnShakeFixedUpdate(ShakeUpdate obj) + { + ShakeUpdateOccurred(obj); + } + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void ObjectShaker_OnShakeFixedUpdate(ObjectShaker arg1, ShakeUpdate arg2) + { + ShakeUpdateOccurred(arg2); + } + /// + /// Called when a shake update occurs, wether it be from CameraShaker or ObjectShaker. + /// + /// + private void ShakeUpdateOccurred(ShakeUpdate obj) + { + if (!_inView && _requireInView) + return; + + for (int i = 0; i < _rbData.Length; i++) + { +#if UNITY_EDITOR + //Rigidbody can go null when exiting playmode, and camerashaker may try to send one last update when exiting play mode. + if (_rbData[i].Rigidbody == null) + return; +#endif + //Check if random multipliers should be updated. + CheckRandomizeRandomers(_rbData[i]); + + //Calculate new offsets. + Vector3 newPos = obj.Objects.Position * _rbData[i].RandomPositionMultiplier * _positionalMultiplier; + Vector3 newRot = obj.Objects.Rotation * _rbData[i].RandomRotationMultiplier * _rotationalMultiplier; + //If to localize force. + if (_localizeShake) + { + newPos = _rbData[i].Rigidbody.transform.TransformDirection(newPos); + newRot = _rbData[i].Rigidbody.transform.TransformDirection(newRot); + } + + //Apply force. + _rbData[i].Rigidbody.AddForce(newPos - _rbData[i].LastPositional, ForceMode.Impulse); + _rbData[i].Rigidbody.AddTorque(newRot - _rbData[i].LastRotational, ForceMode.Impulse); + //Set last values. + _rbData[i].SetLastPositional(newPos); + _rbData[i].SetLastRotational(newRot); + } + } + #endregion + + /// + /// Updates random multipliers if they are in need. What a fun name. + /// + private void CheckRandomizeRandomers(RigidbodyData data) + { + if (!_randomizeDirections) + return; + + //Becomes true if enough time has passed to make new random multipliers. + bool newRandomize = (Time.time > data.NextRandomizeTime); + if (newRandomize) + data.SetNextRandomizeTime(Time.time + Random.Range(3f, 7f)); + + /* If new random multipliers or velocity is zero then randomize multipliers. */ + if (newRandomize || data.Rigidbody.linearVelocity == Vector3.zero) + data.SetRandomPositionMultiplier(Floats.RandomlyFlip(data.RandomPositionMultiplier)); + if (newRandomize || data.Rigidbody.angularVelocity == Vector3.zero) + data.SetRandomRotationMultiplier(Floats.RandomlyFlip(data.RandomRotationMultiplier)); + } + + /// + /// Received when visible in any camera. + /// + private void OnBecameVisible() + { + _inView = true; + if (_requireInView) + ChangeSubscription(true); + } + /// + /// Received when no longer visible in any camera. + /// + private void OnBecameInvisible() + { + _inView = false; + if (_requireInView) + ChangeSubscription(false); + } + + /// + /// Changes the subscription to the camera shaker. + /// + /// + private void ChangeSubscription(bool subscribe) + { + //CameraShaker type. + if (base.ShakerType == ShakerTypes.CameraShaker) + { + if (subscribe) + CameraShakerHandler.OnAllShakeFixedUpdate += CameraShakerHandler_OnShakeFixedUpdate; + else + CameraShakerHandler.OnAllShakeFixedUpdate -= CameraShakerHandler_OnShakeFixedUpdate; + } + //ObjectShaker type. + else if (base.ShakerType == ShakerTypes.ObjectShaker) + { + if (_objectShaker != null) + { + if (subscribe) + _objectShaker.OnShakeFixedUpdate += ObjectShaker_OnShakeFixedUpdate; + else + _objectShaker.OnShakeFixedUpdate -= ObjectShaker_OnShakeFixedUpdate; + } + } + } + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs.meta new file mode 100644 index 00000000..934c28d9 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 5901f943dff13b94693d37f9edb0beb8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs new file mode 100644 index 00000000..45c71da4 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs @@ -0,0 +1,362 @@ +using FirstGearGames.Utilities.Maths; +using FirstGearGames.Utilities.Objects; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; + +namespace FirstGearGames.SmoothCameraShaker +{ + + + public class ShakableRigidbody2D : ShakableBase + { + #region Types. + /// + /// Data about how to update rigidbodies with shakes. + /// + private class RigidbodyData + { + public RigidbodyData(Rigidbody2D rb) + { + Rigidbody = rb; + } + + /// + /// Rigidbody on this object. + /// + public readonly Rigidbody2D Rigidbody; + /// + /// Direction to multiply position by at random intervals. + /// + public float RandomPositionMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomPositionMultiplier. + /// + /// + public void SetRandomPositionMultiplier(float value) + { + RandomPositionMultiplier = value; + } + /// + /// Direction to multiply rotation by at random intervals. + /// + public float RandomRotationMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomRotationMultiplier. + /// + /// + public void SetRandomRotationMultiplier(float value) + { + RandomRotationMultiplier = value; + } + /// + /// Next time to update randomMultipliers. + /// + public float NextRandomizeTime { get; private set; } = -1f; + /// + /// Sets the value for NextRandomizeTime. + /// + /// + public void SetNextRandomizeTime(float value) + { + NextRandomizeTime = value; + } + /// + /// Positional values last time shake offsets were received. + /// + public Vector2 LastPositional { get; private set; } = Vector2.zero; + /// + /// Sets the value for LastPositional. + /// + /// + public void SetLastPositional(Vector2 value) + { + LastPositional = value; + } + /// + /// Rotational values last time shake offsets were received. + /// + public float LastRotational { get; private set; } = 0f; + /// + /// Sets the value for LastRotational. + /// + /// + public void SetLastRotational(float value) + { + LastRotational = value; + } + } + #endregion + + #region Serialized. + /// + /// Multiplier to apply towards position. + /// + [Tooltip("Multiplier to apply towards position.")] + [Space(10f)] + [SerializeField] + [FormerlySerializedAs("_positionMultiplier")] + private float _positionalMultiplier = 1f; + /// + /// Multipplier to apply towards rotation. + /// + [Tooltip("Multipplier to apply towards rotation.")] + [SerializeField] + [FormerlySerializedAs("_rotationMultiplier")] + private float _rotationalMultiplier = 1f; + /// + /// Only shake when in view of a camera. + /// + [Tooltip("Only shake when in view of a camera.")] + [Space(10f)] + [SerializeField] + private bool _requireInView = true; + /// + /// True to find rigidbodies in children too. This allows you to use one ShakableRigidbody on the parent if all children rigidbodies should shake as well. + /// + [Tooltip("True to find rigidbodies in children too. This allows you to use one ShakableRigidbody on the parent if all children rigidbodies should shake as well.")] + [SerializeField] + private bool _includeChildren = false; + /// + /// True to ignore the transform this component resides, and only shake children. + /// + [Tooltip("True to ignore the transform this component resides, and only shake children.")] + [SerializeField] + private bool _ignoreSelf = false; + /// + /// True to also find inactive children. + /// + [Tooltip("True to also find inactive children.")] + [SerializeField] + private bool _includeInactive = false; + /// + /// True to convert forces to local space before applying. + /// + [Tooltip("True to convert forces to local space before applying.")] + [Space(10f)] + [SerializeField] + private bool _localizeShake = false; + /// + /// True to randomly change force direction. Best used with bulk objects so they do not all shake the same direction. + /// + [Tooltip("True to randomly change force direction. Best used with bulk objects so they do not all shake the same direction.")] + [SerializeField] + private bool _randomizeDirections = true; + #endregion + + #region Private. + /// + /// Data about each rigidbody to shake. + /// + private RigidbodyData[] _rbData; + /// + /// True if currently in view. + /// + private bool _inView = false; + /// + /// ObjectShaker used for this object. May be null if not using ObjectShaker type. + /// + private ObjectShaker _objectShaker = null; + #endregion + + private void Awake() + { + FirstInitialize(); + } + + private void OnEnable() + { + if (_requireInView && _inView) + ChangeSubscription(true); + else if (!_requireInView) + ChangeSubscription(true); + } + private void OnDisable() + { + if (_requireInView && _inView) + ChangeSubscription(false); + else if (!_requireInView) + ChangeSubscription(false); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + private void FirstInitialize() + { + //If using ObjectShaker type. + if (base.ShakerType == ShakerTypes.ObjectShaker) + { + _objectShaker = GetComponentInParent(); + if (_objectShaker == null) + { + Debug.LogError("ObjectShaker could not be found on or above object " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + } + + //If not including children. + if (!_includeChildren) + { + Rigidbody2D rb = GetComponent(); + if (rb == null) + { + Debug.LogWarning("Rigidbody is empty on " + gameObject.name + ". Shakable will not function.", this); + DestroyImmediate(this); + return; + } + + _rbData = new RigidbodyData[1]; + _rbData[0] = new RigidbodyData(rb); + } + //Include children. + else + { + List rbs = new List(); + Transforms.GetComponentsInChildren(transform, rbs, !_ignoreSelf, _includeInactive); + if (rbs.Count == 0) + { + Debug.LogWarning("No rigidbodies exist on parent or children of " + gameObject.name + ". Shakable will not function.", this); + DestroyImmediate(this); + return; + } + + _rbData = new RigidbodyData[rbs.Count]; + for (int i = 0; i < rbs.Count; i++) + _rbData[i] = new RigidbodyData(rbs[i]); + } + + /* Try to find a renderer. One is required on this object for OnBecameVisible and OnBecameInvisible + * to call. If a renderer doesn't exist then add a low cost renderer. */ + if (_requireInView) + { + if (GetComponent() == null) + { + if (Debug.isDebugBuild) + Debug.Log("Renderer not found on object. Adding renderer so RequireInView works properly. Added renderer may be smaller than actual object, and sometimes may not be detected as in view. To resolve add your own renderer to the object this script resides.", this); + SpriteRenderer r = gameObject.AddComponent(); + r.sprite = null; + } + } + } + + #region OnShakeUpdates. + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void CameraShakerHandler_OnShakeFixedUpdate(ShakeUpdate obj) + { + ShakeUpdateOccurred(obj); + } + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void ObjectShaker_OnShakeFixedUpdate(ObjectShaker arg1, ShakeUpdate arg2) + { + ShakeUpdateOccurred(arg2); + } + /// + /// Called when a shake update occurs, wether it be from CameraShaker or ObjectShaker. + /// + /// + private void ShakeUpdateOccurred(ShakeUpdate obj) + { + if (!_inView && _requireInView) + return; + + for (int i = 0; i < _rbData.Length; i++) + { +#if UNITY_EDITOR + //Rigidbody can go null when exiting playmode, and camerashaker may try to send one last update when exiting play mode. + if (_rbData[i].Rigidbody == null) + return; +#endif + //Check if random multipliers should be updated. + CheckRandomizeRandomers(_rbData[i]); + + //Calculate new offsets. + Vector2 newPos = obj.Objects.Position * _rbData[i].RandomPositionMultiplier * _positionalMultiplier; + float newRot = obj.Objects.Rotation.z * _rbData[i].RandomRotationMultiplier * _rotationalMultiplier; + //If to localize force. + if (_localizeShake) + newPos = _rbData[i].Rigidbody.transform.TransformDirection(newPos); + + //Apply force. + _rbData[i].Rigidbody.AddForce(newPos - _rbData[i].LastPositional, ForceMode2D.Impulse); + _rbData[i].Rigidbody.AddTorque(newRot - _rbData[i].LastRotational, ForceMode2D.Impulse); + //Set last values. + _rbData[i].SetLastPositional(newPos); + _rbData[i].SetLastRotational(newRot); + } + } + #endregion + + /// + /// Updates random multipliers if they are in need. What a fun name. + /// + private void CheckRandomizeRandomers(RigidbodyData data) + { + if (!_randomizeDirections) + return; + + //Becomes true if enough time has passed to make new random multipliers. + bool newRandomize = (Time.time > data.NextRandomizeTime); + if (newRandomize) + data.SetNextRandomizeTime(Time.time + Random.Range(3f, 7f)); + + /* If new random multipliers or velocity is zero then randomize multipliers. */ + if (newRandomize || data.Rigidbody.linearVelocity == Vector2.zero) + data.SetRandomPositionMultiplier(Floats.RandomlyFlip(data.RandomPositionMultiplier)); + if (newRandomize || data.Rigidbody.angularVelocity == 0f) + data.SetRandomRotationMultiplier(Floats.RandomlyFlip(data.RandomRotationMultiplier)); + } + + /// + /// Received when visible in any camera. + /// + private void OnBecameVisible() + { + _inView = true; + if (_requireInView) + ChangeSubscription(true); + } + /// + /// Received when no longer visible in any camera. + /// + private void OnBecameInvisible() + { + _inView = false; + if (_requireInView) + ChangeSubscription(false); + } + + /// + /// Changes the subscription to the camera shaker. + /// + /// + private void ChangeSubscription(bool subscribe) + { + //CameraShaker type. + if (base.ShakerType == ShakerTypes.CameraShaker) + { + if (subscribe) + CameraShakerHandler.OnAllShakeFixedUpdate += CameraShakerHandler_OnShakeFixedUpdate; + else + CameraShakerHandler.OnAllShakeFixedUpdate -= CameraShakerHandler_OnShakeFixedUpdate; + } + //ObjectShaker type. + else if (base.ShakerType == ShakerTypes.ObjectShaker) + { + if (_objectShaker != null) + { + if (subscribe) + _objectShaker.OnShakeFixedUpdate += ObjectShaker_OnShakeFixedUpdate; + else + _objectShaker.OnShakeFixedUpdate -= ObjectShaker_OnShakeFixedUpdate; + } + } + } + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs.meta new file mode 100644 index 00000000..cac34ffd --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 58b3fda749163f142b26ea94be1da637 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableRigidbody2D.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs new file mode 100644 index 00000000..11fecd63 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs @@ -0,0 +1,391 @@ +using FirstGearGames.Utilities.Maths; +using FirstGearGames.Utilities.Objects; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; + +namespace FirstGearGames.SmoothCameraShaker +{ + + + public class ShakableTransform : ShakableBase + { + #region Types. + /// + /// Data about how to update rigidbodies with shakes. + /// + private class TransformData + { + public TransformData(Transform t) + { + Transform = t; + } + + /// + /// Transform on this object. + /// + public readonly Transform Transform; + /// + /// Direction to multiply position by when shaking starts. + /// + public float RandomPositionMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomPositionMultiplier. + /// + /// + public void SetRandomPositionMultiplier(float value) + { + RandomPositionMultiplier = value; + } + /// + /// Direction to multiply rotation by when shaking starts. + /// + public float RandomRotationMultiplier { get; private set; } = 1f; + /// + /// Sets the value for RandomRotationMultiplier. + /// + /// + public void SetRandomRotationMultiplier(float value) + { + RandomRotationMultiplier = value; + } + /// + /// Positional values last time shake offsets were received. + /// + public Vector3 LastPositional { get; private set; } = Vector3.zero; + /// + /// Sets the value for LastPositional. + /// + /// + public void SetLastPositional(Vector3 value) + { + LastPositional = value; + } + /// + /// Rotational values last time shake offsets were received. + /// + public Vector3 LastRotational { get; private set; } = Vector3.zero; + /// + /// Sets the value for LastRotational. + /// + /// + public void SetLastRotational(Vector3 value) + { + LastRotational = value; + } + } + #endregion + + #region Serialized. + /// + /// Multiplier to apply towards position. + /// + [Tooltip("Multiplier to apply towards position.")] + [Space(10f)] + [SerializeField] + + private float _positionalMultiplier = 1f; + /// + /// Multipplier to apply towards rotation. + /// + [Tooltip("Multipplier to apply towards rotation.")] + [SerializeField] + [FormerlySerializedAs("_rotationMultiplier")] + private float _rotationalMultiplier = 1f; + /// + /// Only shake when in view of a camera. + /// + [Tooltip("Only shake when in view of a camera.")] + [Space(10f)] + [SerializeField] + private bool _requireInView = true; + /// + /// True to find transforms in children too. This allows you to use one ShakableTransform on the parent if all children transforms should shake as well. + /// + [Tooltip("True to find transforms in children too. This allows you to use one ShakableTransform on the parent if all children transforms should shake as well.")] + [SerializeField] + private bool _includeChildren = false; + /// + /// True to ignore the transform this component resides, and only shake children. + /// + [Tooltip("True to ignore the transform this component resides, and only shake children.")] + [SerializeField] + private bool _ignoreSelf = false; + /// + /// True to also find inactive children. + /// + [Tooltip("True to also find inactive children.")] + [SerializeField] + private bool _includeInactive = false; + /// + /// True to convert forces to influence space before applying. + /// + [Tooltip("True to convert influence to local space before applying.")] + [Space(10f)] + [SerializeField] + private bool _localizeShake = false; + /// + /// True to randomly change influence direction. Best used with bulk objects so they do not all shake the same direction. + /// + [Tooltip("True to randomly change influence direction. Best used with bulk objects so they do not all shake the same direction.")] + [SerializeField] + private bool _randomizeDirections = true; + #endregion + + #region Private. + /// + /// Data about each rigidbody to shake. + /// + private TransformData[] _tData; + /// + /// True if currently in view. + /// + private bool _inView = false; + /// + /// ObjectShaker used for this object. May be null if not using ObjectShaker type. + /// + private ObjectShaker _objectShaker = null; + #endregion + + protected virtual void Awake() + { + FirstInitialize(); + } + + protected virtual void OnEnable() + { + if (_requireInView && _inView) + ChangeSubscription(true); + else if (!_requireInView) + ChangeSubscription(true); + } + + protected virtual void OnDisable() + { + if (_requireInView && _inView) + ChangeSubscription(false); + else if (!_requireInView) + ChangeSubscription(false); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + private void FirstInitialize() + { + //If using ObjectShaker type. + if (base.ShakerType == ShakerTypes.ObjectShaker) + { + _objectShaker = GetComponentInParent(); + if (_objectShaker == null) + { + Debug.LogError("ObjectShaker could not be found on or above object " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + } + + //If not including children. + if (!_includeChildren) + { + Transform t = transform; + if (t == null) + { + Debug.LogWarning("Transform is empty on " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + + _tData = new TransformData[1]; + _tData[0] = new TransformData(t); + } + //Include children. + else + { + List ts = new List(); + Transforms.GetComponentsInChildren(transform, ts, !_ignoreSelf,_includeInactive); + if (ts.Count == 0) + { + Debug.LogWarning("No transforms exist on parent or children of " + gameObject.name + ". Shakable will be destroyed.", this); + DestroyImmediate(this); + return; + } + + _tData = new TransformData[ts.Count]; + for (int i = 0; i < ts.Count; i++) + _tData[i] = new TransformData(ts[i]); + } + + /* Try to find a renderer. One is required on this object for OnBecameVisible and OnBecameInvisible + * to call. If a renderer doesn't exist then add a low cost renderer. */ + if (_requireInView) + { + if (GetComponent() == null) + { + if (Debug.isDebugBuild) + Debug.Log("Renderer not found on object. Adding renderer so RequireInView works properly. Added renderer may be smaller than actual object, and sometimes may not be detected as in view. To resolve add your own renderer to the object this script resides.", this); + SpriteRenderer r = gameObject.AddComponent(); + r.sprite = null; + } + } + } + + #region OnShakeUpdate. + /// + /// Received when shaking starts when previously stopped on all Shakers. + /// + private void CameraShakerHandler_OnAllShakingStarted() + { + RandomizeDirections(); + } + + /// + /// Received when shaking starts when previously stopped on all Shakers. + /// + /// + private void ObjectShaker_OnShakingStarted(ObjectShaker obj) + { + RandomizeDirections(); + } + + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void CameraShakerHandler_OnShakeUpdate(ShakeUpdate obj) + { + ShakeUpdateOccurred(obj); + } + /// + /// Received every fixed update a shake occurs. Contains the shake values from last update. + /// + private void ObjectShaker_OnShakeUpdate(ObjectShaker arg1, ShakeUpdate arg2) + { + ShakeUpdateOccurred(arg2); + } + /// + /// Called when a shake update occurs, wether it be from CameraShaker or ObjectShaker. + /// + /// + private void ShakeUpdateOccurred(ShakeUpdate obj) + { + if (!_inView && _requireInView) + return; + + for (int i = 0; i < _tData.Length; i++) + { +#if UNITY_EDITOR + //Transform can go null when exiting playmode, and shaker may try to send one last update when exiting play mode. + if (_tData[i].Transform == null) + return; +#endif + //Calculate new offsets. + Vector3 newPos = obj.Objects.Position * _tData[i].RandomPositionMultiplier * _positionalMultiplier; + Vector3 newRot = obj.Objects.Rotation * _tData[i].RandomRotationMultiplier * _rotationalMultiplier; + //If to localize force. + if (_localizeShake) + { + newPos = _tData[i].Transform.transform.TransformDirection(newPos); + newRot = _tData[i].Transform.transform.TransformDirection(newRot); + } + + //Apply changes. + _tData[i].Transform.localPosition += (newPos - _tData[i].LastPositional); + _tData[i].Transform.localEulerAngles += (newRot - _tData[i].LastRotational); + //Set last values. + _tData[i].SetLastPositional(newPos); + _tData[i].SetLastRotational(newRot); + } + } + #endregion + + /// + /// Updates random multipliers for all transform datas. + /// + private void RandomizeDirections() + { + if (!_randomizeDirections) + return; + + for (int i = 0; i < _tData.Length; i++) + RandomizeDirections(_tData[i]); + } + /// + /// Updates random multipliers for data. + /// + private void RandomizeDirections(TransformData data) + { + if (!_randomizeDirections) + return; + + data.SetRandomPositionMultiplier(Floats.RandomlyFlip(data.RandomPositionMultiplier)); + data.SetRandomRotationMultiplier(Floats.RandomlyFlip(data.RandomRotationMultiplier)); + } + + /// + /// Received when visible in any camera. + /// + protected virtual void OnBecameVisible() + { + _inView = true; + if (_requireInView) + ChangeSubscription(true); + } + /// + /// Received when no longer visible in any camera. + /// + protected virtual void OnBecameInvisible() + { + _inView = false; + if (_requireInView) + ChangeSubscription(false); + } + + /// + /// Changes the subscription to the camera shaker. + /// + /// + private void ChangeSubscription(bool subscribe) + { + /* Must subscribe to starting so that random directions + * can be reset before a shake begins. */ + + //CameraShaker type. + if (base.ShakerType == ShakerTypes.CameraShaker) + { + if (subscribe) + { + CameraShakerHandler.OnAllShakeUpdate += CameraShakerHandler_OnShakeUpdate; + CameraShakerHandler.OnAllShakingStarted += CameraShakerHandler_OnAllShakingStarted; + } + else + { + CameraShakerHandler.OnAllShakeUpdate -= CameraShakerHandler_OnShakeUpdate; + CameraShakerHandler.OnAllShakingStarted -= CameraShakerHandler_OnAllShakingStarted; + } + } + //ObjectShaker type. + else if (base.ShakerType == ShakerTypes.ObjectShaker) + { + if (_objectShaker != null) + { + if (subscribe) + { + _objectShaker.OnShakeUpdate += ObjectShaker_OnShakeUpdate; + _objectShaker.OnShakingStarted += ObjectShaker_OnShakingStarted; + /* If already shaking then randomize directions. + * This can occur when ObjectShaker has a ShakeOnEnable + * shake and is active before this shakable. */ + if (_objectShaker.Shaking) + RandomizeDirections(); + } + else + { + _objectShaker.OnShakeUpdate -= ObjectShaker_OnShakeUpdate; + _objectShaker.OnShakingStarted -= ObjectShaker_OnShakingStarted; + } + } + } + } + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs.meta new file mode 100644 index 00000000..2c8b13db --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: d9d4107aad3b3544da23b3f86c3f2d0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs new file mode 100644 index 00000000..65e8610c --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs @@ -0,0 +1,14 @@ +namespace FirstGearGames.SmoothCameraShaker +{ + /// + /// ShakableTransform2D is currently the exact same as ShakableTransform. Using inheritance for now should I want to expand upon ShakableTransform2D later. + /// + public class ShakableTransform2D : ShakableTransform + { + protected override void Awake() { base.Awake(); } + protected override void OnEnable() { base.OnEnable(); } + protected override void OnDisable() { base.OnDisable(); } + protected override void OnBecameInvisible() { base.OnBecameInvisible(); } + protected override void OnBecameVisible() { base.OnBecameVisible(); } + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs.meta new file mode 100644 index 00000000..3f639f18 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 1668e20ecaba69547a8a160014c5640b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakables/ShakableTransform2D.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs new file mode 100644 index 00000000..71b18d60 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs @@ -0,0 +1,647 @@ +using FirstGearGames.Utilities.Editors; +using FirstGearGames.Utilities.Maths; +using UnityEngine; +using UnityEngine.Serialization; + +namespace FirstGearGames.SmoothCameraShaker +{ + + [CreateAssetMenu(fileName = "NewCameraShake", menuName = "FirstGearGames/Smooth Camera Shaker/Shake Data", order = 1)] + public class ShakeData : ScriptableObject + { + #region Public. + /* Be sure to add [System.NonSerialized] to public fields + * which should not be serialized. ScriptableObjects have a tendacy + * of serializing fields that aren't explicitly marked as non serialized. */ + + /// + /// True if this data is instanced. + /// + public bool Instanced { get; private set; } + #endregion + + #region Serialized. + /// + /// + /// + [Tooltip("True to use scaled time, false to use unscaled.")] + [SerializeField] + private bool _scaledTime = true; + /// + /// True to use scaled time, false to use unscaled. + /// + public bool ScaledTime + { + get { return _scaledTime; } + private set { _scaledTime = value; } + } + + #region Shakables. + /// + /// + /// + [Tooltip("True to shake cameras.")] + [SerializeField] + private bool _shakeCameras = true; + /// + /// True to shake cameras. + /// + public bool ShakeCameras + { + get { return _shakeCameras; } + private set { _shakeCameras = value; } + } + /// + /// + /// + [Tooltip("True to shake canvases. Canvases must have a ShakableCanvas component attached.")] + [SerializeField] + private bool _shakeCanvases = true; + /// + /// True to shake canvases. Canvases must have a ShakableCanvas component attached. + /// + public bool ShakeCanvases + { + get { return _shakeCanvases; } + private set { _shakeCanvases = value; } + } + /// + /// + /// + [Tooltip("True to shake objects such as rigidbodies. Rigidbodies must have a ShakableRigidbody or ShakableRigidbody2D component attached.")] + [FormerlySerializedAs("_shakeRigidbodies")] + [SerializeField] + private bool _shakeObjects = true; + /// + /// True to shake objects such as rigidbodies. Rigidbodies must have a ShakableRigidbody or ShakableRigidbody2D component attached. + /// + public bool ShakeObjects + { + get { return _shakeObjects; } + private set { _shakeObjects = value; } + } + #endregion + + /// + /// Percentage of a single iteration to perform. Using 1f would be the same as SingleCompletion, where 0.5f would only complete half of a SingleCompletion. + /// + [Tooltip("Percentage of a single iteration to perform. Using 1f would be the same as SingleCompletion, where 0.5f would only complete half of a SingleCompletion.")] + [SerializeField] + private float _iterationPercent = 1f; + /// + /// Percentage of a single iteration to perform. Using 1f would be the same as SingleCompletion, where 0.5f would only complete half of a SingleCompletion. + /// + public float IterationPercent + { + get { return _iterationPercent; } + private set { _iterationPercent = value; } + } + /// + /// + /// + [Tooltip("True to shake until stopped.")] + [SerializeField] + private bool _unlimitedDuration = false; + /// + /// True to shake until stopped. + /// + public bool UnlimitedDuration + { + get { return _unlimitedDuration; } + private set { _unlimitedDuration = value; } + } + /// + /// + /// + [Tooltip("How long the shake will last. If duration is less than fade out and fade in time combined then duration is adjusted to the total of those values.")] + [SerializeField] + private float _totalDuration = 4f; + /// + /// How long the shake will last. If duration is less than fade out and fade in time combined then duration is adjusted to the total of those values. + /// + public float TotalDuration + { + get { return _totalDuration; } + private set { _totalDuration = value; } + } + /// + /// Sets TotalDuration to a value and adjust it if neccesary. + /// + /// + /// True to change unlimited duration based on the new value. + private void ValidateTotalDuration(float value, bool alterUnlimitedDuration) + { + if (alterUnlimitedDuration) + UnlimitedDuration = (value < 0f); + + if (!UnlimitedDuration) + TotalDuration = Mathf.Max(value, FadeInDuration + FadeOutDuration); + else + TotalDuration = -1f; + } + + /// + /// + /// + [Tooltip("How long after the start of the shake until it reaches full magnitude. Used to ease into shakes. Works independently from curves. This value is not in addition to TotalDuration.")] + [SerializeField] + private float _fadeInDuration = 0.5f; + /// + /// How long after the start of the shake until it reaches full magnitude. Used to ease into shakes. Works independently from curves. This value is not in addition to TotalDuration. + /// + public float FadeInDuration + { + get { return _fadeInDuration; } + private set { _fadeInDuration = value; } + } + /// + /// + /// + [Tooltip("How long at the end of the shake to ease out of shake. Works independently from curves. This value is not in addition to TotalDuration.")] + [SerializeField] + private float _fadeOutDuration = 0.5f; + /// + /// How long at the end of the shake to ease out of shake. Works independently from curves. This value is not in addition to TotalDuration. + /// + public float FadeOutDuration + { + get { return _fadeOutDuration; } + private set { _fadeOutDuration = value; } + } + /// + /// + /// + [Tooltip("A multiplier to apply towards configured settings.")] + [SerializeField] + private float _magnitude = 1f; + /// + /// A multiplier to apply towards configured settings. + /// + public float Magnitude + { + get { return _magnitude; } + private set { _magnitude = value; } + } + /// + /// + /// + [Tooltip("Larger noise values will result in more drastic ever-changing magnitude levels during the shake.")] + [Range(0f, 1f)] + [SerializeField] + private float _magnitudeNoise = 0.1f; + /// + /// Larger noise values will result in more drastic ever-changing magnitude levels during the shake. + /// + public float MagnitudeNoise + { + get { return _magnitudeNoise; } + private set { _magnitudeNoise = value; } + } + /// + /// + /// + [Tooltip("Percentage curve applied to magnitude over the shake duration.")] + [SerializeField] + private AnimationCurve _magnitudeCurve = new AnimationCurve(new Keyframe[] { new Keyframe(0f, 1f), new Keyframe(1f, 1f) }); + /// + /// Percentage curve applied to magnitude over the shake duration. + /// + public AnimationCurve MagnitudeCurve + { + get { return _magnitudeCurve; } + private set { _magnitudeCurve = value; } + } + /// + /// + /// + [Tooltip("How quickly to transition between shake offsets. Higher values will result in more violent shakes.")] + [SerializeField] + private float _roughness = 7.5f; + /// + /// How quickly to transition between shake offsets. Higher values will result in more violent shakes. + /// + public float Roughness + { + get { return _roughness; } + private set { _roughness = value; } + } + /// + /// + /// + [Tooltip("Larger noise values will result in more drastic ever-changing roughness levels during the shake.")] + [Range(0f, 1f)] + [SerializeField] + private float _roughnessNoise = 0.3f; + /// + /// Larger noise values will result in more drastic ever-changing roughness levels during the shake. + /// + public float RoughnessNoise + { + get { return _roughnessNoise; } + private set { _roughnessNoise = value; } + } + /// + /// + /// + [Tooltip("Percentage curve applied to roughness over the shake duration.")] + [SerializeField] + private AnimationCurve _roughnessCurve = new AnimationCurve(new Keyframe[] { new Keyframe(0f, 1f), new Keyframe(1f, 1f) }); + /// + /// Percentage curve applied to roughness over the total duration. + /// + public AnimationCurve RoughnessCurve + { + get { return _roughnessCurve; } + private set { _roughnessCurve = value; } + } + /// + /// + /// + [Tooltip("Values in either sign which the shake positioning will occur.")] + [SerializeField] + private Vector3 _positionalInfluence = new Vector3(1f, 1f, 0f); + /// + /// Values in either sign which the shake positioning will occur. + /// + public Vector3 PositionalInfluence + { + get { return _positionalInfluence; } + private set { _positionalInfluence = value; } + } + /// + /// + /// + [Tooltip("Positional axes which may be randomly inverted when this ShakeData is instanced.")] + [SerializeField] + [BitMask(typeof(InvertibleAxes))] + private InvertibleAxes _positionalInverts; + /// + /// Positional axes which may be randomly inverted when this ShakeData is instanced. + /// + public InvertibleAxes PositionalInverts + { + get { return _positionalInverts; } + set { _positionalInverts = value; } + } + /// + /// + /// + [Tooltip("Values in either sign which the shake rotation will occur.")] + [SerializeField] + private Vector3 _rotationalInfluence = new Vector3(0f, 0f, 1f); + /// + /// Values in either sign which the shake rotation will occur. + /// + public Vector3 RotationalInfluence + { + get { return _rotationalInfluence; } + private set { _rotationalInfluence = value; } + } + /// + /// + /// + [Tooltip("Rotational axes which may be randomly inverted when this ShakeData is instanced.")] + [SerializeField] + [BitMask(typeof(InvertibleAxes))] + private InvertibleAxes _rotationalInverts = 0; + /// + /// Rotational axes which may be randomly inverted when this ShakeData is instanced. + /// + public InvertibleAxes RotationalInverts + { + get { return _rotationalInverts; } + set { _rotationalInverts = value; } + } + /// + /// + /// + [Tooltip("While checked a new starting position and direction is used with every shake; shakes are more randomized. If unchecked shakes are guaranteed to start at the same position, and move the same direction with every shake; configured curves and noise are still applied.")] + [SerializeField] + private bool _randomSeed = true; + /// + /// While checked a new starting position and direction is used with every shake; shakes are more randomized. If unchecked shakes are guaranteed to start at the same position, and move the same direction with every shake; configured curves and noise are still applied. + /// + public bool RandomSeed + { + get { return _randomSeed; } + private set { _randomSeed = value; } + } + #endregion + + #region Private. + /* Be sure to add [System.NonSerialized] to private fields + * which should not be serialized. ScriptableObjects have a tendacy + * of serializing fields that aren't explicitly marked as non serialized. */ + #endregion + + #region Const. + /// + /// Text to display when an action cannot be performed due to the ShakeData not being instanced. + /// + private const string ACTION_INSTANCE_REQUIRED = "ShakeData is not instanced. You must use ShakeData.CreateInstance to create an instance before using this action."; + /// + /// Minimum time to fade a shake in to force smoothing. + /// + private const float SMOOTH_IN_DURATION = 0.05f; + /// + /// Minimum time to fade a shake out to force smoothing. + /// + private const float SMOOTH_OUT_DURATION = 0.125f; + #endregion + + /// + /// Initializes this data to ensure values make sense. This method is for internal use only. + /// + internal void Initialize() + { + Magnitude = Mathf.Max(0.01f, Magnitude); + Roughness = Mathf.Max(0.01f, Roughness); + SetFadeInDuration(FadeInDuration); + SetFadeOutDuration(FadeOutDuration); + ValidateTotalDuration(TotalDuration, false); + } + + #region API. + /// + /// Sets a new fade out duration. + /// + /// New fade out duration. + public void SetFadeOutDuration(float value) + { + if (!InstancedWithDebug()) + return; + + /* Code not used as it needs further testing. Additionally, + * results acheived via this modification likely won't prove noticeable. */ + //bool curveFadesOut; + ////Only compare against curve if has multiple keys. + //if (MagnitudeCurve.length > 1) + //{ + // float curveDuration = MagnitudeCurve.keys[MagnitudeCurve.length - 1].time; + // float endPercent = MagnitudeCurve.Evaluate(curveDuration); + // //Consider 5% or less at end fading out. + // curveFadesOut = (endPercent <= 0.05f); + //} + ////Not enough curve data. + //else + //{ + // curveFadesOut = false; + //} + + ///* If curve already fades out then use whatever value + // * is set. */ + //if (curveFadesOut) + // FadeOutDuration = value; + ///* If curve does not fade out then determine if + // * fading in needs to be applied. */ + //else + // FadeOutDuration = Mathf.Max(SMOOTH_OUT_DURATION, value); + + FadeOutDuration = Mathf.Max(SMOOTH_OUT_DURATION, value); + } + + + /// + /// Sets a new fade in duration. + /// + /// New fade in duration. + public void SetFadeInDuration(float value) + { + if (!InstancedWithDebug()) + return; + + /* Code not used as it needs further testing. Additionally, + * results acheived via this modification likely won't prove noticeable. */ + //bool curveFadesIn; + ////Only compare against curve if has multiple keys. + //if (MagnitudeCurve.length > 1) + //{ + // float startPercent = MagnitudeCurve.Evaluate(0f); + // //Consider 10% or less at start fading in. + // curveFadesIn = (startPercent <= 0.1f); + //} + ////Not enough curve data. + //else + //{ + // curveFadesIn = false; + //} + + ///* If curve already fades in then use whatever value + // * is set. */ + //if (curveFadesIn) + // FadeInDuration = value; + ///* If curve does not fade in then determine if + // * fading in needs to be applied. */ + //else + // FadeInDuration = Mathf.Max(SMOOTH_IN_DURATION, value); + + FadeInDuration = Mathf.Max(SMOOTH_IN_DURATION, value); + } + + + /// + /// Sets a new TotalDuration value. Setting this value to 0 or greater removes unlimited duration; just as setting it to less than 0 sets unlimited duration. + /// + /// New total duration. Using values 0f and lower will make duration unlimited. + public void SetTotalDuration(float value) + { + if (!InstancedWithDebug()) + return; + ValidateTotalDuration(value, true); + } + + /// + /// Sets a new ShakeCameras value. + /// + /// + public void SetShakeCameras(bool value) + { + if (!InstancedWithDebug()) + return; + ShakeCameras = value; + } + + /// + /// Sets a new ShakeCanvases value. + /// + /// + public void SetShakeCanvases(bool value) + { + if (!InstancedWithDebug()) + return; + ShakeCanvases = value; + } + + /// + /// Sets a new ShakeRigidbodies value. + /// + /// + public void SetShakeRigidbodies(bool value) + { + if (!InstancedWithDebug()) + return; + ShakeObjects = value; + } + + /// + /// Creates and returns an instance of this data. + /// + /// + public ShakeData CreateInstance() + { + ShakeData data = ScriptableObject.CreateInstance(); + data.SetInstancedWithProperties(ScaledTime, ShakeCameras, ShakeCanvases, ShakeObjects, UnlimitedDuration, Magnitude, MagnitudeNoise, MagnitudeCurve, + Roughness, RoughnessNoise, RoughnessCurve, TotalDuration, FadeInDuration, FadeOutDuration, + PositionalInfluence, PositionalInverts, RotationalInfluence, RotationalInverts, RandomSeed); + + return data; + } + + /// + /// Inversts specified positional axes. Using this in the middle of a shake may create jarring the next frame. + /// + /// Axes to invert. + public void InvertPositionalAxes(InvertibleAxes axes) + { + if (axes.Contains(InvertibleAxes.X)) + _positionalInfluence.x *= -1f; + if (axes.Contains(InvertibleAxes.Y)) + _positionalInfluence.y *= -1f; + if (axes.Contains(InvertibleAxes.Z)) + _positionalInfluence.z *= -1f; + } + /// + /// Inverts specified rotational axes. Using this in the middle of a shake may create jarring the next frame. + /// + /// Axes to invert. + public void InvertRotationalAxes(InvertibleAxes axes) + { + if (axes.Contains(InvertibleAxes.X)) + _rotationalInfluence.x *= -1f; + if (axes.Contains(InvertibleAxes.Y)) + _rotationalInfluence.y *= -1f; + if (axes.Contains(InvertibleAxes.Z)) + _rotationalInfluence.z *= -1f; + } + /// + /// Randomizes inversion for specified positional axes. Using this in the middle of a shake may create jarring the next frame. + /// + /// Axes to randomly invert. + public void RandomlyInvertPositionalAxes(InvertibleAxes axes) + { + //If there is anything to invert. + if ((int)axes != 0) + { + //X + if (axes.Contains(InvertibleAxes.X)) + { + float multiplier = Floats.RandomlyFlip(1f); + _positionalInfluence.x *= multiplier; + } + //Y + if (axes.Contains(InvertibleAxes.Y)) + { + float multiplier = Floats.RandomlyFlip(1f); + _positionalInfluence.y *= multiplier; + } + //Z + if (axes.Contains(InvertibleAxes.Z)) + { + float multiplier = Floats.RandomlyFlip(1f); + _positionalInfluence.z *= multiplier; + } + } + } + /// + /// Randomizes inversion for specified rotational axes. Using this in the middle of a shake may create jarring the next frame. + /// + /// Axes to randomly invert. + public void RandomlyInvertRotationalAxes(InvertibleAxes axes) + { + //If there is anything to invert. + if ((int)axes != 0) + { + //X + if (axes.Contains(InvertibleAxes.X)) + { + float multiplier = Floats.RandomlyFlip(1f); + _rotationalInfluence.x *= multiplier; + } + //Y + if (axes.Contains(InvertibleAxes.Y)) + { + float multiplier = Floats.RandomlyFlip(1f); + _rotationalInfluence.y *= multiplier; + } + //Z + if (axes.Contains(InvertibleAxes.Z)) + { + float multiplier = Floats.RandomlyFlip(1f); + _rotationalInfluence.z *= multiplier; + } + } + } + #endregion + + /// + /// Sets instanced to true, and sets serialized properties. This method is for internal use only. + /// + /// + /// + /// + /// + /// + /// + /// + /// + internal void SetInstancedWithProperties(bool scaledTime, bool shakeCameras, bool shakeCanvases, bool shakeRigidbodies, bool unlimitedDuration, float magnitude, float magnitudeNoise, AnimationCurve magnitudeCurve, float roughness, float roughnessNoise, AnimationCurve roughnessCurve, float totalDuration, float fadeInDuration, float fadeOutDuration, Vector3 positionalInfluence, InvertibleAxes positionalInverts, Vector3 rotationalInfluence, InvertibleAxes rotationalInverts, bool randomSeed) + { + ScaledTime = scaledTime; + ShakeCameras = shakeCameras; + ShakeCanvases = shakeCanvases; + ShakeObjects = shakeRigidbodies; + UnlimitedDuration = unlimitedDuration; + Magnitude = magnitude; + MagnitudeNoise = magnitudeNoise; + MagnitudeCurve = magnitudeCurve; + Roughness = roughness; + RoughnessNoise = roughnessNoise; + RoughnessCurve = roughnessCurve; + FadeInDuration = fadeInDuration; + FadeOutDuration = fadeOutDuration; + TotalDuration = totalDuration; + PositionalInfluence = positionalInfluence; + PositionalInverts = positionalInverts; + RotationalInfluence = rotationalInfluence; + RotationalInverts = rotationalInverts; + RandomSeed = randomSeed; + + RandomlyInvertPositionalAxes(PositionalInverts); + RandomlyInvertRotationalAxes(RotationalInverts); + + Instanced = true; + } + /// + /// Returns if instanced and outputs debug when not. + /// + /// + private bool InstancedWithDebug() + { + if (!Instanced && Debug.isDebugBuild) + Debug.LogError(ACTION_INSTANCE_REQUIRED); + + return Instanced; + } + + #region Editor checks. + private void OnValidate() + { + if (!UnlimitedDuration && _totalDuration <= 0f) + _totalDuration = 1f; + } + #endregion + + + } + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs.meta new file mode 100644 index 00000000..fa01ebe4 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 9ba2a80b753f77d4d96ab2af3748cee8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakeData.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs new file mode 100644 index 00000000..555f1de0 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs @@ -0,0 +1,441 @@ +using FirstGearGames.Utilities.Maths; +using UnityEngine; + +namespace FirstGearGames.SmoothCameraShaker +{ + public class ShakerInstance + { + #region Types. + private class NoiseData + { + public NoiseData(float variance) + { + _variance = variance; + RandomizeGoal(true); + } + + #region Private. + private readonly float _variance; + /// + /// Current noise value. + /// + private float _currentNoise; + /// + /// Goal to move towards. + /// + private float _goal; + #endregion + + #region Const. + /// + /// How much to multiply distance checks by when moving CurrentNoise towards Goal. + /// + private const float DISTANCE_MULTIPLIER = 3f; + /// + /// How quickly to move CurrentNoise towards Goal. + /// + private const float UPDATE_RATE = 0.5f; + #endregion + + /// + /// Randomly sets a new goal using variance. + /// + private void RandomizeGoal(bool setCurrent) + { + _goal = 1f.Variance(_variance); + if (setCurrent) + _currentNoise = _goal; + } + /// + /// Returns the current noise. This is for internal use only. + /// + /// + /// DeltaTime to use. + internal float UpdateCurrentNoise(float deltaTime) + { + //No variance. + if (_variance == 0f) + return 1f; + + //At goal, make a new one. + if (_currentNoise == _goal) + RandomizeGoal(false); + + float distance = Mathf.Max(1f, Mathf.Abs(_goal - _currentNoise) * DISTANCE_MULTIPLIER); + _currentNoise = Mathf.MoveTowards(_currentNoise, _goal, UPDATE_RATE * distance * deltaTime); + + return _currentNoise; + } + } + + private class ModifierMultiplier + { + public ModifierMultiplier() { } + public ModifierMultiplier(float multiplier, float moveRate, bool rateUsesDistance) + { + SetValues(multiplier, moveRate, rateUsesDistance); + } + + /// + /// Value Multiplier should move towards. + /// + private float _multiplierGoal = 1f; + /// + /// Current value to multiply by. + /// + public float Multiplier { get; private set; } = 1f; + /// + /// Rate to move towards multipliers. Use -1f for instant changes. + /// + private float _moveRate = -1f; + /// + /// True for the rate value to change with distance. This to a degree normalizes changes. + /// + private bool _rateUsesDistance = true; + + /// + /// Sets new values to use. + /// + /// + /// + /// + public void SetValues(float multiplier, float moveRate, bool rateUsesDistance) + { + _multiplierGoal = multiplier; + _moveRate = moveRate; + _rateUsesDistance = rateUsesDistance; + } + + /// + /// Updates the multipliers to move towards their goals. This is for internal use only. + /// + /// + internal void Update(float deltaTime) + { + //If magnitude isn't at goal yet. + if (Multiplier != _multiplierGoal) + { + //No move rate, move instantly. + if (_moveRate <= 0f) + { + Multiplier = _multiplierGoal; + } + else + { + float distance = 1f; + if (_rateUsesDistance) + distance = Mathf.Max(distance, Mathf.Abs(_multiplierGoal - Multiplier)); + + Multiplier = Mathf.MoveTowards(Multiplier, _multiplierGoal, distance * _moveRate * deltaTime); + } + } + } + } + #endregion + + #region Constructors. + public ShakerInstance(ShakeData data) + { + Data = data; + + if (data.RandomSeed) + _seed = Floats.Random01(); + else + _seed = 0.5f; + + _magnitudeNoise = new NoiseData(data.MagnitudeNoise); + _roughnessNoise = new NoiseData(data.RoughnessNoise); + } + #endregion + + #region Public. + /// + /// Data being used for this instance. + /// + public ShakeData Data { get; private set; } + /// + /// + /// + private bool _paused; + /// + /// True if this shaker instance is paused. + /// + public bool Paused + { + get + { + if (_paused) + return true; + if (Time.timeScale == 0f && Data.ScaledTime) + return true; + + return false; + } + private set { _paused = value; } + } + #endregion + + #region Private. + /// + /// Seed to generate perlin noise. + /// + private float _seed = 0; + /// + /// Time passed since the shaker has started. + /// + private float _timePassed = 0f; + /// + /// Value to multiply roughness by. + /// + private ModifierMultiplier _roughnessMultiplier = new ModifierMultiplier(); + /// + /// Value to multiply magnitude by. + /// + private ModifierMultiplier _magnitudeMultiplier = new ModifierMultiplier(); + /// + /// Time in the magnitude curve when using infinite shake. + /// + private float _magnitudeCurveTime = 0f; + /// + /// Time in the roughness curve when using infinite shake. + /// + private float _roughnessCurveTime = 0f; + /// + /// Noise data for magnitude. + /// + private NoiseData _magnitudeNoise; + /// + /// Noise data for roughness. + /// + private NoiseData _roughnessNoise; + /// + /// Last offset for instance. + /// + private Vector3 _offset; + #endregion + + /// + /// Creates a Vector3 perlin noise. + /// + /// + /// + /// + private Vector3 PerlinNoise(float seed) + { + return new Vector3( + Mathf.PerlinNoise(seed, seed) - 0.5f, + Mathf.PerlinNoise(seed, 0f) - 0.5f, + Mathf.PerlinNoise(0f, seed) - 0.5f + ); + } + + private bool _first = true; + /// + /// Returns a new offset for this instnace. + /// + /// + internal Vector3 UpdateOffset() + { + float deltaTime = (Data.ScaledTime) ? Time.deltaTime : Time.unscaledDeltaTime; + + if (DurationOver()) + { + _offset = Vector3.zero; + } + else + { + //Updates the multipliers which can be set at runtime. + _magnitudeMultiplier.Update(deltaTime); + _roughnessMultiplier.Update(deltaTime); + + //If RandomSeed is used then also use perlin noise, creating a more randomized shake. + if (Data.RandomSeed) + _offset = PerlinNoise(_seed); + //Without a random seed the offset changes predictably. + else + _offset = new Vector3(1f, 1f, 1f) * (Mathf.PingPong(_seed, 1f) - 0.5f); + + _seed += deltaTime * Data.Roughness * ReturnRoughnessCurveMultiplier(deltaTime) * _roughnessMultiplier.Multiplier * _roughnessNoise.UpdateCurrentNoise(deltaTime); + } + + //Multiplier from fading which is applied to overall values. + float fadeMultiplier = ReturnFadeMultiplier(); + //Increase time passed to handle fading and ending shake. + _timePassed += deltaTime; + + return _offset * Data.Magnitude * ReturnMagnitudeCurveMultiplier(deltaTime) * _magnitudeMultiplier.Multiplier * fadeMultiplier * _magnitudeNoise.UpdateCurrentNoise(deltaTime); + } + + /// + /// Returns a multiplier to use based on if fading in or out. + /// + /// + private float ReturnFadeMultiplier() + { + //Fading in check. + if (Data.FadeInDuration > 0f) + { + float percent = _timePassed / Data.FadeInDuration; + //If not fully faded in then return fade in multiplier. + if (percent < 1f) + return percent; + } + + //Fading out check. + if (!Data.UnlimitedDuration && Data.FadeOutDuration > 0f) + { + float remaining = Data.TotalDuration - _timePassed; + float percent = remaining / Data.FadeOutDuration; + if (percent < 1f) + return percent; + } + + //Default multiplier if no fade is occurring. + return 1f; + } + + /// + /// Returns a magnitude mulitplier based on the magnitude curve and time passed. + /// + /// + private float ReturnMagnitudeCurveMultiplier(float deltaTime) + { + float curveDuration = Data.RoughnessCurve.keys[Data.RoughnessCurve.length - 1].time; + + //Unlimited shake, loop curve. + if (Data.UnlimitedDuration) + { + _magnitudeCurveTime += deltaTime; + if (_magnitudeCurveTime > curveDuration) + _magnitudeCurveTime = (curveDuration - _magnitudeCurveTime); + + return Data.MagnitudeCurve.Evaluate(_magnitudeCurveTime); + } + //Limited time, use curve normally. + else + { + float percent = _timePassed / Data.TotalDuration; + return Data.MagnitudeCurve.Evaluate(percent * curveDuration); + } + } + /// + /// Returns a roughness mulitplier based on the roughness curve and time passed. + /// + /// + private float ReturnRoughnessCurveMultiplier(float deltaTime) + { + float curveDuration = Data.RoughnessCurve.keys[Data.RoughnessCurve.length - 1].time; + + //Unlimited shake, loop curve. + if (Data.UnlimitedDuration) + { + _roughnessCurveTime += deltaTime; + if (_roughnessCurveTime > curveDuration) + _roughnessCurveTime = (curveDuration - _roughnessCurveTime); + + return Data.RoughnessCurve.Evaluate(_roughnessCurveTime); + } + //Limited time, use curve normally. + else + { + float percent = _timePassed / Data.TotalDuration; + return Data.RoughnessCurve.Evaluate(percent * curveDuration); + } + } + + /// + /// Returns if the instance shaker is over. + /// + /// + public bool ShakerOver() + { + return (DurationOver() && (_offset == Vector3.zero)); + } + + /// + /// Returns true if the total duration has expired, and not unlimited duration. + /// + /// + private bool DurationOver() + { + if (Data.UnlimitedDuration) + return false; + + return (_timePassed >= Data.TotalDuration); + } + + /// + /// Sets the paused state of this shaker. + /// + /// New paused state. + public void SetPaused(bool value) + { + Paused = value; + } + + /// + /// Stops this instance abruptly. + /// + public void Stop() + { + Data.SetTotalDuration(0f); + } + + /// + /// Fades out this instance. This operation only works if not already fading out. + /// + /// Overrides instance Data fade out duration with a new value. + public void FadeOut(float? durationOverride = null) + { + float fadeDuration = (durationOverride == null) ? Data.FadeOutDuration : durationOverride.Value; + + bool canChange = false; + //If unlimited duration then fading out is okay, no checks needed. + if (Data.UnlimitedDuration) + { + canChange = true; + } + //Not unlimited total duration, check if already fading out. + else + { + float remaining = Data.TotalDuration - _timePassed; + /* If remaining is less than new fade + * duration then let remaining end unmodified. + * Otherwise snap to new fade out duration. + * In the future rather than abrutply + * skipping time fade out will be speed up to match + * new time. */ + if (remaining > fadeDuration) + canChange = true; + } + + if (canChange) + { + Data.SetFadeOutDuration(fadeDuration); + Data.SetTotalDuration(_timePassed + fadeDuration); + } + } + + /// + /// Multiplies magnitude values in data by a set amount. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyMagnitude(float multiplier, float moveRate, bool rateUsesDistance = true) + { + _magnitudeMultiplier.SetValues(multiplier, moveRate, rateUsesDistance); + } + /// + /// Multiplies roughness values in data by a set amount. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyRoughness(float multiplier, float moveRate, bool rateUsesDistance = true) + { + _roughnessMultiplier.SetValues(multiplier, moveRate, rateUsesDistance); + } + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs.meta new file mode 100644 index 00000000..2a24cbd5 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 15591c547998f4e47a2e8ce9ac3d3a73 +labels: +- Shake +- Camera +- Follow +- Animation +- Effect +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/ShakerInstance.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers.meta new file mode 100644 index 00000000..76ee04a4 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cfbe36e382fa2c49973f4fa4f3bc3a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs new file mode 100644 index 00000000..91ef1bc5 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs @@ -0,0 +1,599 @@ +using UnityEngine; +using System.Collections.Generic; +using System; +using FirstGearGames.Utilities.Maths; + +namespace FirstGearGames.SmoothCameraShaker +{ + public class CameraShaker : MonoBehaviour + { + #region Types. + public enum ShakeTechniques + { + Matrix = 0, + LocalSpace = 1 + } + #endregion + + #region Public. + /// + /// Dispatched when shaking starts after previously being stopped. + /// + public event Action OnShakingStarted; + /// + /// Dispatched when shaking ends. + /// + public event Action OnShakingEnded; + /// + /// Dispatched every update a shake occurs. + /// + public event Action OnShakeUpdate; + /// + /// Dispatched every fixed update a shake occurs. Contains the shake values from last update. + /// + public event Action OnShakeFixedUpdate; + /// + /// Active instances which are shaking the camera. + /// + public List ShakerInstances { get; private set; } = new List(); + /// + /// True if this CameraShaker is currently shaking. + /// + public bool Shaking { get; private set; } + /// + /// Current scale applied towards shakes on this CameraShaker. Acts as a multiplier towards ShakerInstances. 1f is normal scale. + /// + public float Scale { get; private set; } = 1f; + /// + /// Last shake values for camera after running UpdateShakers. For internal use only. + /// + internal ShakeValues FixedCamera { get; private set; } = null; + #endregion + + #region Serialized. + /// + /// + /// + [Tooltip("Technique used to shake the camera.")] + [SerializeField] + private ShakeTechniques _shakeTechnique = ShakeTechniques.Matrix; + /// + /// Technique used to shake the camera. + /// + public ShakeTechniques ShakeTechnique + { + get { return _shakeTechnique; } + private set { _shakeTechnique = value; } + } + /// + /// Sets the shake technique to use. Changing this value while shakes are occurring may create unwanted results. + /// + /// + public void SetShakeTechnique(ShakeTechniques value) { ShakeTechnique = value; } + /// + /// True for this CameraShaker to be set as the default shaker when enabled. + /// + [Tooltip("True for this CameraShaker to be set as the default shaker when enabled.")] + [SerializeField] + private bool _makeDefaultOnEnable = true; + /// + /// True to limit how much magnitude can be applied to this CameraShaker. + /// + [Tooltip("True to limit how much magnitude can be applied to this CameraShaker.")] + [SerializeField] + private bool _limitMagnitude = false; + /// + /// How much positional magnitude to limit this CameraShaker to. + /// + [Tooltip("How much positional magnitude to limit this CameraShaker to.")] + [SerializeField] + private float _positionalMagnitudeLimit = 10f; + /// + /// How much rotational manitude to limit this CameraShaker to. + /// + [Tooltip("How much rotational manitude to limit this CameraShaker to.")] + [SerializeField] + private float _rotationalMagnitudeLimit = 3f; + #endregion + + #region Private. + /// + /// Camera on this gameObject. + /// + private Camera _camera; + /// + /// Last shake values for canvases after running UpdateShakers. + /// + private ShakeValues _fixedCanvases = null; + /// + /// Last shake values for rigidbodies after running UpdateShakers. + /// + private ShakeValues _fixedRigidbodies = null; + /// + /// Squared value of positional magnitude limit. This is used for faster calculations. + /// + private float _sqrPositionalMagnitudeLimit; + /// + /// Squared value of rotational magnitude limit. This is used for faster calculations. + /// + private float _sqrRotationalMagnitudeLimit; + /// + /// True if initialized. + /// + private bool _initialized = false; + #endregion + + private void Awake() + { + FirstInitialize(); + } + + private void OnEnable() + { + if (_makeDefaultOnEnable) + CameraShakerHandler.SetDefaultCameraShaker(this); + } + + private void OnDisable() + { + Disable(); + } + + private void OnDestroy() + { + CameraShakerHandler.RemoveInstantiatedShaker(this); + } + + /// + /// Initializes this script for use. This should only be completed once. + /// + private void FirstInitialize() + { + if (_initialized) + return; + + _camera = GetComponent(); + CameraShakerHandler.AddInstantiatedShaker(this); + CalculateSqrLimits(); + + _initialized = true; + } + + /// + /// Calculates the squared limits. + /// + private void CalculateSqrLimits() + { + //Set squared values for faster calculations. + if (_limitMagnitude) + { + _sqrPositionalMagnitudeLimit = Mathf.Pow(_positionalMagnitudeLimit, 2f); + _sqrRotationalMagnitudeLimit = Mathf.Pow(_rotationalMagnitudeLimit, 2f); + } + } + + /// + /// Checks if shakers need to be updated. This is for internal use only. + /// + /// Position offset after a shake. + /// Rotation offset after a shake. + /// True if a shaker was updated. + internal bool UpdateShakers(out ShakeValues camera, out ShakeValues canvases, out ShakeValues rigidbodies) + { + /* Only check if not shaking. Instances can still run when paused. + * This is intentional behavior so that shakes can be calculated + * on cameras which are currently disabled, but may become enabled during + * the middle of the shake. */ + if (!Shaking) + { + camera = new ShakeValues(); + canvases = new ShakeValues(); + rigidbodies = new ShakeValues(); + return false; + } + //Shaking + else + { + //Shaking. + if (TryUpdateShakers(out camera, out canvases, out rigidbodies)) + { + return true; + } + //Shaking ended last frame. + else + { + Disable(); + return false; + } + } + } + + /// + /// Checks if shakers need to be fixed updated. This is for internal use only. + /// + /// Position offset after a shake. + /// Rotation offset after a shake. + /// True if a shaker was updated. + internal bool UpdateFixedShakers(out ShakeValues camera, out ShakeValues canvases, out ShakeValues rigidbodies) + { + //No fixed values. + if (FixedCamera == null || _fixedCanvases == null || _fixedRigidbodies == null) + { + camera = new ShakeValues(); + canvases = new ShakeValues(); + rigidbodies = new ShakeValues(); + return false; + } + //Fixed values. + else + { + //Set out values. + camera = FixedCamera; + canvases = _fixedCanvases; + rigidbodies = _fixedRigidbodies; + //Dispatch and nullify. + OnShakeFixedUpdate?.Invoke(this, new ShakeUpdate(FixedCamera, _fixedCanvases, _fixedRigidbodies)); + FixedCamera = null; + _fixedCanvases = null; + _fixedRigidbodies = null; + + return true; + } + } + + /// + /// Updates shakers and returns true if a shaker was updated. + /// + /// + private bool TryUpdateShakers(out ShakeValues camera, out ShakeValues canvases, out ShakeValues rigidbodies) + { + camera = new ShakeValues(); + canvases = new ShakeValues(); + rigidbodies = new ShakeValues(); + + bool instanceProcessed = false; + for (int i = 0; i < ShakerInstances.Count; i++) + { + //Out of bounds. Shouldn't be possible, sanity check. + if (i >= ShakerInstances.Count) + break; + + ShakerInstance instance = ShakerInstances[i]; + //Instance went null. Also shouldn't be possible, sanity check. + if (instance == null) + { + ShakerInstances.RemoveAt(i); + i--; + continue; + } + //Shaker has ended. + if (instance.ShakerOver()) + { + instanceProcessed = true; + ShakerInstances.RemoveAt(i); + i--; + continue; + } + //Shaker paused. + if (instance.Paused) + { + instanceProcessed = true; + continue; + } + + /* Get new offset from instance and add alterations + * to position and rotation. This is done for each instance so that + * instances can stack. */ + Vector3 offset = instance.UpdateOffset(); + if (instance.Data.PositionalInfluence != Vector3.zero) + { + //Camera. + if (instance.Data.ShakeCameras) + camera.Position += offset.Multiply(instance.Data.PositionalInfluence); + //Canvases. + if (instance.Data.ShakeCanvases) + canvases.Position += offset.Multiply(instance.Data.PositionalInfluence); + //Rigidbodies. + if (instance.Data.ShakeObjects) + rigidbodies.Position += offset.Multiply(instance.Data.PositionalInfluence); + } + /* Multiply rotational influence by 2.77f so that the rotational + * amount is accurate to what the user sees in the influence field. */ + if (instance.Data.RotationalInfluence != Vector3.zero) + { + //Camera. + if (instance.Data.ShakeCameras) + camera.Rotation += offset.Multiply(instance.Data.RotationalInfluence * 2.77f); + //Canvases. + if (instance.Data.ShakeCanvases) + canvases.Rotation += offset.Multiply(instance.Data.RotationalInfluence * 2.77f); + //Rigidbodies + if (instance.Data.ShakeObjects) + rigidbodies.Rotation += offset.Multiply(instance.Data.RotationalInfluence * 2.77f); + } + + instanceProcessed = true; + } + + //Limit positional and rotation magnitudes. + if (_limitMagnitude) + { + //Camera. + if (camera.Position.sqrMagnitude > _sqrPositionalMagnitudeLimit) + camera.Position = camera.Position.normalized * _positionalMagnitudeLimit; + if (camera.Rotation.sqrMagnitude > _sqrRotationalMagnitudeLimit) + camera.Rotation = camera.Rotation.normalized * _rotationalMagnitudeLimit; + //Canvases. + if (canvases.Position.sqrMagnitude > _sqrPositionalMagnitudeLimit) + canvases.Position = canvases.Position.normalized * _positionalMagnitudeLimit; + if (canvases.Rotation.sqrMagnitude > _sqrRotationalMagnitudeLimit) + canvases.Rotation = canvases.Rotation.normalized * _rotationalMagnitudeLimit; + //Rigidbodies. + if (rigidbodies.Position.sqrMagnitude > _sqrPositionalMagnitudeLimit) + rigidbodies.Position = rigidbodies.Position.normalized * _positionalMagnitudeLimit; + if (rigidbodies.Rotation.sqrMagnitude > _sqrRotationalMagnitudeLimit) + rigidbodies.Rotation = rigidbodies.Rotation.normalized * _rotationalMagnitudeLimit; + } + + //If anything was changed. + if (instanceProcessed) + { + //Apply scale. + camera.Position *= Scale; + camera.Rotation *= Scale; + canvases.Position *= Scale; + canvases.Rotation *= Scale; + rigidbodies.Position *= Scale; + rigidbodies.Rotation *= Scale; + + /* Set position and rotation to accumulated values. + * If no values are set then camera will result to + * v3.zero position and rotation. */ + switch (ShakeTechnique) + { + //Matrix. + case ShakeTechniques.Matrix: + SetMatrixOffsets(camera.Position, camera.Rotation); + break; + //Local. + case ShakeTechniques.LocalSpace: + SetLocalSpaceOffsets(camera.Position, camera.Rotation); + break; + } + + FixedCamera = camera; + _fixedCanvases = canvases; + _fixedRigidbodies = rigidbodies; + OnShakeUpdate?.Invoke(this, new ShakeUpdate(camera, canvases, rigidbodies)); + } + + return instanceProcessed; + } + + /// + /// Disables this CameraShaker to save cycles. This is for internal use only. + /// + internal void Disable() + { + /* If shaking then update / reset before ending shaking + * so that updates are sent before shaking ending does. */ + if (Shaking) + { + //Reset values and broadcast zero offset. + if (ShakeTechnique == ShakeTechniques.Matrix) + _camera.ResetWorldToCameraMatrix(); + else if (ShakeTechnique == ShakeTechniques.LocalSpace) + SetLocalSpaceOffsets(Vector3.zero, Vector3.zero); + + OnShakeUpdate?.Invoke(this, new ShakeUpdate()); + //Send zero on fixed, and nullify fixed values. + OnShakeFixedUpdate?.Invoke(this, new ShakeUpdate(new ShakeValues(), new ShakeValues(), new ShakeValues())); + FixedCamera = null; + _fixedCanvases = null; + _fixedRigidbodies = null; + } + + UpdateShaking(false); + } + + /// + /// Adds a ShakerInstance to ShakerInstances. + /// + /// + private void AddShakerInstance(ShakerInstance instance) + { + ShakerInstances.Add(instance); + UpdateShaking(true); + } + + /// + /// Adds shaker instances to this cameras ShakerInstances. For internal use only. + /// + /// + internal void AddShakerInstances(List instances) + { + if (instances.Count == 0) + return; + + ShakerInstances.AddRange(instances); + UpdateShaking(true); + } + + /// + /// Updates the shaking value. + /// + /// + private void UpdateShaking(bool shaking) + { + bool changed = (shaking != Shaking); + Shaking = shaking; + + if (changed) + { + if (Shaking) + { + OnShakingStarted?.Invoke(this); + CameraShakerHandler.AddShaking(this); + } + else + { + ShakerInstances.Clear(); + OnShakingEnded?.Invoke(this); + CameraShakerHandler.RemoveShaking(this); + } + } + } + + #region Offset setting. + /// + /// Sets LocalSpace and LocalEulerAngle values for this transform. For internal use only. + /// + /// + /// + internal void SetLocalSpaceOffsets(Vector3 pos, Vector3 rot) + { + transform.localPosition = pos; + transform.localEulerAngles = rot; + } + /// + /// Sets Matrix values for this transform. For internal use only. + /// + /// + /// + internal void SetMatrixOffsets(Vector3 pos, Vector3 rot) + { + Matrix4x4 m = Matrix4x4.TRS(pos, Quaternion.Euler(rot), new Vector3(1, 1, -1)); + _camera.worldToCameraMatrix = m * _camera.transform.worldToLocalMatrix; + } + #endregion + + #region API. + /// + /// Sets Scale value. + /// + /// New scale to use. + public void SetScale(float value) + { + Scale = value; + } + + /// + /// Shakes the camera using data. + /// + /// ShakeData to use. + /// Instance generated using data. + public ShakerInstance Shake(ShakeData data) + { + FirstInitialize(); + + if (data.TotalDuration == 0f && data.FadeInDuration == 0f && data.FadeOutDuration == 0f) + { + if (Debug.isDebugBuild) Debug.LogWarning("No durations are specified in data; cannot generate a ShakerInstance."); + return null; + } + if (data.PositionalInfluence == Vector3.zero && data.RotationalInfluence == Vector3.zero) + { + if (Debug.isDebugBuild) Debug.LogWarning("No influences are specified in data; cannot generate a ShakerInstance."); + return null; + } + + /* Make an instance of the data if it's on disk so that values aren't serialized + * over in the editor when changing values at runtime such as total time, fade out, and more. + * Research suggest objects with a positive instance ID are prefabs, or are placed in the scene, + * while negative values are instantiated. */ + ShakeData dataInstance = data.Instanced ? data : data.CreateInstance(); + dataInstance.Initialize(); + + ShakerInstance shakerInstance = new ShakerInstance(dataInstance); + AddShakerInstance(shakerInstance); + + return shakerInstance; + } + /// + /// Sets the paused state of all shaker instances on this CameraShaker. + /// + /// New paused state. + public void SetPaused(bool value) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.SetPaused(value); + } + } + + /// + /// Fades out all instances on this CameraShaker. This operation only works on instances not already fading out. + /// + /// Overrides instance fade out duration with a new value. + public void FadeOut(float? durationOverride = null) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.FadeOut(durationOverride); + } + } + + /// + /// Abruptly stops all instances on this camera shaker. + /// + public void Stop() + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.Stop(); + } + } + + /// + /// Multiplies magnitude values for all instances on this CameraShaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyMagnitude(float multiplier, float moveRate, bool rateUsesDistance) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.MultiplyMagnitude(multiplier, moveRate, rateUsesDistance); + } + } + + /// + /// Multiplies roughness values for all instances on this CameraShaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyRoughness(float multiplier, float moveRate, bool rateUsesDistance) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.MultiplyRoughness(multiplier, moveRate, rateUsesDistance); + } + } + + + #endregion + + #region Editor checks. +#if UNITY_EDITOR + private void OnValidate() + { + if (_limitMagnitude) + { + _positionalMagnitudeLimit = Mathf.Max(_positionalMagnitudeLimit, 0.01f); + _rotationalMagnitudeLimit = Mathf.Max(_rotationalMagnitudeLimit, 0.01f); + + CalculateSqrLimits(); + } + } +#endif + #endregion + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs.meta new file mode 100644 index 00000000..5e05bd24 --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 2ab8353b5ebd32545867da143199a814 +labels: +- Shake +- Camera +- Follow +- Animation +- Effect +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/CameraShaker.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs new file mode 100644 index 00000000..4b61103d --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs @@ -0,0 +1,489 @@ +using UnityEngine; +using System.Collections.Generic; +using System; +using FirstGearGames.Utilities.Maths; + +namespace FirstGearGames.SmoothCameraShaker +{ + public class ObjectShaker : MonoBehaviour + { + + #region Public. + /// + /// Dispatched when shaking starts after previously being stopped. + /// + public event Action OnShakingStarted; + /// + /// Dispatched when shaking ends. + /// + public event Action OnShakingEnded; + /// + /// Dispatched every update a shake occurs. + /// + public event Action OnShakeUpdate; + /// + /// Dispatched every fixed update a shake occurs. Contains the shake values from last update. + /// + public event Action OnShakeFixedUpdate; + /// + /// Active instances which are shaking the camera. + /// + public List ShakerInstances { get; private set; } = new List(); + /// + /// True if this CameraShaker is currently shaking. + /// + public bool Shaking { get; private set; } + /// + /// Current scale applied towards shakes on this CameraShaker. Acts as a multiplier towards ShakerInstances. 1f is normal scale. + /// + public float Scale { get; private set; } = 1f; + #endregion + + #region Serialized. + /// + /// True to remove this shakers reference from it's handler when disabled. Useful if you have a lot of these shakers in your scene, but objects are not always enabled. + /// + [Tooltip("True to remove this shakers reference from it's handler when disabled. Useful if you have a lot of these shakers in your scene, but objects are not always enabled.")] + [SerializeField] + private bool _removeFromManagerOnDisable = true; + /// + /// True to limit how much magnitude can be applied to this CameraShaker. + /// + [Tooltip("True to limit how much magnitude can be applied to this CameraShaker.")] + [SerializeField] + private bool _limitMagnitude = false; + /// + /// How much positional magnitude to limit this CameraShaker to. + /// + [Tooltip("How much positional magnitude to limit this CameraShaker to.")] + [SerializeField] + private float _positionalMagnitudeLimit = 10f; + /// + /// How much rotational manitude to limit this CameraShaker to. + /// + [Tooltip("How much rotational manitude to limit this CameraShaker to.")] + [SerializeField] + private float _rotationalMagnitudeLimit = 3f; + /// + /// ShakeData to run when enabled. Leave empty to not use this feature. + /// + [Tooltip("ShakeData to run when enabled. Leave empty to not use this feature.")] + [Space(10)] + [SerializeField] + private ShakeData _shakeOnEnable = null; + #endregion + + #region Private. + /// + /// Last shake values for canvases after running UpdateShakers. + /// + private ShakeValues _fixedCanvases = null; + /// + /// Last shake values for rigidbodies after running UpdateShakers. + /// + private ShakeValues _fixedRigidbodies = null; + /// + /// Squared value of positional magnitude limit. This is used for faster calculations. + /// + private float _sqrPositionalMagnitudeLimit; + /// + /// Squared value of rotational magnitude limit. This is used for faster calculations. + /// + private float _sqrRotationalMagnitudeLimit; + /// + /// True if initialized. + /// + private bool _initialized = false; + #endregion + + private void Awake() + { + FirstInitialize(); + } + + private void OnEnable() + { + if (_removeFromManagerOnDisable) + ObjectShakerHandler.AddInstantiatedShaker(this); + if (_shakeOnEnable != null) + Shake(_shakeOnEnable); + } + + private void OnDisable() + { + Disable(); + if (_removeFromManagerOnDisable) + ObjectShakerHandler.RemoveInstantiatedShaker(this); + } + + private void OnDestroy() + { + ObjectShakerHandler.RemoveInstantiatedShaker(this); + } + + /// + /// Initializes this script for use. This should only be completed once. + /// + private void FirstInitialize() + { + if (_initialized) + return; + + CalculateSqrLimits(); + + //Only add to handler if always active. + if (!_removeFromManagerOnDisable) + ObjectShakerHandler.AddInstantiatedShaker(this); + + _initialized = true; + } + + /// + /// Calculates the squared limits. + /// + private void CalculateSqrLimits() + { + //Set squared values for faster calculations. + if (_limitMagnitude) + { + _sqrPositionalMagnitudeLimit = Mathf.Pow(_positionalMagnitudeLimit, 2f); + _sqrRotationalMagnitudeLimit = Mathf.Pow(_rotationalMagnitudeLimit, 2f); + } + } + + /// + /// Checks if shakers need to be updated. This is for internal use only. + /// + /// Position offset after a shake. + /// Rotation offset after a shake. + /// True if a shaker was updated. + internal void UpdateShakers() + { + /* Only check if not shaking. Instances can still run when paused. + * This is intentional behavior so that shakes can be calculated + * on cameras which are currently disabled, but may become enabled during + * the middle of the shake. */ + if (!Shaking) + return; + + + /* Try to update shakers. + * If cannot then disable. */ + if (!TryUpdateShakers()) + Disable(); + } + + /// + /// Checks if shakers need to be fixed updated. This is for internal use only. + /// + /// Position offset after a shake. + /// Rotation offset after a shake. + /// True if a shaker was updated. + internal void UpdateFixedShakers() + { + //No fixed values. + if (_fixedRigidbodies == null || _fixedCanvases == null) + return; + + //Dispatch and nullify. + OnShakeFixedUpdate?.Invoke(this, new ShakeUpdate(null, _fixedCanvases, _fixedRigidbodies)); + _fixedCanvases = null; + _fixedRigidbodies = null; + } + + /// + /// Updates shakers and returns true if a shaker was updated. + /// + /// + private bool TryUpdateShakers() + { + ShakeValues rigidbodies = new ShakeValues(); + ShakeValues canvases = new ShakeValues(); + + bool instanceProcessed = false; + for (int i = 0; i < ShakerInstances.Count; i++) + { + //Out of bounds. Shouldn't be possible, sanity check. + if (i >= ShakerInstances.Count) + break; + + ShakerInstance instance = ShakerInstances[i]; + //Instance went null. Also shouldn't be possible, sanity check. + if (instance == null) + { + ShakerInstances.RemoveAt(i); + i--; + continue; + } + //Shaker has ended. + if (instance.ShakerOver()) + { + instanceProcessed = true; + ShakerInstances.RemoveAt(i); + i--; + continue; + } + //Shaker paused. + if (instance.Paused) + { + instanceProcessed = true; + continue; + } + + /* Get new offset from instance and add alterations + * to position and rotation. This is done for each instance so that + * instances can stack. */ + Vector3 offset = instance.UpdateOffset(); + if (instance.Data.PositionalInfluence != Vector3.zero) + { + //Canvases. + if (instance.Data.ShakeCanvases) + canvases.Position += offset.Multiply(instance.Data.PositionalInfluence); + //Rigidbodies. + if (instance.Data.ShakeObjects) + rigidbodies.Position += offset.Multiply(instance.Data.PositionalInfluence); + } + /* Multiply rotational influence by 2.77f so that the rotational + * amount is accurate to what the user sees in the influence field. */ + if (instance.Data.RotationalInfluence != Vector3.zero) + { + //Canvases. + if (instance.Data.ShakeCanvases) + canvases.Rotation += offset.Multiply(instance.Data.RotationalInfluence * 2.77f); + //Rigidbodies + if (instance.Data.ShakeObjects) + rigidbodies.Rotation += offset.Multiply(instance.Data.RotationalInfluence * 2.77f); + } + + instanceProcessed = true; + } + + //Limit positional and rotation magnitudes. + if (_limitMagnitude) + { + //Canvases. + if (canvases.Position.sqrMagnitude > _sqrPositionalMagnitudeLimit) + canvases.Position = canvases.Position.normalized * _positionalMagnitudeLimit; + if (canvases.Rotation.sqrMagnitude > _sqrRotationalMagnitudeLimit) + canvases.Rotation = canvases.Rotation.normalized * _rotationalMagnitudeLimit; + //Rigidbodies. + if (rigidbodies.Position.sqrMagnitude > _sqrPositionalMagnitudeLimit) + rigidbodies.Position = rigidbodies.Position.normalized * _positionalMagnitudeLimit; + if (rigidbodies.Rotation.sqrMagnitude > _sqrRotationalMagnitudeLimit) + rigidbodies.Rotation = rigidbodies.Rotation.normalized * _rotationalMagnitudeLimit; + } + + //If anything was changed. + if (instanceProcessed) + { + //Apply scale. + canvases.Position *= Scale; + canvases.Rotation *= Scale; + rigidbodies.Position *= Scale; + rigidbodies.Rotation *= Scale; + + _fixedCanvases = canvases; + _fixedRigidbodies = rigidbodies; + OnShakeUpdate?.Invoke(this, new ShakeUpdate(null, canvases, rigidbodies)); + } + + return instanceProcessed; + } + + /// + /// Disables this CameraShaker to save cycles. This is for internal use only. + /// + internal void Disable() + { + /* If shaking then update / reset before ending shaking + * so that updates are sent before shaking ending does. */ + if (Shaking) + { + OnShakeUpdate?.Invoke(this, new ShakeUpdate()); + //Send zero on fixed, and nullify fixed values. + OnShakeFixedUpdate?.Invoke(this, new ShakeUpdate(new ShakeValues(), new ShakeValues(), new ShakeValues())); + _fixedCanvases = null; + _fixedRigidbodies = null; + } + + UpdateShaking(false); + } + + /// + /// Adds a ShakerInstance to ShakerInstances. + /// + /// + private void AddShakerInstance(ShakerInstance instance) + { + ShakerInstances.Add(instance); + UpdateShaking(true); + } + + /// + /// Adds shaker instances to this cameras ShakerInstances. For internal use only. + /// + /// + internal void AddShakerInstances(List instances) + { + if (instances.Count == 0) + return; + + ShakerInstances.AddRange(instances); + UpdateShaking(true); + } + + /// + /// Updates the shaking value. + /// + /// + private void UpdateShaking(bool shaking) + { + bool changed = (shaking != Shaking); + Shaking = shaking; + + if (changed) + { + if (Shaking) + { + OnShakingStarted?.Invoke(this); + ObjectShakerHandler.AddShaking(this); + } + else + { + ShakerInstances.Clear(); + OnShakingEnded?.Invoke(this); + ObjectShakerHandler.RemoveShaking(this); + } + } + } + + #region API. + /// + /// Sets Scale value. + /// + /// New scale to use. + public void SetScale(float value) + { + Scale = value; + } + + /// + /// Shakes the camera using data. + /// + /// ShakeData to use. + /// Instance generated using data. + public ShakerInstance Shake(ShakeData data) + { + FirstInitialize(); + + if (data.TotalDuration == 0f && data.FadeInDuration == 0f && data.FadeOutDuration == 0f) + { + if (Debug.isDebugBuild) Debug.LogWarning("No durations are specified in data; cannot generate a ShakerInstance."); + return null; + } + if (data.PositionalInfluence == Vector3.zero && data.RotationalInfluence == Vector3.zero) + { + if (Debug.isDebugBuild) Debug.LogWarning("No influences are specified in data; cannot generate a ShakerInstance."); + return null; + } + + /* Make an instance of the data if it's on disk so that values aren't serialized + * over in the editor when changing values at runtime such as total time, fade out, and more. + * Research suggest objects with a positive instance ID are prefabs, or are placed in the scene, + * while negative values are instantiated. */ + ShakeData dataInstance = data.Instanced ? data : data.CreateInstance(); + dataInstance.Initialize(); + + ShakerInstance shakerInstance = new ShakerInstance(dataInstance); + AddShakerInstance(shakerInstance); + + return shakerInstance; + } + /// + /// Sets the paused state of all shaker instances on this CameraShaker. + /// + /// New paused state. + public void SetPaused(bool value) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.SetPaused(value); + } + } + + /// + /// Abruptly stops all instances on this camera shaker. + /// + public void Stop() + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.Stop(); + } + } + + /// + /// Fades out all instances on this CameraShaker. This operation only works on instances not already fading out. + /// + /// Overrides instance fade out duration with a new value. + public void FadeOut(float? durationOverride = null) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.FadeOut(durationOverride); + } + } + + /// + /// Multiplies magnitude values for all instances on this CameraShaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyMagnitude(float multiplier, float moveRate, bool rateUsesDistance) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.MultiplyMagnitude(multiplier, moveRate, rateUsesDistance); + } + } + + /// + /// Multiplies roughness values for all instances on this CameraShaker. + /// + /// Value to multiply by. 1f is standard multiplication, which in result would be default values. + /// How quickly per second to move towards new multiplier. Values 0f and lower are instant. + /// True to modify move rate based on distance from multiplier. False to move towards goal using moveRate unmodified. + public void MultiplyRoughness(float multiplier, float moveRate, bool rateUsesDistance) + { + foreach (ShakerInstance instance in ShakerInstances) + { + if (instance != null) + instance.MultiplyRoughness(multiplier, moveRate, rateUsesDistance); + } + } + + + #endregion + + #region Editor checks. +#if UNITY_EDITOR + private void OnValidate() + { + if (_limitMagnitude) + { + _positionalMagnitudeLimit = Mathf.Max(_positionalMagnitudeLimit, 0.01f); + _rotationalMagnitudeLimit = Mathf.Max(_rotationalMagnitudeLimit, 0.01f); + + CalculateSqrLimits(); + } + } +#endif + #endregion + + } +} \ No newline at end of file diff --git a/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs.meta b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs.meta new file mode 100644 index 00000000..443f555a --- /dev/null +++ b/Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: d72f66df91b41304b92365de92f39380 +labels: +- Shake +- Camera +- Follow +- Animation +- Effect +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/SmoothCameraShaker/Scripts/Shakers/ObjectShaker.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities.meta b/Assets/FirstGearGames/Utilities.meta new file mode 100644 index 00000000..90158f23 --- /dev/null +++ b/Assets/FirstGearGames/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a54507e0a10c77409b8769ad1375a92 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/Utilities/Arrays.cs b/Assets/FirstGearGames/Utilities/Arrays.cs new file mode 100644 index 00000000..9a598cd6 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Arrays.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; + +namespace FirstGearGames.Utilities.Objects +{ + + public static class Arrays + { + /// + /// Adds an entry to a list if it does not exist already. + /// + /// + /// + /// + public static void AddUnique(this List list, object value) + { + if (!list.Contains((T)value)) + list.Add((T)value); + } + + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Arrays.cs.meta b/Assets/FirstGearGames/Utilities/Arrays.cs.meta new file mode 100644 index 00000000..09d8402f --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Arrays.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 76a2fc6713d4d504fb1c3f004962f574 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Arrays.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/DDOL.cs b/Assets/FirstGearGames/Utilities/DDOL.cs new file mode 100644 index 00000000..eebebf7c --- /dev/null +++ b/Assets/FirstGearGames/Utilities/DDOL.cs @@ -0,0 +1,60 @@ +using UnityEngine; + +namespace FirstGearGames.Utilities.Objects +{ + + + public class DDOL : MonoBehaviour + { + #region Public. + /// + /// Singleton instance of this class. + /// + public static DDOL Instance { get; private set; } + #endregion + + private void Awake() + { + FirstInitialize(); + } + + /// + /// Initializes this script for use. Should only be completed once. + /// + private void FirstInitialize() + { + if (Instance != null && Instance != this) + { + Debug.LogError("Multiple DDOL scripts found. There should be only one."); + return; + } + else + { + Instance = this; + gameObject.name = "FirstGearGames DDOL"; + DontDestroyOnLoad(gameObject); + } + } + + /// + /// Returns the current DDOL or creates one if not yet created. + /// + public static DDOL ReturnDDOL() + { + //Not yet made. + if (Instance == null) + { + GameObject obj = new GameObject(); + DDOL ddol = obj.AddComponent(); + return ddol; + } + //Already made. + else + { + return Instance; + } + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/DDOL.cs.meta b/Assets/FirstGearGames/Utilities/DDOL.cs.meta new file mode 100644 index 00000000..f5593ace --- /dev/null +++ b/Assets/FirstGearGames/Utilities/DDOL.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 2b66878174ece2f4f983390755507db7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/DDOL.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Editor.meta b/Assets/FirstGearGames/Utilities/Editor.meta new file mode 100644 index 00000000..2310f20d --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 32702bf1940665648ba38a2baa5231ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs b/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs new file mode 100644 index 00000000..d91cba7c --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs @@ -0,0 +1,72 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEditor; + +namespace FirstGearGames.Utilities.Editors +{ + + /// + /// SOURCE: https://answers.unity.com/questions/1477896/assign-enum-value-from-editorguienumflagsfield.html + /// + public static class EditorExtension + { + public static int DrawBitMaskField(Rect aPosition, int aMask, System.Type aType, GUIContent aLabel) + { + var itemNames = System.Enum.GetNames(aType); + var itemValues = System.Enum.GetValues(aType) as int[]; + + int val = aMask; + int maskVal = 0; + for (int i = 0; i < itemValues.Length; i++) + { + if (itemValues[i] != 0) + { + if ((val & itemValues[i]) == itemValues[i]) + maskVal |= 1 << i; + } + else if (val == 0) + maskVal |= 1 << i; + } + int newMaskVal = EditorGUI.MaskField(aPosition, aLabel, maskVal, itemNames); + int changes = maskVal ^ newMaskVal; + + for (int i = 0; i < itemValues.Length; i++) + { + if ((changes & (1 << i)) != 0) + { + if ((newMaskVal & (1 << i)) != 0) + { + if (itemValues[i] == 0) + { + val = 0; + break; + } + else + val |= itemValues[i]; + } + else + { + val &= ~itemValues[i]; + } + } + } + return val; + } + } + + [CustomPropertyDrawer(typeof(BitMaskAttribute))] + public class EnumBitMaskPropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty prop, GUIContent label) + { + var typeAttr = attribute as BitMaskAttribute; + // Add the actual int value behind the field name + label.text = label.text + " (" + prop.intValue + ")"; + prop.intValue = EditorExtension.DrawBitMaskField(position, prop.intValue, typeAttr.propType, label); + } + } + +} + +#endif \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs.meta b/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs.meta new file mode 100644 index 00000000..845256b7 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 1aa5b3604b2806d43932a7c78d4d287d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Editor/DrawBitMaskField.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/EditorRuntime.meta b/Assets/FirstGearGames/Utilities/EditorRuntime.meta new file mode 100644 index 00000000..35a5c009 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/EditorRuntime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efa114911b78df5489aa6f96288ac9ef +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs b/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs new file mode 100644 index 00000000..f79c31df --- /dev/null +++ b/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs @@ -0,0 +1,19 @@ + +using UnityEngine; + +namespace FirstGearGames.Utilities.Editors +{ + + /// + /// SOURCE: https://answers.unity.com/questions/1477896/assign-enum-value-from-editorguienumflagsfield.html + /// + public class BitMaskAttribute : PropertyAttribute + { + public System.Type propType; + public BitMaskAttribute(System.Type aType) + { + propType = aType; + } + } + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs.meta b/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs.meta new file mode 100644 index 00000000..d6fb3bd9 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: d29005cecd48ddc4a9017c0db498d576 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/EditorRuntime/BitMaskAttribute.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Enums.cs b/Assets/FirstGearGames/Utilities/Enums.cs new file mode 100644 index 00000000..2361a8c8 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Enums.cs @@ -0,0 +1,109 @@ +using System; + +namespace FirstGearGames.Utilities.Maths +{ + + + public static class Enums + { + /// + /// Determine an enum value from a given string. This can be an expensive function. + /// + /// + /// Text of string. + /// Default value if enum couldn't be found. + /// Enum found or default value if no enum is found. + public static T FromString(string text, T defaultValue) + { + //If string is empty or null return default value. + if (string.IsNullOrEmpty(text)) + return defaultValue; + //If enum isn't defined return default value. + if (!Enum.IsDefined(typeof(T), (string)text)) + return defaultValue; + //Return parsed value. + return (T)Enum.Parse(typeof(T), text, true); + } + + /// + /// Returns if whole(extended enum) has any of the part values. + /// + /// + /// Values to check for within whole. + /// Returns true part is within whole. + public static bool Contains(this Enum whole, Enum part) + { + //If not the same type of Enum return false. + /* Commented out for performance. Designer + * should know better than to compare two different + * enums. */ + //if (!SameType(value, target)) + // return false; + + /* Convert enum values to ulong. With so few + * values a uint would be safe, but should + * the options expand ulong is safer. */ + ulong wholeNum = Convert.ToUInt64(whole); + ulong partNum = Convert.ToUInt64(part); + + return ((wholeNum & partNum) != 0); + } + /// + /// Returns if part values contains any of whole(extended enum). + /// + /// + /// + /// Returns true whole is within part. + public static bool ReverseContains(this Enum whole, Enum part) + { + //If not the same type of Enum return false. + /* Commented out for performance. Designer + * should know better than to compare two different + * enums. */ + //if (!SameType(value, target)) + // return false; + + /* Convert enum values to ulong. With so few + * values a uint would be safe, but should + * the options expand ulong is safer. */ + ulong wholeNum = Convert.ToUInt64(whole); + ulong partNum = Convert.ToUInt64(part); + + return ((partNum & wholeNum) != 0); + } + + /// + /// Returns if an enum equals a specified value. + /// + /// + /// + /// + public static bool Equals(this Enum value, Enum target) + { + //If not the same type of Enum return false. + /* Commented out for performance. Designer + * should know better than to compare two different + * enums. */ + //if (!SameType(value, target)) + // return false; + + ulong valueNum = Convert.ToUInt64(value); + ulong wholeNum = Convert.ToUInt64(target); + + return (valueNum == wholeNum); + } + + /// + /// Returns if a is the same Enum as b. + /// + /// + /// + /// + public static bool SameType(Enum a, Enum b) + { + return (a.GetType() == b.GetType()); + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Enums.cs.meta b/Assets/FirstGearGames/Utilities/Enums.cs.meta new file mode 100644 index 00000000..d8d5bd3b --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Enums.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 1bc10a70cf690dd47bcb3173f30d3d3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Enums.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Floats.cs b/Assets/FirstGearGames/Utilities/Floats.cs new file mode 100644 index 00000000..0887af93 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Floats.cs @@ -0,0 +1,132 @@ +using System; +using UnityEngine; + +namespace FirstGearGames.Utilities.Maths +{ + + + public static class Floats + { + private static System.Random _random = new System.Random(); + + /// + /// Provides a random inclusive int within a given range. Preferred over Unity's Random to eliminate confusion as Unity uses inclusive for floats max, and exclusive for int max. + /// + /// Inclusive minimum value. + /// Inclusive maximum value. + /// + public static float RandomInclusiveRange(float minimum, float maximum) + { + double min = Convert.ToDouble(minimum); + double max = Convert.ToDouble(maximum); + + double result = (_random.NextDouble() * (max - min)) + min; + return Convert.ToSingle(result); + } + + /// + /// Returns a random float between 0f and 1f. + /// + /// + public static float Random01() + { + return RandomInclusiveRange(0f, 1f); + } + + /// + /// Returns if a target float is within variance of the source float. + /// + /// + /// + /// + public static bool Near(this float a, float b, float tolerance = 0.01f) + { + return (Mathf.Abs(a - b) <= tolerance); + } + + /// + /// Clamps a float and returns if the float required clamping. + /// + /// + /// + /// + /// + /// + public static float Clamp(float value, float min, float max, ref bool clamped) + { + clamped = (value < min); + if (clamped) + return min; + + clamped = (value > min); + if (clamped) + return max; + + clamped = false; + return value; + } + + /// + /// Returns a float after being adjusted by the specified variance. + /// + /// + /// + /// + public static float Variance(this float source, float variance) + { + float pickedVariance = RandomInclusiveRange(1f - variance, 1f + variance); + return (source * pickedVariance); + } + /// + /// Sets a float value to result after being adjusted by the specified variance. + /// + /// + /// + /// + public static void Variance(this float source, float variance, ref float result) + { + float pickedVariance = RandomInclusiveRange(1f - variance, 1f + variance); + result = (source * pickedVariance); + } + + /// + /// Returns negative-one, zero, or postive-one of a value instead of just negative-one or positive-one. + /// + /// Value to sign. + /// Precise sign. + public static float PreciseSign(float value) + { + if (value == 0f) + return 0f; + else + return (Mathf.Sign(value)); + } + + /// + /// Returns if a float is within a range. + /// + /// Value of float. + /// Minimum of range. + /// Maximum of range. + /// + public static bool InRange(this float source, float rangeMin, float rangeMax) + { + return (source >= rangeMin && source <= rangeMax); + } + + /// + /// Randomly flips a float value. + /// + /// + /// + public static float RandomlyFlip(float value) + { + if (Ints.RandomInclusiveRange(0, 1) == 0) + return value; + else + return (value *= -1f); + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Floats.cs.meta b/Assets/FirstGearGames/Utilities/Floats.cs.meta new file mode 100644 index 00000000..1c8c94ae --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Floats.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 5dbacafb14b963b419b64fb35a8add7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Floats.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs b/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs new file mode 100644 index 00000000..97995c81 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs @@ -0,0 +1,70 @@ +using UnityEngine; + +namespace FirstGearGames.Utilities.Maths +{ + + public class FrameRateCalculator + { + #region Private. + /// + /// Time used to generate Frames. + /// + private float _timePassed = 0f; + /// + /// Frames performed in TimePassed. Float is used to reduce casting. + /// + private float _frames = 0; + #endregion + + #region Const. + /// + /// How many frames to pass before slicing calculation values. + /// + private const int RESET_FRAME_COUNT = 60; + /// + /// Percentage to slice calculation values by. Higher percentages result in smoother frame rate adjustments. + /// + private const float CALCULATION_SLICE_PERCENT = 0.7f; + #endregion + + /// + /// Gets the current frame rate. + /// + /// + public int GetIntFrameRate() + { + return Mathf.CeilToInt((_frames / _timePassed)); + } + /// + /// Gets the current frame rate. + /// + /// + public float GetFloatFrameRate() + { + return (_frames / _timePassed); + } + + /// + /// Updates frame count and time passed. + /// + /// True if this update hit reset frame. + public bool Update(float unscaledDeltaTime) + { + _timePassed += unscaledDeltaTime; + _frames++; + + if (_frames > RESET_FRAME_COUNT) + { + _frames *= CALCULATION_SLICE_PERCENT; + _timePassed *= CALCULATION_SLICE_PERCENT; + return true; + } + else + { + return false; + } + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs.meta b/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs.meta new file mode 100644 index 00000000..bc4a04f0 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/FrameRateCalculator.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: e46d803097ca61e408d44faa9aa1893a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/FrameRateCalculator.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Ints.cs b/Assets/FirstGearGames/Utilities/Ints.cs new file mode 100644 index 00000000..c1a7a7ac --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Ints.cs @@ -0,0 +1,91 @@ + +using UnityEngine; + +namespace FirstGearGames.Utilities.Maths +{ + + /// + /// Various utility classes relating to floats. + /// + public static class Ints + { + private static System.Random _random = new System.Random(); + + /// + /// Pads an index a specified value. Preferred over typical padding so that pad values used with skins can be easily found in the code. + /// + /// + /// + /// + public static string PadInt(int value, int padding) + { + return value.ToString().PadLeft(padding, '0'); + } + + /// + /// Provides a random inclusive int within a given range. Preferred over Unity's Random to eliminate confusion as Unity uses inclusive for floats max, and exclusive for int max. + /// + /// Inclusive minimum value. + /// Inclusive maximum value. + /// + public static int RandomInclusiveRange(int minimum, int maximum) + { + return _random.Next(minimum, maximum + 1); + } + /// + /// Provides a random exclusive int within a given range. Preferred over Unity's Random to eliminate confusion as Unity uses inclusive for floats max, and exclusive for int max. + /// + /// Inclusive minimum value. + /// Exclusive maximum value. + /// + public static int RandomExclusiveRange(int minimum, int maximum) + { + return _random.Next(minimum, maximum); + } + + /// + /// Returns a clamped int within a specified range. + /// + /// Value to clamp. + /// Minimum value. + /// Maximum value. + /// + public static int Clamp(int value, int minimum, int maximum) + { + if (value < minimum) + value = minimum; + else if (value > maximum) + value = maximum; + + return value; + } + + /// + /// Determins if all values passed in are the same. + /// + /// Values to check. + /// True if all values are the same. + public static bool ValuesMatch(params int[] values) + { + if (values.Length == 0) + { + Debug.Log("Ints -> ValuesMatch -> values array is empty."); + return false; + } + + //Assign first value as element in first array. + int firstValue = values[0]; + //Check all values. + for (int i = 1; i < values.Length; i++) + { + //If any value doesn't match first value return false. + if (firstValue != values[i]) + return false; + } + + //If this far all values match. + return true; + } + } + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Ints.cs.meta b/Assets/FirstGearGames/Utilities/Ints.cs.meta new file mode 100644 index 00000000..03a8e571 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Ints.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 113d58f1d7d39544aaf7101fee558070 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Ints.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Structures.meta b/Assets/FirstGearGames/Utilities/Structures.meta new file mode 100644 index 00000000..9eee18ab --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Structures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0177a3ecaa12e4540886356516893275 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs b/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs new file mode 100644 index 00000000..dcb8b345 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs @@ -0,0 +1,35 @@ +using FirstGearGames.Utilities.Maths; + +namespace FirstGearGames.Utilities.Structures +{ + + + [System.Serializable] + public struct FloatRange + { + public FloatRange(float minimum, float maximum) + { + Minimum = minimum; + Maximum = maximum; + } + /// + /// Minimum range. + /// + public float Minimum; + /// + /// Maximum range. + /// + public float Maximum; + + /// + /// Returns a random value between Minimum and Maximum. + /// + /// + public float RandomInclusive() + { + return Floats.RandomInclusiveRange(Minimum, Maximum); + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs.meta b/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs.meta new file mode 100644 index 00000000..84e95db0 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs.meta @@ -0,0 +1,20 @@ +fileFormatVersion: 2 +guid: a29ab16c2faf95a4e912b7bf31c39a7f +timeCreated: 1527199791 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Structures/RangeFloat.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs b/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs new file mode 100644 index 00000000..92c8cca1 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs @@ -0,0 +1,43 @@ +using FirstGearGames.Utilities.Maths; + +namespace FirstGearGames.Utilities.Structures +{ + + + [System.Serializable] + public struct IntRange + { + public IntRange(int minimum, int maximum) + { + Minimum = minimum; + Maximum = maximum; + } + /// + /// Minimum range. + /// + public int Minimum; + /// + /// Maximum range. + /// + public int Maximum; + + /// + /// Returns an exclusive random value between Minimum and Maximum. + /// + /// + public float RandomExclusive() + { + return Ints.RandomExclusiveRange(Minimum, Maximum); + } + /// + /// Returns an inclusive random value between Minimum and Maximum. + /// + /// + public float RandomInclusive() + { + return Ints.RandomInclusiveRange(Minimum, Maximum); + } + } + + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs.meta b/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs.meta new file mode 100644 index 00000000..2b6b5728 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Structures/RangeInt.cs.meta @@ -0,0 +1,20 @@ +fileFormatVersion: 2 +guid: 42b78623511ca6b479a865feddd442b4 +timeCreated: 1527199791 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Structures/RangeInt.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Transforms.cs b/Assets/FirstGearGames/Utilities/Transforms.cs new file mode 100644 index 00000000..a0e2549d --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Transforms.cs @@ -0,0 +1,75 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace FirstGearGames.Utilities.Objects +{ + + public static class Transforms + { + /// + /// Returns the topmost parent for a transform. + /// + /// + /// + public static Transform TopmostParent(this Transform t) + { + if (t.parent == null) + { + return t; + } + else + { + Transform result = t.parent; + while (result.parent != null) + result = result.parent; + + return result; + } + } + + + /// + /// Destroys all children under the specified transform. + /// + /// + public static void DestroyChildren(this Transform t, bool destroyImmediately = false) + { + foreach (Transform child in t) + { + if (destroyImmediately) + MonoBehaviour.DestroyImmediate(child.gameObject); + else + MonoBehaviour.Destroy(child.gameObject); + } + } + + /// + /// Gets components in children and optionally parent. + /// + /// + /// + /// + /// + /// + public static void GetComponentsInChildren(Transform parent, List results, bool includeParent = true, bool includeInactive = false) where T : Component + { + if (!includeParent) + { + List current = new List(); + for (int i = 0; i < parent.childCount; i++) + { + parent.GetChild(i).GetComponentsInChildren(includeInactive, current); + results.AddRange(current); + } + } + else + { + parent.GetComponentsInChildren(includeInactive, results); + } + } + + } + + + +} diff --git a/Assets/FirstGearGames/Utilities/Transforms.cs.meta b/Assets/FirstGearGames/Utilities/Transforms.cs.meta new file mode 100644 index 00000000..4b6afdb4 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Transforms.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: fd1cd9a8be59cc542983ed59c3e220ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Transforms.cs + uploadId: 376379 diff --git a/Assets/FirstGearGames/Utilities/Vectors.cs b/Assets/FirstGearGames/Utilities/Vectors.cs new file mode 100644 index 00000000..a30142d4 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Vectors.cs @@ -0,0 +1,138 @@ +using UnityEngine; + +namespace FirstGearGames.Utilities.Maths +{ + + public static class Vectors + { + #region Vector3. + /// + /// Calculates the linear parameter t that produces the interpolant value within the range [a, b]. + /// + /// + /// + /// + /// + public static float InverseLerp(Vector3 a, Vector3 b, Vector3 value) + { + Vector3 ab = b - a; + Vector3 av = value - a; + return Mathf.Clamp01(Vector3.Dot(av, ab) / Vector3.Dot(ab, ab)); + } + + /// + /// Returns if the target Vector3 is within variance of the source Vector3. + /// + /// Source vector. + /// Target vector. + /// How close the target vector must be to be considered close. + /// + public static bool Near(this Vector3 a, Vector3 b, float tolerance = 0.01f) + { + return (Vector3.Distance(a, b) <= tolerance); + } + + /// + /// Returns if any values within a Vector3 are NaN. + /// + /// + /// + public static bool IsNan(this Vector3 source) + { + return (float.IsNaN(source.x) || float.IsNaN(source.y) || float.IsNaN(source.z)); + } + + /// + /// Lerp between three Vector3 values. + /// + /// + /// + /// + /// + /// + public static Vector3 Lerp3(Vector3 a, Vector3 b, Vector3 c, float percent) + { + Vector3 r0 = Vector3.Lerp(a, b, percent); + Vector3 r1 = Vector3.Lerp(b, c, percent); + return Vector3.Lerp(r0, r1, percent); + } + + /// + /// Lerp between three Vector3 values. + /// + /// + /// + /// + public static Vector3 Lerp3(Vector3[] vectors, float percent) + { + if (vectors.Length < 3) + { + Debug.LogWarning("Vectors -> Lerp3 -> Vectors length must be 3."); + return Vector3.zero; + } + + return Lerp3(vectors[0], vectors[1], vectors[2], percent); + } + + /// + /// Multiplies a Vector3 by another. + /// + /// + /// + /// + public static Vector3 Multiply(this Vector3 src, Vector3 multiplier) + { + return new Vector3(src.x * multiplier.x, src.y * multiplier.y, src.z * multiplier.z); + } + #endregion + + #region Vector2. + + /// + /// Lerp between three Vector2 values. + /// + /// + /// + /// + /// + /// + public static Vector2 Lerp3(Vector2 a, Vector2 b, Vector2 c, float percent) + { + Vector2 r0 = Vector2.Lerp(a, b, percent); + Vector2 r1 = Vector2.Lerp(b, c, percent); + return Vector2.Lerp(r0, r1, percent); + } + + /// + /// Lerp between three Vector2 values. + /// + /// + /// + /// + public static Vector2 Lerp2(Vector2[] vectors, float percent) + { + if (vectors.Length < 3) + { + Debug.LogWarning("Vectors -> Lerp3 -> Vectors length must be 3."); + return Vector2.zero; + } + + return Lerp3(vectors[0], vectors[1], vectors[2], percent); + } + + + /// + /// Multiplies a Vector2 by another. + /// + /// + /// + /// + public static Vector2 Multiply(this Vector2 src, Vector2 multiplier) + { + return new Vector2(src.x * multiplier.x, src.y * multiplier.y); + } + #endregion + + } + +} \ No newline at end of file diff --git a/Assets/FirstGearGames/Utilities/Vectors.cs.meta b/Assets/FirstGearGames/Utilities/Vectors.cs.meta new file mode 100644 index 00000000..453f90e3 --- /dev/null +++ b/Assets/FirstGearGames/Utilities/Vectors.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 16a2a79e3d8834044963e588c63af3e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 162991 + packageName: Smooth Camera Shaker + packageVersion: 2.12 + assetPath: Assets/FirstGearGames/Utilities/Vectors.cs + uploadId: 376379 diff --git a/Assets/Prefabs/TestTrap.meta b/Assets/Prefabs/TestTrap.meta new file mode 100644 index 00000000..81187581 --- /dev/null +++ b/Assets/Prefabs/TestTrap.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4135f595c143a9244990fdb3f545e96f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/TestTrap/Cube.prefab b/Assets/Prefabs/TestTrap/Cube.prefab new file mode 100644 index 00000000..19ce5e2c --- /dev/null +++ b/Assets/Prefabs/TestTrap/Cube.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6121659928201372921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8663679745827294618} + - component: {fileID: 5856384102141489394} + - component: {fileID: 6371125245594434221} + - component: {fileID: 6555182710447120572} + - component: {fileID: 3736413552587969552} + - component: {fileID: 8714104882223651289} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8663679745827294618 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.31677, y: -3.33, z: -11.34647} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5856384102141489394 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6371125245594434221 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &6555182710447120572 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &3736413552587969552 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + serializedVersion: 5 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &8714104882223651289 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6121659928201372921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1746534d206b0fe4b8e895df471d3d56, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DeathTrapCollision diff --git a/Assets/Prefabs/TestTrap/Cube.prefab.meta b/Assets/Prefabs/TestTrap/Cube.prefab.meta new file mode 100644 index 00000000..c836fc19 --- /dev/null +++ b/Assets/Prefabs/TestTrap/Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2489c1d80f2f9074888a06f59f372161 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/TEST.unity b/Assets/Scenes/TEST.unity new file mode 100644 index 00000000..6541659e --- /dev/null +++ b/Assets/Scenes/TEST.unity @@ -0,0 +1,922 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 2 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &222760714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 222760716} + - component: {fileID: 222760715} + m_Layer: 0 + m_Name: MazeController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &222760715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222760714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f30df611110713742ab984f5bead5d88, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Hallucinate.GameSetup.Maze.MazeRenderer + visualProfile: {fileID: 11400000, guid: 15b745b0bb979b84ea937c679ee0f1ed, type: 2} + floorHeight: 3.5 +--- !u!4 &222760716 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222760714} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 401313294} + m_Father: {fileID: 914529406} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &401313293 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 401313294} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &401313294 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 401313293} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 222760716} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &636054810 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636054811} + - component: {fileID: 636054812} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &636054811 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636054810} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.7860072, y: -0.3591547, z: 10.121648} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1878068451} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &636054812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636054810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.Volume + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 66d4e46db74eed8459b64c8476ecb24a, type: 2} +--- !u!1001 &666868242 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2120030154} + m_Modifications: + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalPosition.x + value: 3.5546 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalPosition.y + value: -4.79626 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalPosition.z + value: -5.60193 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2771692228748849855, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_Name + value: Main Camera + objectReference: {fileID: 0} + - target: {fileID: 2771692228748849855, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_Layer + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: fpvTarget + value: + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: inputReader + value: + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: sensitivity + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: followTarget + value: + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: 'characterRenderers.Array.data[0]' + value: + objectReference: {fileID: 0} + - target: {fileID: 3657229949309460766, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: 'characterFading.characterRenderers.Array.data[0]' + value: + objectReference: {fileID: 0} + - target: {fileID: 8391577239842762580, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + propertyPath: m_RenderPostProcessing + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} +--- !u!4 &666868243 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2207112960010484425, guid: fb7874830b9e56341bf88f2a1123c677, type: 3} + m_PrefabInstance: {fileID: 666868242} + m_PrefabAsset: {fileID: 0} +--- !u!1 &914529405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 914529406} + m_Layer: 0 + m_Name: _MAP + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &914529406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914529405} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 222760716} + - {fileID: 1781957725} + - {fileID: 2030353803} + m_Father: {fileID: 2120030154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &982050944 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 982050945} + - component: {fileID: 982050946} + m_Layer: 0 + m_Name: _MANAGER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &982050945 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982050944} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 345, y: 194, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2100909299} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &982050946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 982050944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ca1a9a3813a058946990c84846f54c17, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DeathTrapSpawner + deathTrapPrefab: {fileID: 6121659928201372921, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + spawnInterval: 10 + minLifetime: 3 + maxLifetime: 8 +--- !u!1 &1490570703 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1490570704} + - component: {fileID: 1490570706} + - component: {fileID: 1490570705} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1490570704 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490570703} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 3.5546, y: -2.7962599, z: 4.39807} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1878068451} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &1490570705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490570703} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1490570706 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1490570703} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 0.5, y: 0.5} + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1781957724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1781957725} + - component: {fileID: 1781957728} + - component: {fileID: 1781957727} + - component: {fileID: 1781957726} + m_Layer: 6 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1781957725 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1781957724} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -10, z: 0} + m_LocalScale: {x: 100, y: 1, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 914529406} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!64 &1781957726 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1781957724} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1781957727 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1781957724} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e2e2684e969402049b87d7f81417c603, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1781957728 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1781957724} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1878068450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1878068451} + m_Layer: 0 + m_Name: _Enviroment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1878068451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878068450} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1490570704} + - {fileID: 636054811} + m_Father: {fileID: 2120030154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2030353802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2030353803} + - component: {fileID: 2030353804} + m_Layer: 0 + m_Name: MazeManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2030353803 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2030353802} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 914529406} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2030353804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2030353802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3607adabe0c29c34591af73b414eb17a, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Hallucinate.GameSetup.Maze.MazeManager + mazes: + - scale: 1 + - scale: 1 + floorHeight: 1.5 + connectionsPerFloor: 2 + selectedAlgorithm: 0 + width: 30 + depth: 30 + debugMode: 1 + visualizationInterval: 0.05 + mazeRenderer: {fileID: 222760715} + mazeContainer: {fileID: 401313294} + straightManHoleLadder: {fileID: 919132149155446097, guid: bea94d2de5b89ea4cba759f4a73149d4, type: 3} + straightManHoleUp: {fileID: 919132149155446097, guid: df993452c905ccd4a8db16303509c4aa, type: 3} + deadendManHoleLadder: {fileID: 919132149155446097, guid: c7b8e72ff8d936143a810e1baa494428, type: 3} + deadendManHoleUp: {fileID: 919132149155446097, guid: 1e0fe08755c202644ab57e3ecb75ea61, type: 3} +--- !u!1 &2100909298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2100909299} + - component: {fileID: 2100909301} + - component: {fileID: 2100909300} + m_Layer: 0 + m_Name: _PlayerDataManger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2100909299 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100909298} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 982050945} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2100909300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100909298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1552182283, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: Fusion.Runtime.dll::Fusion.NetworkObject + SortKey: 1324324747 + ObjectInterest: 1 + Flags: 262145 + NestedObjects: [] + NetworkedBehaviours: + - {fileID: 2100909301} + ForceRemoteRenderTimeframe: 0 +--- !u!114 &2100909301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100909298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b3d9934ebd60c9c4ea3e464b77fd7ae0, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::_PlayerDataManager + _Players: + _items: [] +--- !u!1 &2120030153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2120030154} + m_Layer: 0 + m_Name: _SCENE + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2120030154 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120030153} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.5546, y: 5.79626, z: -4.39807} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 666868243} + - {fileID: 914529406} + - {fileID: 1878068451} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4899204113511701172 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6121659928201372921, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalPosition.x + value: 2.31677 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalPosition.y + value: -3.33 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalPosition.z + value: -11.34647 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8663679745827294618, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2489c1d80f2f9074888a06f59f372161, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 2120030154} + - {fileID: 982050945} + - {fileID: 4899204113511701172} diff --git a/Assets/Scenes/TEST.unity.meta b/Assets/Scenes/TEST.unity.meta new file mode 100644 index 00000000..70a461ea --- /dev/null +++ b/Assets/Scenes/TEST.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f048f3023e700c64f825577e61ff6112 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Manager.meta b/Assets/Scripts/Manager.meta new file mode 100644 index 00000000..86246b9e --- /dev/null +++ b/Assets/Scripts/Manager.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a48b89f983fff0642987cca2cb779dd4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Manager/DeathTrapCollision.cs b/Assets/Scripts/Manager/DeathTrapCollision.cs new file mode 100644 index 00000000..d205b750 --- /dev/null +++ b/Assets/Scripts/Manager/DeathTrapCollision.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DeathTrapCollision : MonoBehaviour { + private void OnTriggerEnter(Collider other) { + // Check if the object colliding with the trap is the player + // Assumes the player character (e.g., Bob) has the tag "Player" + if (other.CompareTag("Player")) { + // Trigger the Game Over event via the GameManager + FindObjectOfType().TriggerGameOver(); + + // Destroy the player object upon collision + Destroy(other.gameObject); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/DeathTrapCollision.cs.meta b/Assets/Scripts/Manager/DeathTrapCollision.cs.meta new file mode 100644 index 00000000..1de32b94 --- /dev/null +++ b/Assets/Scripts/Manager/DeathTrapCollision.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1746534d206b0fe4b8e895df471d3d56 \ No newline at end of file diff --git a/Assets/Scripts/Manager/DeathTrapSpawner.cs b/Assets/Scripts/Manager/DeathTrapSpawner.cs new file mode 100644 index 00000000..e7a53961 --- /dev/null +++ b/Assets/Scripts/Manager/DeathTrapSpawner.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DeathTrapSpawner : MonoBehaviour { + public GameObject deathTrapPrefab; // Prefab for the death trap + public float spawnInterval = 10f; // Time interval between spawns + public float minLifetime = 3f; // Minimum lifetime of the death trap + public float maxLifetime = 8f; // Maximum lifetime of the death trap + + private Vector3 GetRandomPosition() { + Vector3 randomPosition; + int attempts = 0; + + do { + // Generate random X and Z positions rounded to nearest 10, then offset by 5 + float x = Mathf.Round(Random.Range(-45f, 45f) / 10f) * 10f + 5f; + float z = Mathf.Round(Random.Range(-45f, 45f) / 10f) * 10f + 5f; + + // Fixed Y position for traps + randomPosition = new Vector3(x, 3.5f, z); + + attempts++; + if (attempts > 100) { + Debug.LogWarning("No valid position found for the death trap."); + + // Exit if too many attempts are made + break; + } + } + while ( + Physics.CheckBox(randomPosition, new Vector3(2.5f, 3.5f, 2.5f), Quaternion.identity, LayerMask.GetMask("Walls")) || // Check for walls + Physics.CheckBox(randomPosition, new Vector3(2.5f, 3.5f, 2.5f), Quaternion.identity, LayerMask.GetMask("Collectible")) || // Check for collectibles + Physics.CheckBox(randomPosition, new Vector3(2.5f, 3.5f, 2.5f), Quaternion.identity, LayerMask.GetMask("Player")) // Check for player + ); + + // Return a valid position for the death trap + return randomPosition; + } + + private IEnumerator SpawnDeathTraps() { + while (true) { + // Generate a random spawn position + Vector3 spawnPosition = GetRandomPosition(); + + // Spawn a new death trap at the random position + GameObject deathTrap = Instantiate(deathTrapPrefab, spawnPosition, Quaternion.identity); + + // Determine a random lifetime for the trap and destroy it after that time + float lifetime = Random.Range(minLifetime, maxLifetime); + Destroy(deathTrap, lifetime); + + // Wait for the specified spawn interval before spawning the next trap + yield return new WaitForSeconds(spawnInterval); + } + } + + private void Start() { + // Start the coroutine to spawn death traps + StartCoroutine(SpawnDeathTraps()); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/DeathTrapSpawner.cs.meta b/Assets/Scripts/Manager/DeathTrapSpawner.cs.meta new file mode 100644 index 00000000..972aa857 --- /dev/null +++ b/Assets/Scripts/Manager/DeathTrapSpawner.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ca1a9a3813a058946990c84846f54c17 \ No newline at end of file diff --git a/Assets/Scripts/Manager/GameManager.cs b/Assets/Scripts/Manager/GameManager.cs new file mode 100644 index 00000000..7262ba58 --- /dev/null +++ b/Assets/Scripts/Manager/GameManager.cs @@ -0,0 +1,35 @@ +using Fusion; +using TMPro; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class GameManager : NetworkBehaviour +{ + public Text gameOverText; // Reference to the Game Over text UI element + + private bool isGameOver = false; // Flag to check if the game is over + + private void Start() { + if (gameOverText != null) { + // Ensure the Game Over text is hidden at the start of the game + gameOverText.gameObject.SetActive(false); + } + } + + public void TriggerGameOver() { + if (!isGameOver) { + // Mark the game as over + isGameOver = true; + + if (gameOverText != null) { + // Display the Game Over text + gameOverText.gameObject.SetActive(true); + } + + // Freeze the game by setting the time scale to 0 + Time.timeScale = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Manager/GameManager.cs.meta b/Assets/Scripts/Manager/GameManager.cs.meta new file mode 100644 index 00000000..16aefb3f --- /dev/null +++ b/Assets/Scripts/Manager/GameManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1180f4b733c7599498f6eb4e77848e23 \ No newline at end of file