From 2b3ff30aebd607634fffe5ca76539bb26a8c1d41 Mon Sep 17 00:00:00 2001 From: Alexandre Coirier Date: Tue, 8 Sep 2026 14:01:30 +0200 Subject: [PATCH] feat: Rain mapping --- Assets/Starter Assets.meta | 8 + Assets/Starter Assets/Editor.meta | 8 + .../Editor/StarterAssetsDeployMenu.cs | 154 + .../Editor/StarterAssetsDeployMenu.cs.meta | 18 + .../ThirdPersonStarterAssetsDeployMenu.cs | 102 + ...ThirdPersonStarterAssetsDeployMenu.cs.meta | 10 + Assets/Starter Assets/Editor/URPWizard.meta | 8 + .../Editor/URPWizard/URPWizard.asmdef | 24 + .../Editor/URPWizard/URPWizard.asmdef.meta | 14 + .../Editor/URPWizard/URPWizard.cs | 73 + .../Editor/URPWizard/URPWizard.cs.meta | 18 + .../Editor/Unity.StartAssets.Editor.asmdef | 19 + .../Unity.StartAssets.Editor.asmdef.meta | 14 + Assets/Starter Assets/Runtime.meta | 8 + Assets/Starter Assets/Runtime/Common.meta | 8 + .../Runtime/Common/BasicRigidBodyPush.cs | 35 + .../Runtime/Common/BasicRigidBodyPush.cs.meta | 18 + .../Runtime/FirstPersonController.meta | 8 + .../FirstPersonController/Prefabs.meta | 8 + .../Prefabs/MainCamera.prefab | 174 + .../Prefabs/MainCamera.prefab.meta | 14 + .../Prefabs/NestedParent_Unpack.prefab | 394 + .../Prefabs/NestedParent_Unpack.prefab.meta | 14 + .../Prefabs/PlayerCapsule.prefab | 367 + .../Prefabs/PlayerCapsule.prefab.meta | 14 + .../Prefabs/PlayerFollowCamera.prefab | 122 + .../Prefabs/PlayerFollowCamera.prefab.meta | 14 + .../FirstPersonController/Scripts.meta | 8 + .../Scripts/FirstPersonController.cs | 268 + .../Scripts/FirstPersonController.cs.meta | 18 + .../Starter Assets/Runtime/InputSystem.meta | 8 + .../InputSystem/StarterAssets.inputactions | 270 + .../StarterAssets.inputactions.meta | 21 + .../StarterAssets.inputsettings.asset | 26 + .../StarterAssets.inputsettings.asset.meta | 15 + .../InputSystem/StarterAssetsInputs.cs | 80 + .../InputSystem/StarterAssetsInputs.cs.meta | 18 + Assets/Starter Assets/Runtime/Mobile.meta | 8 + .../Runtime/Mobile/Prefabs.meta | 8 + .../Runtime/Mobile/Prefabs/EventSystem.meta | 8 + .../Prefabs/EventSystem/UI_EventSystem.prefab | 87 + .../EventSystem/UI_EventSystem.prefab.meta | 14 + .../Mobile/Prefabs/UI_TouchScreenInput.prefab | 155 + .../Prefabs/UI_TouchScreenInput.prefab.meta | 14 + .../Runtime/Mobile/Scripts.meta | 8 + .../Mobile/Scripts/TouchscreenInput.cs | 129 + .../Mobile/Scripts/TouchscreenInput.cs.meta | 18 + .../Runtime/Mobile/Scripts/Utilities.meta | 8 + .../MobileDisableAutoSwitchControls.cs | 41 + .../MobileDisableAutoSwitchControls.cs.meta | 18 + .../Runtime/Mobile/Scripts/VirtualInput.cs | 28 + .../Mobile/Scripts/VirtualInput.cs.meta | 18 + Assets/Starter Assets/Runtime/Mobile/UI.meta | 8 + .../Runtime/Mobile/UI/Images.meta | 8 + .../Mobile/UI/Images/UI_Circle_Bevel_Base.png | 3 + .../UI/Images/UI_Circle_Bevel_Base.png.meta | 139 + .../Mobile/UI/Images/UI_Circle_Faded.png | 3 + .../Mobile/UI/Images/UI_Circle_Faded.png.meta | 139 + .../Runtime/Mobile/UI/Images/UI_Icon_Jump.png | 3 + .../Mobile/UI/Images/UI_Icon_Jump.png.meta | 139 + .../Runtime/Mobile/UI/Images/UI_Icon_Look.png | 3 + .../Mobile/UI/Images/UI_Icon_Look.png.meta | 139 + .../Runtime/Mobile/UI/Images/UI_Icon_Move.png | 3 + .../Mobile/UI/Images/UI_Icon_Move.png.meta | 139 + .../Mobile/UI/Images/UI_Icon_Sprint.png | 3 + .../Mobile/UI/Images/UI_Icon_Sprint.png.meta | 139 + .../Mobile/UI/ToucScreenInputStyle.uss | 93 + .../Mobile/UI/ToucScreenInputStyle.uss.meta | 18 + .../UI/TouchScreenInputDefaultStyle.tss | 5 + .../UI/TouchScreenInputDefaultStyle.tss.meta | 18 + .../UI/TouchScreenInputPanelSetting.asset | 52 + .../TouchScreenInputPanelSetting.asset.meta | 15 + .../Runtime/Mobile/UI/TouchScreenInputUI.uxml | 25 + .../Mobile/UI/TouchScreenInputUI.uxml.meta | 17 + Assets/Starter Assets/Runtime/Settings.meta | 8 + .../Settings/DefaultVolumeProfile.asset | 792 ++ .../Settings/DefaultVolumeProfile.asset.meta | 15 + .../Runtime/Settings/High_PipelineAsset.asset | 143 + .../Settings/High_PipelineAsset.asset.meta | 15 + .../High_PipelineAsset_ForwardRenderer.asset | 55 + ...h_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Runtime/Settings/Low_PipelineAsset.asset | 143 + .../Settings/Low_PipelineAsset.asset.meta | 15 + .../Low_PipelineAsset_ForwardRenderer.asset | 55 + ...w_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Settings/Medium_PipelineAsset.asset | 143 + .../Settings/Medium_PipelineAsset.asset.meta | 15 + ...Medium_PipelineAsset_ForwardRenderer.asset | 55 + ...m_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Settings/Ultra_PipelineAsset.asset | 143 + .../Settings/Ultra_PipelineAsset.asset.meta | 15 + .../Ultra_PipelineAsset_ForwardRenderer.asset | 55 + ...a_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Settings/Very High_PipelineAsset.asset | 143 + .../Very High_PipelineAsset.asset.meta | 15 + ...y High_PipelineAsset_ForwardRenderer.asset | 55 + ...h_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Settings/Very Low_PipelineAsset.asset | 143 + .../Very Low_PipelineAsset.asset.meta | 15 + ...ry Low_PipelineAsset_ForwardRenderer.asset | 55 + ...w_PipelineAsset_ForwardRenderer.asset.meta | 15 + .../Runtime/SpaceRobotKyle.meta | 8 + .../Runtime/SpaceRobotKyle/Materials.meta | 8 + .../SpaceRobotKyle/Materials/KyleRobot.mat | 139 + .../Materials/KyleRobot.mat.meta | 15 + .../Runtime/SpaceRobotKyle/Models.meta | 8 + .../SpaceRobotKyle/Models/KyleRobot.fbx | 3 + .../SpaceRobotKyle/Models/KyleRobot.fbx.meta | 792 ++ .../Runtime/SpaceRobotKyle/Prefabs.meta | 8 + .../SpaceRobotKyle/Prefabs/RobotKyle.prefab | 2612 +++++ .../Prefabs/RobotKyle.prefab.meta | 14 + .../Runtime/SpaceRobotKyle/Textures.meta | 8 + .../Textures/KyleRobot_BaseMap.png | 3 + .../Textures/KyleRobot_BaseMap.png.meta | 134 + .../Textures/KyleRobot_Metallic.png | 3 + .../Textures/KyleRobot_Metallic.png.meta | 134 + .../Textures/KyleRobot_Normal.png | 3 + .../Textures/KyleRobot_Normal.png.meta | 134 + .../Runtime/ThirdPersonController.meta | 8 + .../ThirdPersonController/Character.meta | 8 + .../Character/Animations.meta | 8 + .../Character/Animations/Jump--InAir.anim.fbx | 3 + .../Animations/Jump--InAir.anim.fbx.meta | 931 ++ .../Character/Animations/Jump--Jump.anim.fbx | 3 + .../Animations/Jump--Jump.anim.fbx.meta | 968 ++ .../Animations/Locomotion--Run_N.anim.fbx | 3 + .../Locomotion--Run_N.anim.fbx.meta | 940 ++ .../Locomotion--Run_N_Land.anim.fbx | 3 + .../Locomotion--Run_N_Land.anim.fbx.meta | 933 ++ .../Animations/Locomotion--Run_S.anim.fbx | 3 + .../Locomotion--Run_S.anim.fbx.meta | 940 ++ .../Animations/Locomotion--Walk_N.anim.fbx | 3 + .../Locomotion--Walk_N.anim.fbx.meta | 940 ++ .../Locomotion--Walk_N_Land.anim.fbx | 3 + .../Locomotion--Walk_N_Land.anim.fbx.meta | 933 ++ .../Character/Animations/Stand--Idle.anim.fbx | 3 + .../Animations/Stand--Idle.anim.fbx.meta | 931 ++ .../StarterAssetsThirdPerson.controller | 646 ++ .../StarterAssetsThirdPerson.controller.meta | 15 + .../Character/Materials.meta | 8 + .../Character/Materials/Built-in_RP.meta | 8 + .../Built-in_RP/M_ArmatureColor_Arms.mat | 99 + .../Built-in_RP/M_ArmatureColor_Arms.mat.meta | 15 + .../Built-in_RP/M_ArmatureColor_Body.mat | 99 + .../Built-in_RP/M_ArmatureColor_Body.mat.meta | 15 + .../Built-in_RP/M_ArmatureColor_Legs.mat | 99 + .../Built-in_RP/M_ArmatureColor_Legs.mat.meta | 15 + .../Character/Materials/M_Armature_Arms.mat | 147 + .../Materials/M_Armature_Arms.mat.meta | 15 + .../Character/Materials/M_Armature_Body.mat | 147 + .../Materials/M_Armature_Body.mat.meta | 15 + .../Character/Materials/M_Armature_Legs.mat | 147 + .../Materials/M_Armature_Legs.mat.meta | 15 + .../Character/Models.meta | 8 + .../Character/Models/Armature.fbx | 3 + .../Character/Models/Armature.fbx.meta | 896 ++ .../ThirdPersonController/Character/Sfx.meta | 8 + .../Character/Sfx/Player_Footstep_01.wav | 3 + .../Character/Sfx/Player_Footstep_01.wav.meta | 29 + .../Character/Sfx/Player_Footstep_02.wav | 3 + .../Character/Sfx/Player_Footstep_02.wav.meta | 29 + .../Character/Sfx/Player_Footstep_03.wav | 3 + .../Character/Sfx/Player_Footstep_03.wav.meta | 29 + .../Character/Sfx/Player_Footstep_04.wav | 3 + .../Character/Sfx/Player_Footstep_04.wav.meta | 29 + .../Character/Sfx/Player_Footstep_05.wav | 3 + .../Character/Sfx/Player_Footstep_05.wav.meta | 29 + .../Character/Sfx/Player_Footstep_06.wav | 3 + .../Character/Sfx/Player_Footstep_06.wav.meta | 29 + .../Character/Sfx/Player_Footstep_07.wav | 3 + .../Character/Sfx/Player_Footstep_07.wav.meta | 29 + .../Character/Sfx/Player_Footstep_08.wav | 3 + .../Character/Sfx/Player_Footstep_08.wav.meta | 29 + .../Character/Sfx/Player_Footstep_09.wav | 3 + .../Character/Sfx/Player_Footstep_09.wav.meta | 29 + .../Character/Sfx/Player_Footstep_10.wav | 3 + .../Character/Sfx/Player_Footstep_10.wav.meta | 29 + .../Character/Sfx/Player_Land.wav | 3 + .../Character/Sfx/Player_Land.wav.meta | 29 + .../Character/Textures.meta | 8 + .../Armature_Arms_AlbedoTransparency.tif | 3 + .../Armature_Arms_AlbedoTransparency.tif.meta | 115 + .../Armature_Arms_MetallicSmoothness.tif | 3 + .../Armature_Arms_MetallicSmoothness.tif.meta | 115 + .../Textures/Armature_Arms_Normal.tif | 3 + .../Textures/Armature_Arms_Normal.tif.meta | 115 + .../Character/Textures/Armature_Arms_RGB.tif | 3 + .../Textures/Armature_Arms_RGB.tif.meta | 115 + .../Armature_Body_AlbedoTransparency.tif | 3 + .../Armature_Body_AlbedoTransparency.tif.meta | 115 + .../Armature_Body_MetallicSmoothness.tif | 3 + .../Armature_Body_MetallicSmoothness.tif.meta | 115 + .../Textures/Armature_Body_Normal.tif | 3 + .../Textures/Armature_Body_Normal.tif.meta | 115 + .../Character/Textures/Armature_Body_RGB.tif | 3 + .../Textures/Armature_Body_RGB.tif.meta | 115 + .../Armature_Legs_AlbedoTransparency.tif | 3 + .../Armature_Legs_AlbedoTransparency.tif.meta | 115 + .../Armature_Legs_MetallicSmoothness.tif | 3 + .../Armature_Legs_MetallicSmoothness.tif.meta | 115 + .../Textures/Armature_Legs_Normal.tif | 3 + .../Textures/Armature_Legs_Normal.tif.meta | 115 + .../Character/Textures/Armature_Legs_RGB.tif | 3 + .../Textures/Armature_Legs_RGB.tif.meta | 115 + .../ThirdPersonController/Prefabs.meta | 8 + .../Prefabs/MainCamera.prefab | 174 + .../Prefabs/MainCamera.prefab.meta | 14 + .../NestedParentArmature_Unpack.prefab | 389 + .../NestedParentArmature_Unpack.prefab.meta | 14 + .../Prefabs/NestedParentCapsule_Unpack.prefab | 389 + .../NestedParentCapsule_Unpack.prefab.meta | 14 + .../Prefabs/PlayerArmature.prefab | 2692 +++++ .../Prefabs/PlayerArmature.prefab.meta | 14 + .../Prefabs/PlayerCapsule.prefab | 372 + .../Prefabs/PlayerCapsule.prefab.meta | 14 + .../Prefabs/PlayerFollowCamera.prefab | 122 + .../Prefabs/PlayerFollowCamera.prefab.meta | 14 + .../ThirdPersonController/Scripts.meta | 8 + .../Scripts/ThirdPersonController.cs | 392 + .../Scripts/ThirdPersonController.cs.meta | 18 + .../Runtime/Unity.StarterAssets.asmdef | 16 + .../Runtime/Unity.StarterAssets.asmdef.meta | 14 + Assets/Starter Assets/Sample.meta | 8 + Assets/Starter Assets/Sample/Environment.meta | 8 + .../Sample/Environment/Art.meta | 8 + .../Sample/Environment/Art/Materials.meta | 8 + .../Environment/Art/Materials/Blue_Mat.mat | 139 + .../Art/Materials/Blue_Mat.mat.meta | 15 + .../Art/Materials/Built-in_RP.meta | 8 + .../Built-in_RP/BuiltInTriplanar_01_Mat.mat | 78 + .../BuiltInTriplanar_01_Mat.mat.meta | 15 + .../Art/Materials/GreyBlue_Mat.mat | 141 + .../Art/Materials/GreyBlue_Mat.mat.meta | 15 + .../Art/Materials/GridBlue_01_Mat.mat | 141 + .../Art/Materials/GridBlue_01_Mat.mat.meta | 15 + .../Art/Materials/GridOrange_01_Mat.mat | 143 + .../Art/Materials/GridOrange_01_Mat.mat.meta | 15 + .../Art/Materials/GridWhite_01_Mat.mat | 143 + .../Art/Materials/GridWhite_01_Mat.mat.meta | 15 + .../Art/Materials/URP_HDRP_ShaderGraph.meta | 8 + .../ShaderGraphGrid_01_Mat.mat | 132 + .../ShaderGraphGrid_01_Mat.mat.meta | 15 + .../Sample/Environment/Art/Models.meta | 8 + .../Art/Models/Box_350x250x200_Mesh.fbx | 3 + .../Art/Models/Box_350x250x200_Mesh.fbx.meta | 104 + .../Art/Models/Box_350x250x300_Mesh.fbx | 3 + .../Art/Models/Box_350x250x300_Mesh.fbx.meta | 104 + .../Environment/Art/Models/Ground_Mesh.fbx | 3 + .../Art/Models/Ground_Mesh.fbx.meta | 104 + .../Art/Models/Ramp_100x100x200_Mesh.fbx | 3 + .../Art/Models/Ramp_100x100x200_Mesh.fbx.meta | 104 + .../Environment/Art/Models/Ramp_Mesh.fbx | 3 + .../Environment/Art/Models/Ramp_Mesh.fbx.meta | 104 + .../Art/Models/Stairs_200x100x200_Mesh.fbx | 3 + .../Models/Stairs_200x100x200_Mesh.fbx.meta | 104 + .../Art/Models/Stairs_650_400_300_Mesh.fbx | 3 + .../Models/Stairs_650_400_300_Mesh.fbx.meta | 104 + .../Environment/Art/Models/Structure_Mesh.fbx | 3 + .../Art/Models/Structure_Mesh.fbx.meta | 104 + .../Environment/Art/Models/Tunnel_Mesh.fbx | 3 + .../Art/Models/Tunnel_Mesh.fbx.meta | 104 + .../Environment/Art/Models/Wall_Mesh.fbx | 3 + .../Environment/Art/Models/Wall_Mesh.fbx.meta | 104 + .../Sample/Environment/Art/Skybox.meta | 8 + .../Environment/Art/Skybox/SkyboxLite.mat | 84 + .../Art/Skybox/SkyboxLite.mat.meta | 15 + .../Environment/Art/Skybox/SkyboxLiteWarm.mat | 85 + .../Art/Skybox/SkyboxLiteWarm.mat.meta | 15 + .../Sample/Environment/Art/Textures.meta | 8 + .../Art/Textures/Grid_01_BaseMap.png | 3 + .../Art/Textures/Grid_01_BaseMap.png.meta | 127 + .../Art/Textures/Grid_01_Emissive.png | 3 + .../Art/Textures/Grid_01_Emissive.png.meta | 151 + .../Art/Textures/Grid_01_Normal.png | 3 + .../Art/Textures/Grid_01_Normal.png.meta | 127 + .../Art/Textures/Grid_02_BaseMap.png | 3 + .../Art/Textures/Grid_02_BaseMap.png.meta | 139 + .../Sample/Environment/Prefabs.meta | 8 + .../Prefabs/Box_100x100x100_Prefab.prefab | 97 + .../Box_100x100x100_Prefab.prefab.meta | 14 + .../Prefabs/Box_350x250x200_Prefab.prefab | 97 + .../Box_350x250x200_Prefab.prefab.meta | 14 + .../Prefabs/Box_350x250x300_Prefab.prefab | 97 + .../Box_350x250x300_Prefab.prefab.meta | 14 + .../Prefabs/Environment_Prefab.prefab | 3328 ++++++ .../Prefabs/Environment_Prefab.prefab.meta | 14 + .../Prefabs/Ramp_100x100x200_Mesh.prefab | 75 + .../Prefabs/Ramp_100x100x200_Mesh.prefab.meta | 14 + .../Environment/Prefabs/Ramp_Prefab.prefab | 108 + .../Prefabs/Ramp_Prefab.prefab.meta | 14 + .../Prefabs/Stairs_200x100x200_Prefab.prefab | 108 + .../Stairs_200x100x200_Prefab.prefab.meta | 14 + .../Prefabs/Stairs_650_400_300_Prefab.prefab | 108 + .../Stairs_650_400_300_Prefab.prefab.meta | 14 + .../Prefabs/Structure_Prefab.prefab | 2145 ++++ .../Prefabs/Structure_Prefab.prefab.meta | 14 + .../Environment/Prefabs/Tunnel_Prefab.prefab | 151 + .../Prefabs/Tunnel_Prefab.prefab.meta | 14 + .../Environment/Prefabs/Wall_Prefab.prefab | 129 + .../Prefabs/Wall_Prefab.prefab.meta | 14 + .../Environment/RenderPipelineProfiles.meta | 8 + .../StarterAssetsHDRPVolumeProfile.asset | 1178 ++ .../StarterAssetsHDRPVolumeProfile.asset.meta | 15 + .../StarterAssetsURPAsset.asset | 143 + .../StarterAssetsURPAsset.asset.meta | 15 + .../StarterAssetsURPGlobalSettings.asset | 496 + .../StarterAssetsURPGlobalSettings.asset.meta | 15 + .../StarterAssetsURPRenderer.asset | 55 + .../StarterAssetsURPRenderer.asset.meta | 15 + .../Sample/Environment/Shaders.meta | 8 + .../Environment/Shaders/Built-in_RP.meta | 8 + .../Shaders/Built-in_RP/ArmatureShader.shader | 109 + .../Built-in_RP/ArmatureShader.shader.meta | 17 + .../Shaders/Built-in_RP/Triplanar.shader | 149 + .../Shaders/Built-in_RP/Triplanar.shader.meta | 16 + .../Shaders/URP_HDRP_ShaderGraph.meta | 8 + .../UrpTriplanar.shadergraph | 8674 +++++++++++++++ .../UrpTriplanar.shadergraph.meta | 17 + .../Sample/FirstPersonController.meta | 8 + .../FirstPersonController/Playground.meta | 8 + .../FirstPersonController/Playground.unity | 3 + .../Playground.unity.meta | 14 + .../Playground/LightingData.asset | Bin 0 -> 153016 bytes .../Playground/LightingData.asset.meta | 15 + .../Playground/ReflectionProbe-0.exr | 3 + .../Playground/ReflectionProbe-0.exr.meta | 134 + .../Playground/ReflectionProbe-1.exr | 3 + .../Playground/ReflectionProbe-1.exr.meta | 134 + .../Playground/ReflectionProbe-2.exr | 3 + .../Playground/ReflectionProbe-2.exr.meta | 134 + .../PlaygroundSettings.lighting | 63 + .../PlaygroundSettings.lighting.meta | 15 + .../Sample/ThirdPersonController.meta | 8 + .../ThirdPersonController/Playground.meta | 8 + .../ThirdPersonController/Playground.unity | 3 + .../Playground.unity.meta | 14 + .../Playground/LightingData.asset | Bin 0 -> 153016 bytes .../Playground/LightingData.asset.meta | 15 + .../Playground/ReflectionProbe-0.exr | 3 + .../Playground/ReflectionProbe-0.exr.meta | 134 + .../Playground/ReflectionProbe-1.exr | 3 + .../Playground/ReflectionProbe-1.exr.meta | 134 + .../Playground/ReflectionProbe-2.exr | 3 + .../Playground/ReflectionProbe-2.exr.meta | 134 + .../PlaygroundSettings.lighting | 63 + .../PlaygroundSettings.lighting.meta | 15 + Assets/Starter Assets/TutorialInfo.meta | 8 + Assets/Starter Assets/TutorialInfo/Icons.meta | 8 + .../TutorialInfo/Icons/ReadMeImg.PNG | 3 + .../TutorialInfo/Icons/ReadMeImg.PNG.meta | 103 + .../Starter Assets/TutorialInfo/Readme.asset | 43 + .../TutorialInfo/Readme.asset.meta | 15 + .../Starter Assets/TutorialInfo/Scripts.meta | 8 + .../TutorialInfo/Scripts/Editor.meta | 8 + .../Scripts/Editor/ReadmeEditor.cs | 159 + .../Scripts/Editor/ReadmeEditor.cs.meta | 19 + .../TutorialInfo/Scripts/Readme.cs | 14 + .../TutorialInfo/Scripts/Readme.cs.meta | 19 + .../Materials/{M_Rain_Env.mat => M_Env.mat} | 6 +- .../{M_Rain_Env.mat.meta => M_Env.mat.meta} | 2 +- .../{M_Rain_Object.mat => M_Object.mat} | 9 +- ...Rain_Object.mat.meta => M_Object.mat.meta} | 0 Assets/_Content/Scenes/Rain.unity | 4 +- Assets/_Content/Scripts/RainExposure.cs | 4 +- Assets/_Content/Shaders/RainDemo.shadergraph | 2400 ----- .../Shaders/RainDemo.shadergraph.meta | 18 - Assets/_Content/Shaders/Ripple.shadergraph | 2 +- Assets/_Content/Shaders/Standard.shadergraph | 1880 ++++ ...ergraph.meta => Standard.shadergraph.meta} | 0 .../Subgraph/GradientRipple.shadersubgraph | 278 +- .../Rain.shadersubgraph} | 9566 +++++++++-------- .../Shaders/Subgraph/Rain.shadersubgraph.meta | 11 + Packages/manifest.json | 2 + Packages/packages-lock.json | 40 +- 374 files changed, 55903 insertions(+), 6990 deletions(-) create mode 100644 Assets/Starter Assets.meta create mode 100644 Assets/Starter Assets/Editor.meta create mode 100644 Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs create mode 100644 Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta create mode 100644 Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs create mode 100644 Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta create mode 100644 Assets/Starter Assets/Editor/URPWizard.meta create mode 100644 Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef create mode 100644 Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta create mode 100644 Assets/Starter Assets/Editor/URPWizard/URPWizard.cs create mode 100644 Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta create mode 100644 Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef create mode 100644 Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta create mode 100644 Assets/Starter Assets/Runtime.meta create mode 100644 Assets/Starter Assets/Runtime/Common.meta create mode 100644 Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs create mode 100644 Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs create mode 100644 Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta create mode 100644 Assets/Starter Assets/Runtime/InputSystem.meta create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs create mode 100644 Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab create mode 100644 Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs create mode 100644 Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml create mode 100644 Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml.meta create mode 100644 Assets/Starter Assets/Runtime/Settings.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/DefaultVolumeProfile.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/DefaultVolumeProfile.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/High_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/High_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/High_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/High_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Low_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Low_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Low_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Low_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Medium_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Medium_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Medium_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Medium_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Ultra_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Ultra_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Ultra_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Ultra_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Very High_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Very High_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Very High_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Very High_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Very Low_PipelineAsset.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Very Low_PipelineAsset.asset.meta create mode 100644 Assets/Starter Assets/Runtime/Settings/Very Low_PipelineAsset_ForwardRenderer.asset create mode 100644 Assets/Starter Assets/Runtime/Settings/Very Low_PipelineAsset_ForwardRenderer.asset.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Materials.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Materials/KyleRobot.mat create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Materials/KyleRobot.mat.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Models.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Models/KyleRobot.fbx create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Models/KyleRobot.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Prefabs.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Prefabs/RobotKyle.prefab create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Prefabs/RobotKyle.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_BaseMap.png create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_BaseMap.png.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_Metallic.png create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_Metallic.png.meta create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_Normal.png create mode 100644 Assets/Starter Assets/Runtime/SpaceRobotKyle/Textures/KyleRobot_Normal.png.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Jump--InAir.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Jump--InAir.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Jump--Jump.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Jump--Jump.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_N.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_N.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_N_Land.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_N_Land.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_S.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Run_S.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Walk_N.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Walk_N.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Walk_N_Land.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Locomotion--Walk_N_Land.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Stand--Idle.anim.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/Stand--Idle.anim.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/StarterAssetsThirdPerson.controller create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Animations/StarterAssetsThirdPerson.controller.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Arms.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Arms.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Body.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Body.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Legs.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/Built-in_RP/M_ArmatureColor_Legs.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Arms.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Arms.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Body.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Body.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Legs.mat create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Materials/M_Armature_Legs.mat.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Models.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Models/Armature.fbx create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Models/Armature.fbx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_01.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_01.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_02.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_02.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_03.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_03.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_04.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_04.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_05.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_05.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_06.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_06.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_07.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_07.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_08.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_08.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_09.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_09.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_10.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Footstep_10.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Land.wav create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Sfx/Player_Land.wav.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_AlbedoTransparency.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_AlbedoTransparency.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_MetallicSmoothness.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_MetallicSmoothness.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_Normal.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_Normal.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_RGB.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Arms_RGB.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_AlbedoTransparency.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_AlbedoTransparency.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_MetallicSmoothness.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_MetallicSmoothness.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_Normal.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_Normal.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_RGB.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Body_RGB.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_AlbedoTransparency.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_AlbedoTransparency.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_MetallicSmoothness.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_MetallicSmoothness.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_Normal.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_Normal.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_RGB.tif create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Character/Textures/Armature_Legs_RGB.tif.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/MainCamera.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/MainCamera.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/NestedParentArmature_Unpack.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/NestedParentArmature_Unpack.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/NestedParentCapsule_Unpack.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/NestedParentCapsule_Unpack.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerArmature.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerArmature.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerCapsule.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerCapsule.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerFollowCamera.prefab create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Prefabs/PlayerFollowCamera.prefab.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Scripts.meta create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Scripts/ThirdPersonController.cs create mode 100644 Assets/Starter Assets/Runtime/ThirdPersonController/Scripts/ThirdPersonController.cs.meta create mode 100644 Assets/Starter Assets/Runtime/Unity.StarterAssets.asmdef create mode 100644 Assets/Starter Assets/Runtime/Unity.StarterAssets.asmdef.meta create mode 100644 Assets/Starter Assets/Sample.meta create mode 100644 Assets/Starter Assets/Sample/Environment.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/Blue_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/Blue_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/Built-in_RP.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/Built-in_RP/BuiltInTriplanar_01_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/Built-in_RP/BuiltInTriplanar_01_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GreyBlue_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GreyBlue_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridBlue_01_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridBlue_01_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridOrange_01_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridOrange_01_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridWhite_01_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/GridWhite_01_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/URP_HDRP_ShaderGraph.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/URP_HDRP_ShaderGraph/ShaderGraphGrid_01_Mat.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Materials/URP_HDRP_ShaderGraph/ShaderGraphGrid_01_Mat.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Box_350x250x200_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Box_350x250x200_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Box_350x250x300_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Box_350x250x300_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ground_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ground_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ramp_100x100x200_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ramp_100x100x200_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ramp_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Ramp_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Stairs_200x100x200_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Stairs_200x100x200_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Stairs_650_400_300_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Stairs_650_400_300_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Structure_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Structure_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Tunnel_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Tunnel_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Wall_Mesh.fbx create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Models/Wall_Mesh.fbx.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Skybox.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Skybox/SkyboxLite.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Skybox/SkyboxLite.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Skybox/SkyboxLiteWarm.mat create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Skybox/SkyboxLiteWarm.mat.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_BaseMap.png create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_BaseMap.png.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_Emissive.png create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_Emissive.png.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_Normal.png create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_01_Normal.png.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_02_BaseMap.png create mode 100644 Assets/Starter Assets/Sample/Environment/Art/Textures/Grid_02_BaseMap.png.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_100x100x100_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_100x100x100_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_350x250x200_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_350x250x200_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_350x250x300_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Box_350x250x300_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Environment_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Environment_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Ramp_100x100x200_Mesh.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Ramp_100x100x200_Mesh.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Ramp_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Ramp_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Stairs_200x100x200_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Stairs_200x100x200_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Stairs_650_400_300_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Stairs_650_400_300_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Structure_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Structure_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Tunnel_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Tunnel_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Wall_Prefab.prefab create mode 100644 Assets/Starter Assets/Sample/Environment/Prefabs/Wall_Prefab.prefab.meta create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles.meta create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsHDRPVolumeProfile.asset create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsHDRPVolumeProfile.asset.meta create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPAsset.asset create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPAsset.asset.meta create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPGlobalSettings.asset create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPGlobalSettings.asset.meta create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPRenderer.asset create mode 100644 Assets/Starter Assets/Sample/Environment/RenderPipelineProfiles/StarterAssetsURPRenderer.asset.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/Built-in_RP.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/Built-in_RP/ArmatureShader.shader create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/Built-in_RP/ArmatureShader.shader.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/Built-in_RP/Triplanar.shader create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/Built-in_RP/Triplanar.shader.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/URP_HDRP_ShaderGraph.meta create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/URP_HDRP_ShaderGraph/UrpTriplanar.shadergraph create mode 100644 Assets/Starter Assets/Sample/Environment/Shaders/URP_HDRP_ShaderGraph/UrpTriplanar.shadergraph.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground.unity create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground.unity.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/LightingData.asset create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/LightingData.asset.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-0.exr create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-0.exr.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-1.exr create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-1.exr.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-2.exr create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/Playground/ReflectionProbe-2.exr.meta create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/PlaygroundSettings.lighting create mode 100644 Assets/Starter Assets/Sample/FirstPersonController/PlaygroundSettings.lighting.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground.unity create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground.unity.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/LightingData.asset create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/LightingData.asset.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-0.exr create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-0.exr.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-1.exr create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-1.exr.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-2.exr create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/Playground/ReflectionProbe-2.exr.meta create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/PlaygroundSettings.lighting create mode 100644 Assets/Starter Assets/Sample/ThirdPersonController/PlaygroundSettings.lighting.meta create mode 100644 Assets/Starter Assets/TutorialInfo.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Icons.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Icons/ReadMeImg.PNG create mode 100644 Assets/Starter Assets/TutorialInfo/Icons/ReadMeImg.PNG.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Readme.asset create mode 100644 Assets/Starter Assets/TutorialInfo/Readme.asset.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts/Editor.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts/Readme.cs create mode 100644 Assets/Starter Assets/TutorialInfo/Scripts/Readme.cs.meta rename Assets/_Content/Materials/{M_Rain_Env.mat => M_Env.mat} (93%) rename Assets/_Content/Materials/{M_Rain_Env.mat.meta => M_Env.mat.meta} (79%) rename Assets/_Content/Materials/{M_Rain_Object.mat => M_Object.mat} (92%) rename Assets/_Content/Materials/{M_Rain_Object.mat.meta => M_Object.mat.meta} (100%) delete mode 100644 Assets/_Content/Shaders/RainDemo.shadergraph delete mode 100644 Assets/_Content/Shaders/RainDemo.shadergraph.meta create mode 100644 Assets/_Content/Shaders/Standard.shadergraph rename Assets/_Content/Shaders/{Rain.shadergraph.meta => Standard.shadergraph.meta} (100%) rename Assets/_Content/Shaders/{Rain.shadergraph => Subgraph/Rain.shadersubgraph} (66%) create mode 100644 Assets/_Content/Shaders/Subgraph/Rain.shadersubgraph.meta diff --git a/Assets/Starter Assets.meta b/Assets/Starter Assets.meta new file mode 100644 index 0000000..bd4437d --- /dev/null +++ b/Assets/Starter Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a908cce6aa3d8f74e954ad889e088948 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor.meta b/Assets/Starter Assets/Editor.meta new file mode 100644 index 0000000..9707912 --- /dev/null +++ b/Assets/Starter Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a12a4d2ef7f03c49b93b5e1dc150ae3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs new file mode 100644 index 0000000..50657d5 --- /dev/null +++ b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs @@ -0,0 +1,154 @@ +using System; +using System.Linq; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; +using Unity.Cinemachine; + +namespace StarterAssets +{ + // This class needs to be a scriptable object to support dynamic determination of StarterAssets install path + public partial class StarterAssetsDeployMenu : ScriptableObject + { + public const string MenuRoot = "Tools/Starter Assets"; + + // prefab names + private const string MainCameraPrefabName = "MainCamera"; + private const string PlayerCapsulePrefabName = "PlayerCapsule"; + + // names in hierarchy + private const string CinemachineVirtualCameraName = "PlayerFollowCamera"; + + // tags + private const string PlayerTag = "Player"; + private const string MainCameraTag = "MainCamera"; + private const string CinemachineTargetTag = "CinemachineTarget"; + + private static GameObject _cinemachineVirtualCamera; + + private static void CheckCameras(Transform targetParent, string prefabFolder) + { + CheckMainCamera(prefabFolder); + + GameObject vcam = GameObject.Find(CinemachineVirtualCameraName); + + if (!vcam) + { + if (TryLocatePrefab(CinemachineVirtualCameraName, new string[]{prefabFolder}, new[] { typeof(CinemachineCamera) }, out GameObject vcamPrefab, out string _)) + { + HandleInstantiatingPrefab(vcamPrefab, out vcam); + _cinemachineVirtualCamera = vcam; + } + else + { + Debug.LogError("Couldn't find Cinemachine Virtual Camera prefab"); + } + } + else + { + _cinemachineVirtualCamera = vcam; + } + + GameObject[] targets = GameObject.FindGameObjectsWithTag(CinemachineTargetTag); + GameObject target = targets.FirstOrDefault(t => t.transform.IsChildOf(targetParent)); + if (target == null) + { + target = new GameObject("PlayerCameraRoot"); + target.transform.SetParent(targetParent); + target.transform.localPosition = new Vector3(0f, 1.375f, 0f); + target.tag = CinemachineTargetTag; + Undo.RegisterCreatedObjectUndo(target, "Created new cinemachine target"); + } + + CheckVirtualCameraFollowReference(target, _cinemachineVirtualCamera); + } + + private static void CheckMainCamera(string inFolder) + { + GameObject[] mainCameras = GameObject.FindGameObjectsWithTag(MainCameraTag); + + if (mainCameras.Length < 1) + { + // if there are no MainCameras, add one + if (TryLocatePrefab(MainCameraPrefabName, new string[]{inFolder}, new[] { typeof(CinemachineBrain), typeof(Camera) }, out GameObject camera, out string _)) + { + HandleInstantiatingPrefab(camera, out _); + } + else + { + Debug.LogError("Couldn't find Starter Assets Main Camera prefab"); + } + } + else + { + // make sure the found camera has a cinemachine brain (we only need 1) + if (!mainCameras[0].TryGetComponent(out CinemachineBrain cinemachineBrain)) + mainCameras[0].AddComponent(); + } + } + + private static void CheckVirtualCameraFollowReference(GameObject target, + GameObject cinemachineVirtualCamera) + { + var serializedObject = + new SerializedObject(cinemachineVirtualCamera.GetComponent()); + var serializedProperty = serializedObject.FindProperty("m_Follow"); + serializedProperty.objectReferenceValue = target.transform; + serializedObject.ApplyModifiedProperties(); + } + + private static bool TryLocatePrefab(string name, string[] inFolders, System.Type[] requiredComponentTypes, out GameObject prefab, out string path) + { + // Locate the player armature + string[] allPrefabs = AssetDatabase.FindAssets("t:Prefab", inFolders); + for (int i = 0; i < allPrefabs.Length; ++i) + { + string assetPath = AssetDatabase.GUIDToAssetPath(allPrefabs[i]); + + if (assetPath.Contains("/com.unity.starter-assets/")) + { + Object loadedObj = AssetDatabase.LoadMainAssetAtPath(assetPath); + + if (PrefabUtility.GetPrefabAssetType(loadedObj) != PrefabAssetType.NotAPrefab && + PrefabUtility.GetPrefabAssetType(loadedObj) != PrefabAssetType.MissingAsset) + { + GameObject loadedGo = loadedObj as GameObject; + bool hasRequiredComponents = true; + foreach (var componentType in requiredComponentTypes) + { + if (!loadedGo.TryGetComponent(componentType, out _)) + { + hasRequiredComponents = false; + break; + } + } + + if (hasRequiredComponents) + { + if (loadedGo.name == name) + { + prefab = loadedGo; + path = assetPath; + return true; + } + } + } + } + } + + prefab = null; + path = null; + return false; + } + + private static void HandleInstantiatingPrefab(GameObject prefab, out GameObject prefabInstance) + { + prefabInstance = (GameObject)PrefabUtility.InstantiatePrefab(prefab); + Undo.RegisterCreatedObjectUndo(prefabInstance, "Instantiate Starter Asset Prefab"); + + prefabInstance.transform.localPosition = Vector3.zero; + prefabInstance.transform.localEulerAngles = Vector3.zero; + prefabInstance.transform.localScale = Vector3.one; + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta new file mode 100644 index 0000000..7778eba --- /dev/null +++ b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: e75357183ea302c4d998136de2cc9669 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs new file mode 100644 index 0000000..b19955f --- /dev/null +++ b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs @@ -0,0 +1,102 @@ +using System.IO; +using System.Linq; +using System.Text; +using UnityEditor; +using UnityEngine; + +namespace StarterAssets +{ + public partial class StarterAssetsDeployMenu : ScriptableObject + { + // prefab paths + private const string PlayerArmaturePrefabName = "PlayerArmature"; + + /// + /// Check the Armature, main camera, cinemachine virtual camera, camera target and references + /// + [MenuItem(MenuRoot + "/Reset Third Person Controller Armature", false)] + static void ResetThirdPersonControllerArmature() + { + var thirdPersonControllers = FindObjectsByType(FindObjectsSortMode.None); + var player = thirdPersonControllers.FirstOrDefault(controller => + controller.GetComponent() && controller.CompareTag(PlayerTag)); + + GameObject playerGameObject = null; + + // player + if (player == null) + { + if (TryLocatePrefab(PlayerArmaturePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject prefab, out string _)) + { + HandleInstantiatingPrefab(prefab, out playerGameObject); + } + else + { + Debug.LogError("Couldn't find player armature prefab"); + } + } + else + { + playerGameObject = player.gameObject; + } + + if (playerGameObject != null) + { + // cameras + CheckCameras(playerGameObject.transform, GetThirdPersonPrefabPath()); + } + } + + [MenuItem(MenuRoot + "/Reset Third Person Controller Capsule", false)] + static void ResetThirdPersonControllerCapsule() + { + var thirdPersonControllers = FindObjectsByType(FindObjectsSortMode.None); + var player = thirdPersonControllers.FirstOrDefault(controller => + !controller.GetComponent() && controller.CompareTag(PlayerTag)); + + GameObject playerGameObject = null; + + // player + if (player == null) + { + if (TryLocatePrefab(PlayerCapsulePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject prefab, out string _)) + { + HandleInstantiatingPrefab(prefab, out playerGameObject); + } + else + { + Debug.LogError("Couldn't find player capsule prefab"); + } + } + else + { + playerGameObject = player.gameObject; + } + + if (playerGameObject != null) + { + // cameras + CheckCameras(playerGameObject.transform, GetThirdPersonPrefabPath()); + } + } + + static string GetThirdPersonPrefabPath() + { + if (TryLocatePrefab(PlayerArmaturePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject _, out string prefabPath)) + { + var pathString = new StringBuilder(); + var currentDirectory = new FileInfo(prefabPath).Directory; + while (currentDirectory.Name != "Packages") + { + pathString.Insert(0, $"/{currentDirectory.Name}"); + currentDirectory = currentDirectory.Parent; + } + + pathString.Insert(0, currentDirectory.Name); + return pathString.ToString(); + } + + return null; + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta new file mode 100644 index 0000000..7691ade --- /dev/null +++ b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b70f45aa92a641feb261c5d55ce46edf +timeCreated: 1621532436 +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Editor/URPWizard.meta b/Assets/Starter Assets/Editor/URPWizard.meta new file mode 100644 index 0000000..d3cddc0 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a936c3509519d6b48bb3a44692f8695a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef new file mode 100644 index 0000000..b796229 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef @@ -0,0 +1,24 @@ +{ + "name": "URPWizard", + "rootNamespace": "", + "references": [ + "Unity.RenderPipelines.Universal.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.render-pipelines.universal", + "expression": "", + "define": "USE_URP" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta new file mode 100644 index 0000000..26c4438 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 18828b1d1020dde47bec693eef18a5b9 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef + uploadId: 988818 diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs new file mode 100644 index 0000000..4b3dbdd --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs @@ -0,0 +1,73 @@ +using System.Linq; +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEngine; +using UnityEngine.Rendering; +#if USE_URP +using UnityEngine.Rendering.Universal; +#endif + +public class URPWizard : EditorWindow +{ + [InitializeOnLoadMethod] + static void OnInitialize() + { + URPCheck(); + } + + static void URPCheck() + { + if (GraphicsSettings.currentRenderPipeline != null) + return; + + var request = Client.List(); + while (!request.IsCompleted) { } + + if (request.Status != StatusCode.Success) + return; + + if (request.Result.All(info => info.name != "com.unity.render-pipelines.universal")) + { + var addRequest = Client.Add("com.unity.render-pipelines.universal"); + + while (!addRequest.IsCompleted) { } + + Client.Resolve(); + } + else + { + FindAndAssignPipeline(); + } + } + +#if USE_URP + static void FindAndAssignPipeline() + { + var existingPipelines = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset"); + + if (existingPipelines.Length == 0) + { + Debug.LogError($"Universal Render Pipeline Asset was not found.\n" + + $"Please create one and assign under the Project Settings > Graphics > Scriptable Render Pipeline Settings."); + return; + } + + var pipeline = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(existingPipelines[0])); + GraphicsSettings.defaultRenderPipeline = pipeline; + } + + class PipelineAssetProcessor : AssetPostprocessor + { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload) + { + //if we have no pipeline set, we try to find one as one may have been imported + if (GraphicsSettings.currentRenderPipeline != null) + return; + + FindAndAssignPipeline(); + } + } +#else + static void FindAndAssignPipeline(){} +#endif +} diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta new file mode 100644 index 0000000..52326b2 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 6c1ba780f87ca5a4ea89d3330464ecf5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Editor/URPWizard/URPWizard.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef new file mode 100644 index 0000000..1c4f351 --- /dev/null +++ b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef @@ -0,0 +1,19 @@ +{ + "name": "Unity.StarterAssets.Editor", + "rootNamespace": "", + "references": [ + "Unity.StarterAssets", + "Unity.Cinemachine" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta new file mode 100644 index 0000000..9c21993 --- /dev/null +++ b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 65197035c7dd3894d8e8f7a6513ffc01 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime.meta b/Assets/Starter Assets/Runtime.meta new file mode 100644 index 0000000..b8663c0 --- /dev/null +++ b/Assets/Starter Assets/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86764a910a1ef6042bd6232da5be8ea8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Common.meta b/Assets/Starter Assets/Runtime/Common.meta new file mode 100644 index 0000000..82705ee --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3830e597529e5814b8e9ee9815399c33 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs new file mode 100644 index 0000000..7f1b3b1 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +public class BasicRigidBodyPush : MonoBehaviour +{ + public LayerMask pushLayers; + public bool canPush; + [Range(0.5f, 5f)] public float strength = 1.1f; + + private void OnControllerColliderHit(ControllerColliderHit hit) + { + if (canPush) PushRigidBodies(hit); + } + + private void PushRigidBodies(ControllerColliderHit hit) + { + // https://docs.unity3d.com/ScriptReference/CharacterController.OnControllerColliderHit.html + + // make sure we hit a non kinematic rigidbody + Rigidbody body = hit.collider.attachedRigidbody; + if (body == null || body.isKinematic) return; + + // make sure we only push desired layer(s) + var bodyLayerMask = 1 << body.gameObject.layer; + if ((bodyLayerMask & pushLayers.value) == 0) return; + + // We dont want to push objects below us + if (hit.moveDirection.y < -0.3f) return; + + // Calculate push direction from move direction, horizontal motion only + Vector3 pushDir = new Vector3(hit.moveDirection.x, 0.0f, hit.moveDirection.z); + + // Apply the push and take strength into account + body.AddForce(pushDir * strength, ForceMode.Impulse); + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta new file mode 100644 index 0000000..6f2ad4b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 909d917d73a63f940ac158d02e936645 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController.meta b/Assets/Starter Assets/Runtime/FirstPersonController.meta new file mode 100644 index 0000000..78d600f --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 989cd1dabf2a892459e96139bfdd4a4a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta new file mode 100644 index 0000000..76f4a2b --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3547d539220f51a4599294020a5f42cf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab new file mode 100644 index 0000000..bdcc935 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9005220659476430823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9005220659476430818} + - component: {fileID: 9005220659476430821} + - component: {fileID: 9005220659476430820} + - component: {fileID: 9018249871969862650} + - component: {fileID: 6649558419134552556} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9005220659476430818 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.20000005, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &9005220659476430821 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.972549, g: 0.95686275, b: 0.92941177, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.2 + far clip plane: 5000 + field of view: 40 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &9005220659476430820 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 +--- !u!114 &9018249871969862650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowDebugText: 0 + m_ShowCameraFrustum: 1 + m_IgnoreTimeScale: 0 + m_WorldUpOverride: {fileID: 0} + m_UpdateMethod: 2 + m_BlendUpdateMethod: 1 + m_DefaultBlend: + m_Style: 1 + m_Time: 2 + m_CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_CustomBlends: {fileID: 0} + m_CameraCutEvent: + m_PersistentCalls: + m_Calls: [] + m_CameraActivatedEvent: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6649558419134552556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + quality: 3 + frameInfluence: 0.1 + jitterScale: 1 + mipBias: 0 + varianceClampScale: 0.9 + contrastAdaptiveSharpening: 0 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta new file mode 100644 index 0000000..120cf5d --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 2d3a85ecde41a8246a79669975912b74 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab new file mode 100644 index 0000000..14addc2 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab @@ -0,0 +1,394 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7094977340588366727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6556307555316582679} + m_Layer: 0 + m_Name: NestedParent_Unpack + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6556307555316582679 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7094977340588366727} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 22.210217, y: -8.786317, z: 23.948788} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5126527961139664760} + - {fileID: 2862278905927072855} + - {fileID: 937451010987979973} + - {fileID: 6116018315020930700} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4253012990495331769 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 1992104595683069851, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_Name + value: UI_EventSystem + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalPosition.y + value: 8.786317 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f0271df749728104eac22c3d897fd8ce, type: 3} +--- !u!4 &6116018315020930700 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, + type: 3} + m_PrefabInstance: {fileID: 4253012990495331769} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4313866245218740378 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430821, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: far clip plane + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430821, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: orthographic size + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430823, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + propertyPath: m_Name + value: MainCamera + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} +--- !u!4 &5126527961139664760 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, + type: 3} + m_PrefabInstance: {fileID: 4313866245218740378} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6782772647021209901 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 8762286023885395077, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_Name + value: PlayerFollowCamera + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395323, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + propertyPath: m_Follow + value: + objectReference: {fileID: 5242107653240477475} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} +--- !u!4 &2862278905927072855 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, + type: 3} + m_PrefabInstance: {fileID: 6782772647021209901} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8204767106804910123 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 5393215578589016655, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2} + - target: {fileID: 8616685848737228372, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_Name + value: PlayerCapsule + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalPosition.y + value: 8.786317 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} +--- !u!4 &937451010987979973 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + m_PrefabInstance: {fileID: 8204767106804910123} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5242107653240477475 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4135013735270702856, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, + type: 3} + m_PrefabInstance: {fileID: 8204767106804910123} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta new file mode 100644 index 0000000..5786b5e --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 035bf1ba97d19214580cfe6f5a29fdc3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab new file mode 100644 index 0000000..c623db3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab @@ -0,0 +1,367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4135013735270702863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4135013735270702856} + m_Layer: 0 + m_Name: PlayerCameraRoot + m_TagString: CinemachineTarget + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4135013735270702856 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135013735270702863} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8997996947095583982} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5393215578589016642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5393215578589016641} + - component: {fileID: 5393215578589016654} + - component: {fileID: 5393215578589016655} + - component: {fileID: 5393215578589016640} + m_Layer: 8 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5393215578589016641 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8997996947095583982} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5393215578589016654 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5393215578589016655 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &5393215578589016640 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + 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: 2 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8616685848737228372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8997996947095583982} + - component: {fileID: 8616685848737228382} + - component: {fileID: 8616685848737228371} + - component: {fileID: 1978471637655604388} + - component: {fileID: 5420857361349278248} + - component: {fileID: 8616685848737228376} + m_Layer: 8 + m_Name: PlayerCapsule + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8997996947095583982 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + 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: 4135013735270702856} + - {fileID: 5393215578589016641} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!143 &8616685848737228382 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + 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: 3 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.25 + m_SkinWidth: 0.02 + m_MinMoveDistance: 0 + m_Center: {x: 0, y: 0.93, z: 0} +--- !u!114 &8616685848737228371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 55919ac34a26952479f3fc91f777b2fa, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveSpeed: 4 + SprintSpeed: 6 + RotationSpeed: 1 + SpeedChangeRate: 10 + JumpHeight: 1.2 + Gravity: -15 + JumpTimeout: 0.1 + FallTimeout: 0.15 + Grounded: 1 + GroundedOffset: -0.14 + GroundedRadius: 0.5 + GroundLayers: + serializedVersion: 2 + m_Bits: 1 + CinemachineCameraTarget: {fileID: 4135013735270702863} + TopClamp: 89 + BottomClamp: -89 +--- !u!114 &1978471637655604388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 909d917d73a63f940ac158d02e936645, type: 3} + m_Name: + m_EditorClassIdentifier: + pushLayers: + serializedVersion: 2 + m_Bits: 0 + canPush: 0 + strength: 1.1 +--- !u!114 &5420857361349278248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e087ecce43ebbff45a1b360637807d93, type: 3} + m_Name: + m_EditorClassIdentifier: + move: {x: 0, y: 0} + look: {x: 0, y: 0} + jump: 0 + sprint: 0 + analogMovement: 0 + cursorLocked: 1 + cursorInputForLook: 1 +--- !u!114 &8616685848737228376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: -944628639613478452, guid: 4419d82f33d36e848b3ed5af4c8da37e, type: 3} + m_NotificationBehavior: 0 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputMove + m_Mode: 0 + 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_ActionId: 6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d + m_ActionName: Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d,/Keyboard/upArrow,/Keyboard/downArrow,/Keyboard/leftArrow,/Keyboard/rightArrow,/XInputControllerWindows/leftStick] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputLook + m_Mode: 0 + 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_ActionId: 2690c379-f54d-45be-a724-414123833eb4 + m_ActionName: Player/Look[/Mouse/delta,/XInputControllerWindows/rightStick] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputJump + m_Mode: 0 + 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_ActionId: 8c4abdf8-4099-493a-aa1a-129acec7c3df + m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputSprint + m_Mode: 0 + 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_ActionId: 980e881e-182c-404c-8cbf-3d09fdb48fef + m_ActionName: Player/Sprint[/Keyboard/leftShift,/XInputControllerWindows/leftTrigger] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: e4ce1614-c754-48c1-9103-33130441661f + m_ActionName: UI/New action + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: Player + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta new file mode 100644 index 0000000..285b1a6 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: c5efc39a8aaf6e64ea40e9ad573e9b47 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab new file mode 100644 index 0000000..5128793 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8762286023885395077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8762286023885395322} + - component: {fileID: 1322753380729825397} + - component: {fileID: 5192237344934759343} + - component: {fileID: 7251459169059617267} + m_Layer: 0 + m_Name: PlayerFollowCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8762286023885395322 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.20000005, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1322753380729825397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera + Priority: + Enabled: 0 + m_Value: 0 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20170927 + m_LegacyPriority: 10 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.2 + FarClipPlane: 500 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!114 &5192237344934759343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBasicMultiChannelPerlin + NoiseProfile: {fileID: 11400000, guid: 46965f9cbaf525742a6da4c2172a99cd, type: 2} + PivotOffset: {x: 0, y: 0, z: 1} + AmplitudeGain: 0.5 + FrequencyGain: 0.3 + m_NoiseOffsets: {x: -451.37964, y: 684.7062, z: 648.0488} +--- !u!114 &7251459169059617267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 625c14eee3ad46c99df7c7c891ef668a, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineThirdPersonFollow + Damping: {x: 0, y: 0, z: 0} + ShoulderOffset: {x: 0, y: 0, z: 0} + VerticalArmLength: 0 + CameraSide: 0.6 + CameraDistance: 0 + AvoidObstacles: + Enabled: 1 + CollisionFilter: + serializedVersion: 2 + m_Bits: 1 + IgnoreTag: Player + CameraRadius: 0.15 + DampingIntoCollision: 0 + DampingFromCollision: 0 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta new file mode 100644 index 0000000..aeeebe8 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 9c489a8547f4d9e4387da15a4ff82c81 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta new file mode 100644 index 0000000..e22189e --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d945aebbdf256954aadf016c19fcea09 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs new file mode 100644 index 0000000..9f27dfb --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs @@ -0,0 +1,268 @@ +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace StarterAssets +{ + [RequireComponent(typeof(CharacterController))] +#if ENABLE_INPUT_SYSTEM + [RequireComponent(typeof(PlayerInput))] +#endif + public class FirstPersonController : MonoBehaviour + { + [Header("Player")] + [Tooltip("Move speed of the character in m/s")] + public float MoveSpeed = 4.0f; + [Tooltip("Sprint speed of the character in m/s")] + public float SprintSpeed = 6.0f; + [Tooltip("Rotation speed of the character")] + public float RotationSpeed = 1.0f; + [Tooltip("Acceleration and deceleration")] + public float SpeedChangeRate = 10.0f; + + [Space(10)] + [Tooltip("The height the player can jump")] + public float JumpHeight = 1.2f; + [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] + public float Gravity = -15.0f; + + [Space(10)] + [Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")] + public float JumpTimeout = 0.1f; + [Tooltip("Time required to pass before entering the fall state. Useful for walking down stairs")] + public float FallTimeout = 0.15f; + + [Header("Player Grounded")] + [Tooltip("If the character is grounded or not. Not part of the CharacterController built in grounded check")] + public bool Grounded = true; + [Tooltip("Useful for rough ground")] + public float GroundedOffset = -0.14f; + [Tooltip("The radius of the grounded check. Should match the radius of the CharacterController")] + public float GroundedRadius = 0.5f; + [Tooltip("What layers the character uses as ground")] + public LayerMask GroundLayers; + + [Header("Cinemachine")] + [Tooltip("The follow target set in the Cinemachine Virtual Camera that the camera will follow")] + public GameObject CinemachineCameraTarget; + [Tooltip("How far in degrees can you move the camera up")] + public float TopClamp = 90.0f; + [Tooltip("How far in degrees can you move the camera down")] + public float BottomClamp = -90.0f; + + // cinemachine + private float _cinemachineTargetPitch; + + // player + private float _speed; + private float _rotationVelocity; + private float _verticalVelocity; + private float _terminalVelocity = 53.0f; + + // timeout deltatime + private float _jumpTimeoutDelta; + private float _fallTimeoutDelta; + + +#if ENABLE_INPUT_SYSTEM + private PlayerInput _playerInput; +#endif + private CharacterController _controller; + private StarterAssetsInputs _input; + private GameObject _mainCamera; + + private const float _threshold = 0.01f; + + private bool IsCurrentDeviceMouse + { + get + { + #if ENABLE_INPUT_SYSTEM + return _playerInput.currentControlScheme == "KeyboardMouse"; + #else + return false; + #endif + } + } + + private void Awake() + { + // get a reference to our main camera + if (_mainCamera == null) + { + _mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); + } + } + + private void Start() + { + _controller = GetComponent(); + _input = GetComponent(); +#if ENABLE_INPUT_SYSTEM + _playerInput = GetComponent(); +#else + Debug.LogError( "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it"); +#endif + + // reset our timeouts on start + _jumpTimeoutDelta = JumpTimeout; + _fallTimeoutDelta = FallTimeout; + } + + private void Update() + { + JumpAndGravity(); + GroundedCheck(); + Move(); + } + + private void LateUpdate() + { + CameraRotation(); + } + + private void GroundedCheck() + { + // set sphere position, with offset + Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z); + Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers, QueryTriggerInteraction.Ignore); + } + + private void CameraRotation() + { + // if there is an input + if (_input.look.sqrMagnitude >= _threshold) + { + //Don't multiply mouse input by Time.deltaTime + float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime; + + _cinemachineTargetPitch += _input.look.y * RotationSpeed * deltaTimeMultiplier; + _rotationVelocity = _input.look.x * RotationSpeed * deltaTimeMultiplier; + + // clamp our pitch rotation + _cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, BottomClamp, TopClamp); + + // Update Cinemachine camera target pitch + CinemachineCameraTarget.transform.localRotation = Quaternion.Euler(_cinemachineTargetPitch, 0.0f, 0.0f); + + // rotate the player left and right + transform.Rotate(Vector3.up * _rotationVelocity); + } + } + + private void Move() + { + // set target speed based on move speed, sprint speed and if sprint is pressed + float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; + + // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon + + // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is no input, set the target speed to 0 + if (_input.move == Vector2.zero) targetSpeed = 0.0f; + + // a reference to the players current horizontal velocity + float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude; + + float speedOffset = 0.1f; + float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; + + // accelerate or decelerate to target speed + if (currentHorizontalSpeed < targetSpeed - speedOffset || currentHorizontalSpeed > targetSpeed + speedOffset) + { + // creates curved result rather than a linear one giving a more organic speed change + // note T in Lerp is clamped, so we don't need to clamp our speed + _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, Time.deltaTime * SpeedChangeRate); + + // round speed to 3 decimal places + _speed = Mathf.Round(_speed * 1000f) / 1000f; + } + else + { + _speed = targetSpeed; + } + + // normalise input direction + Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; + + // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is a move input rotate player when the player is moving + if (_input.move != Vector2.zero) + { + // move + inputDirection = transform.right * _input.move.x + transform.forward * _input.move.y; + } + + // move the player + _controller.Move(inputDirection.normalized * (_speed * Time.deltaTime) + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime); + } + + private void JumpAndGravity() + { + if (Grounded) + { + // reset the fall timeout timer + _fallTimeoutDelta = FallTimeout; + + // stop our velocity dropping infinitely when grounded + if (_verticalVelocity < 0.0f) + { + _verticalVelocity = -2f; + } + + // Jump + if (_input.jump && _jumpTimeoutDelta <= 0.0f) + { + // the square root of H * -2 * G = how much velocity needed to reach desired height + _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); + } + + // jump timeout + if (_jumpTimeoutDelta >= 0.0f) + { + _jumpTimeoutDelta -= Time.deltaTime; + } + } + else + { + // reset the jump timeout timer + _jumpTimeoutDelta = JumpTimeout; + + // fall timeout + if (_fallTimeoutDelta >= 0.0f) + { + _fallTimeoutDelta -= Time.deltaTime; + } + + // if we are not grounded, do not jump + _input.jump = false; + } + + // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) + if (_verticalVelocity < _terminalVelocity) + { + _verticalVelocity += Gravity * Time.deltaTime; + } + } + + private static float ClampAngle(float lfAngle, float lfMin, float lfMax) + { + if (lfAngle < -360f) lfAngle += 360f; + if (lfAngle > 360f) lfAngle -= 360f; + return Mathf.Clamp(lfAngle, lfMin, lfMax); + } + + private void OnDrawGizmosSelected() + { + Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f); + Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f); + + if (Grounded) Gizmos.color = transparentGreen; + else Gizmos.color = transparentRed; + + // when selected, draw a gizmo in the position of, and matching radius of, the grounded collider + Gizmos.DrawSphere(new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z), GroundedRadius); + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta new file mode 100644 index 0000000..f84b7ca --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 55919ac34a26952479f3fc91f777b2fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/InputSystem.meta b/Assets/Starter Assets/Runtime/InputSystem.meta new file mode 100644 index 0000000..b720f6a --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8332b7ba9ad58d641bb71880befb7da1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions new file mode 100644 index 0000000..13307f4 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions @@ -0,0 +1,270 @@ +{ + "name": "StarterAssets", + "maps": [ + { + "name": "Player", + "id": "f62a4b92-ef5e-4175-8f4c-c9075429d32c", + "actions": [ + { + "name": "Move", + "type": "Value", + "id": "6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "" + }, + { + "name": "Look", + "type": "Value", + "id": "2690c379-f54d-45be-a724-414123833eb4", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "" + }, + { + "name": "Jump", + "type": "Button", + "id": "8c4abdf8-4099-493a-aa1a-129acec7c3df", + "expectedControlType": "Button", + "processors": "", + "interactions": "" + }, + { + "name": "Sprint", + "type": "PassThrough", + "id": "980e881e-182c-404c-8cbf-3d09fdb48fef", + "expectedControlType": "", + "processors": "", + "interactions": "" + } + ], + "bindings": [ + { + "name": "WASD", + "id": "b7594ddb-26c9-4ba2-bd5a-901468929edc", + "path": "2DVector(mode=1)", + "interactions": "", + "processors": "", + "groups": "", + "action": "Move", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "2063a8b5-6a45-43de-851b-65f3d46e7b58", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "64e4d037-32e1-4fb9-80e4-fc7330404dfe", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0fce8b11-5eab-4e4e-a741-b732e7b20873", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "7bdda0d6-57a8-47c8-8238-8aecf3110e47", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "bb94b405-58d3-4998-8535-d705c1218a98", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "929d9071-7dd0-4368-9743-6793bb98087e", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "28abadba-06ff-4d37-bb70-af2f1e35a3b9", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "45f115b6-9b4f-4ba8-b500-b94c93bf7d7e", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "e2f9aa65-db06-4c5b-a2e9-41bc8acb9517", + "path": "/leftStick", + "interactions": "", + "processors": "StickDeadzone", + "groups": "Gamepad", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ed66cbff-2900-4a62-8896-696503cfcd31", + "path": "/delta", + "interactions": "", + "processors": "InvertVector2(invertX=false),ScaleVector2(x=0.05,y=0.05)", + "groups": "KeyboardMouse", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d1d171b6-19d8-47a6-ba3a-71b6a8e7b3c0", + "path": "/rightStick", + "interactions": "", + "processors": "InvertVector2(invertX=false),StickDeadzone,ScaleVector2(x=300,y=300)", + "groups": "Gamepad", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1bd55a0b-761e-4ae4-89ae-8ec127e08a29", + "path": "/space", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "9f973413-5e27-4239-acee-38c4a63feeba", + "path": "/buttonSouth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "dc65b89f-9bd3-43fb-92af-d0d87ba5faa4", + "path": "/leftShift", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c8fcd86e-dcfd-4f88-8e93-b638cdbf3320", + "path": "/leftTrigger", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "KeyboardMouse", + "bindingGroup": "KeyboardMouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": true, + "isOR": false + }, + { + "devicePath": "", + "isOptional": true, + "isOR": false + }, + { + "devicePath": "", + "isOptional": true, + "isOR": false + } + ] + }, + { + "name": "Xbox Controller", + "bindingGroup": "Xbox Controller", + "devices": [] + }, + { + "name": "PS4 Controller", + "bindingGroup": "PS4 Controller", + "devices": [] + } + ] +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta new file mode 100644 index 0000000..be89fb3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 4419d82f33d36e848b3ed5af4c8da37e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset new file mode 100644 index 0000000..9a03d18 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset @@ -0,0 +1,26 @@ +%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: c46f07b5ed07e4e92aa78254188d3d10, type: 3} + m_Name: StarterAssets.inputsettings + m_EditorClassIdentifier: + m_SupportedDevices: [] + m_UpdateMode: 1 + m_CompensateForScreenOrientation: 0 + m_FilterNoiseOnCurrent: 0 + m_DefaultDeadzoneMin: 0.125 + m_DefaultDeadzoneMax: 0.925 + m_DefaultButtonPressPoint: 0.5 + m_DefaultTapTime: 0.2 + m_DefaultSlowTapTime: 0.5 + m_DefaultHoldTime: 0.4 + m_TapRadius: 5 + m_MultiTapDelayTime: 0.75 diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta new file mode 100644 index 0000000..65ec1e3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 9e7be553448fa2546aea5752021cbcf7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs new file mode 100644 index 0000000..8a75632 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs @@ -0,0 +1,80 @@ +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace StarterAssets +{ + public class StarterAssetsInputs : MonoBehaviour + { + [Header("Character Input Values")] + public Vector2 move; + public Vector2 look; + public bool jump; + public bool sprint; + + [Header("Movement Settings")] + public bool analogMovement; + + [Header("Mouse Cursor Settings")] + public bool cursorLocked = true; + public bool cursorInputForLook = true; + +#if ENABLE_INPUT_SYSTEM + public void OnMove(InputValue value) + { + MoveInput(value.Get()); + } + + public void OnLook(InputValue value) + { + if(cursorInputForLook) + { + LookInput(value.Get()); + } + } + + public void OnJump(InputValue value) + { + JumpInput(value.isPressed); + } + + public void OnSprint(InputValue value) + { + SprintInput(value.isPressed); + } +#endif + + + public void MoveInput(Vector2 newMoveDirection) + { + move = newMoveDirection; + } + + public void LookInput(Vector2 newLookDirection) + { + look = newLookDirection; + } + + public void JumpInput(bool newJumpState) + { + jump = newJumpState; + } + + public void SprintInput(bool newSprintState) + { + sprint = newSprintState; + } + + private void OnApplicationFocus(bool hasFocus) + { + SetCursorState(cursorLocked); + } + + private void SetCursorState(bool newState) + { + Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None; + } + } + +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta new file mode 100644 index 0000000..93d6117 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: e087ecce43ebbff45a1b360637807d93 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile.meta b/Assets/Starter Assets/Runtime/Mobile.meta new file mode 100644 index 0000000..0306d5c --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2ea1ce5c438c7248934bf9294b1cd67 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta new file mode 100644 index 0000000..0d761da --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49852dd85b2de7b4997a61317937f2e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta new file mode 100644 index 0000000..8fb3ee2 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c89b887ca267db84f895ccd75713a923 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab new file mode 100644 index 0000000..9faec87 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1992104595683069851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8063073397250431797} + - component: {fileID: 5148107578835001787} + - component: {fileID: 8279798545678494202} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8063073397250431797 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -799.99994, y: -449.99997, z: 0} + m_LocalScale: {x: 0.83333325, y: 0.83333325, z: 0.83333325} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5148107578835001787 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!114 &8279798545678494202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta new file mode 100644 index 0000000..d6137d1 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: f0271df749728104eac22c3d897fd8ce +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab new file mode 100644 index 0000000..e076196 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7137023482562969817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5052264629267279113} + - component: {fileID: 3990693672098548669} + - component: {fileID: 7140694399045626294} + - component: {fileID: 3004629566080465027} + - component: {fileID: 7921911991004155457} + m_Layer: 0 + m_Name: UI_TouchScreenInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5052264629267279113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.92999995, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3990693672098548669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: 6f80c07efbcffac4380910b5aac93c8d, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: ccd45339dc8ff154fbbe578856089eaf, + type: 3} + m_SortingOrder: 0 +--- !u!114 &7140694399045626294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6d7e4e4868ed5df4b928c22423c690a0, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveMagnitudeMultiplier: 1 + LookMagnitudeMultiplier: 80 + InvertLookY: 1 + MoveEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualMoveInput + m_Mode: 0 + 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 + LookEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualLookInput + m_Mode: 0 + 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 + JumpEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualJumpInput + m_Mode: 0 + 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 + SprintEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualSprintInput + m_Mode: 0 + 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 +--- !u!114 &3004629566080465027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed06e3b6fec5ecc4696004cedc31f0ac, type: 3} + m_Name: + m_EditorClassIdentifier: + StarterAssetsInputs: {fileID: 0} +--- !u!114 &7921911991004155457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 901182334643ba1438a25accc6bd0c79, type: 3} + m_Name: + m_EditorClassIdentifier: + playerInput: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta new file mode 100644 index 0000000..a1c1411 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 7d001cacf887eb14cbf269a09e3ec3ba +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts.meta new file mode 100644 index 0000000..fe0a26e --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b0e507958fc3a940b3afabb02fdb2cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs new file mode 100644 index 0000000..12acc11 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.InputSystem; +using UnityEngine.UIElements; + +public class TouchscreenInput : MonoBehaviour +{ + [Header("Settings")] + [Tooltip("Move joystick magnitude is in [-1;1] range, this multiply it before sending it to move event")] + public float MoveMagnitudeMultiplier = 1.0f; + [Tooltip("Look joystick magnitude is in [-1;1] range, this multiply it before sending it to move event")] + public float LookMagnitudeMultiplier = 1.0f; + public bool InvertLookY; + + [Header("Events")] + public UnityEvent MoveEvent; + public UnityEvent LookEvent; + public UnityEvent JumpEvent; + public UnityEvent SprintEvent; + + private UIDocument m_Document; + + private VirtualJoystick m_MoveJoystick; + private VirtualJoystick m_LookJoystick; + + private void Awake() + { + m_Document = GetComponent(); + + var safeArea = Screen.safeArea; + + var root = m_Document.rootVisualElement; + + root.style.position = Position.Absolute; + root.style.left = safeArea.xMin; + root.style.right = Screen.width - safeArea.xMax; + root.style.top = Screen.height - safeArea.yMax; + root.style.bottom = safeArea.yMin; + } + + private void Start() + { + var joystickMove = m_Document.rootVisualElement.Q("JoystickMove"); + var joystickLook = m_Document.rootVisualElement.Q("JoystickLook"); + + m_MoveJoystick = new VirtualJoystick(joystickMove); + m_MoveJoystick.JoystickEvent.AddListener(mov => + { + MoveEvent.Invoke(mov * MoveMagnitudeMultiplier); + });; + + m_LookJoystick = new VirtualJoystick(joystickLook); + m_LookJoystick.JoystickEvent.AddListener(mov => + { + if (InvertLookY) + mov.y *= -1; + + LookEvent.Invoke(mov * LookMagnitudeMultiplier); + }); + + var jumpButton = m_Document.rootVisualElement.Q("ButtonJump"); + jumpButton.RegisterCallback(evt => { JumpEvent.Invoke(true); }); + jumpButton.RegisterCallback(evt => { JumpEvent.Invoke(false); }); + + var sprintButton = m_Document.rootVisualElement.Q("ButtonSprint"); + sprintButton.RegisterCallback(evt => { SprintEvent.Invoke(true); }); + sprintButton.RegisterCallback(evt => { SprintEvent.Invoke(false); }); + } +} +public class VirtualJoystick +{ + public VisualElement BaseElement; + public VisualElement Thumbstick; + + public UnityEvent JoystickEvent = new(); + + public VirtualJoystick(VisualElement root) + { + BaseElement = root; + Thumbstick = root.Q("JoystickHandle"); + + BaseElement.RegisterCallback(HandlePress); + BaseElement.RegisterCallback(HandleDrag); + BaseElement.RegisterCallback(HandleRelease); + } + + void HandlePress(PointerDownEvent evt) + { + BaseElement.CapturePointer(evt.pointerId); + } + + void HandleRelease(PointerUpEvent evt) + { + BaseElement.ReleasePointer(evt.pointerId); + + Thumbstick.style.left = Length.Percent(50); + Thumbstick.style.top = Length.Percent(50); + + JoystickEvent.Invoke(Vector2.zero); + } + + void HandleDrag(PointerMoveEvent evt) + { + if (!BaseElement.HasPointerCapture(evt.pointerId)) return; + + var width = BaseElement.contentRect.width; + var center = new Vector3(width / 2, width / 2); + var centerToPosition = evt.localPosition - center; + + if (centerToPosition.magnitude > width/2) + { + centerToPosition = centerToPosition.normalized * width / 2; + } + + var newPos = center + centerToPosition; + + Thumbstick.style.left = newPos.x; + Thumbstick.style.top = newPos.y; + + centerToPosition /= (width / 2); + //we invert y as the y of UI goes down, but pushing the joystick up is expected to give a positive y value + centerToPosition.y *= -1; + + JoystickEvent.Invoke(centerToPosition); + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta new file mode 100644 index 0000000..a8863e9 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 6d7e4e4868ed5df4b928c22423c690a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta new file mode 100644 index 0000000..0f5fd43 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a499c73a35b488449a6f9e9db9e88120 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs new file mode 100644 index 0000000..6604cc6 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs @@ -0,0 +1,41 @@ +/* +The PlayerInput component has an auto-switch control scheme action that allows automatic changing of connected devices. +IE: Switching from Keyboard to Gamepad in-game. +When built to a mobile phone; in most cases, there is no concept of switching connected devices as controls are typically driven through what is on the device's hardware (Screen, Tilt, etc) +In Input System 1.0.2, if the PlayerInput component has Auto Switch enabled, it will search the mobile device for connected devices; which is very costly and results in bad performance. +This is fixed in Input System 1.1. +For the time-being; this script will disable a PlayerInput's auto switch control schemes; when project is built to mobile. +*/ + +using System; +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +public class MobileDisableAutoSwitchControls : MonoBehaviour +{ + +#if ENABLE_INPUT_SYSTEM && (UNITY_IOS || UNITY_ANDROID) + + [Header("Target")] + public PlayerInput playerInput; + + void Start() + { + DisableAutoSwitchControls(); + } + + void DisableAutoSwitchControls() + { + playerInput.neverAutoSwitchControlSchemes = true; + } + + private void Update() + { + Debug.Log(playerInput.currentControlScheme); + } + +#endif + +} diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta new file mode 100644 index 0000000..bdaedf1 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 901182334643ba1438a25accc6bd0c79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs new file mode 100644 index 0000000..10762c3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs @@ -0,0 +1,28 @@ +using StarterAssets; +using UnityEngine; + +public class VirtualInput : MonoBehaviour +{ + [Header("Output")] + public StarterAssetsInputs StarterAssetsInputs; + + public void VirtualMoveInput(Vector2 virtualMoveDirection) + { + StarterAssetsInputs.MoveInput(virtualMoveDirection); + } + + public void VirtualLookInput(Vector2 virtualLookDirection) + { + StarterAssetsInputs.LookInput(virtualLookDirection); + } + + public void VirtualJumpInput(bool virtualJumpState) + { + StarterAssetsInputs.JumpInput(virtualJumpState); + } + + public void VirtualSprintInput(bool virtualSprintState) + { + StarterAssetsInputs.SprintInput(virtualSprintState); + } +} diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta new file mode 100644 index 0000000..a3aa935 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: ed06e3b6fec5ecc4696004cedc31f0ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI.meta b/Assets/Starter Assets/Runtime/Mobile/UI.meta new file mode 100644 index 0000000..bece0ca --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7fdf9603bb47074a9b04a3eb60ffcd8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta new file mode 100644 index 0000000..e93d822 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d68d011be6097c342b084b74a7853323 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png new file mode 100644 index 0000000..c53d8c7 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d5c5186dbd1cd057396df23ef3412c82ed8bb0f3c9c8e2153980645688786d9 +size 28521 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta new file mode 100644 index 0000000..78086c5 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: b74c31d447d2f5d41a61081bdf5e7126 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png new file mode 100644 index 0000000..f5af69f --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d79b6d85b1e8e581edf47e4aaca15c8ec377649e0c8fd74bf8040ee88422563a +size 42557 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta new file mode 100644 index 0000000..909f9f8 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 90ded0611e490aa4ba6961afbfc2280d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png new file mode 100644 index 0000000..d21e0fd --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffe0f414a79e42144667e974c4d8c64fa3e7fce6bf547cc2b2f8fdf1b513e327 +size 24900 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta new file mode 100644 index 0000000..52bf39b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 751aa1b6637101946b2fdbb7aa27d6ad +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png new file mode 100644 index 0000000..6f54a95 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58f5a8cbbebd376a1ddb2a55d2237b58b2d69a61dd6938af2ac244750b1eaff4 +size 17387 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta new file mode 100644 index 0000000..781a79b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: af0ae2dbf3d1efb4f82af377950704a2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png new file mode 100644 index 0000000..f106482 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c36453a15e5c4052c681b53d4ab9a7f104ed21a1d2cf1c469678cf3a1a9cc8a4 +size 15860 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta new file mode 100644 index 0000000..3e82601 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: ff7bfa7addf40784d86f62b8e4a034a6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png new file mode 100644 index 0000000..2fc5b13 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ad8539a0563f3dac7099309131aa29e04e2d31918ca6987cd8b98920a26c46a +size 20825 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta new file mode 100644 index 0000000..bdbbd13 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: b0fa70abd2a79904cb00b175dfd8ec7e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + 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: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss new file mode 100644 index 0000000..b74693b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss @@ -0,0 +1,93 @@ +.touchscreen-button { + margin: 0; + padding: 0; + + background-color: rgba(0,0,0,0); + background-image: url("./Images/UI_Circle_Bevel_Base.png#UI_Circle_Bevel_Base"); +} + +#JoystickMove { + position: absolute; + width: 330px; + height: 330px; + + left: 25px; + bottom: 15px; +} + +#JoystickLook { + position: absolute; + width: 240px; + height: 240px; + + right: 55px; + bottom: 245px; +} + +#JoystickBackground { + flex-grow: 1.0; + + background-image: url("./Images/UI_Circle_Faded.png#UI_Circle_Faded"); +} + +#JoystickHandle { + width: 130px; + height: 130px; + + position: absolute; + + top: 50%; + left: 50%; + + translate: -50%; +} + +.button-icon { + + position: absolute; + + top: 50%; + left: 50%; + + translate: -50%; + + width: 70px; + height: 70px; +} + +#JoystickMove #JoystickIcon { + background-image: url("./Images/UI_Icon_Move.png#UI_Icon_Move"); +} + +#JoystickLook #JoystickIcon { + background-image: url("./Images/UI_Icon_Look.png#UI_Icon_Look"); +} + +#ButtonJump { + width: 110px; + height: 110px; + + position: absolute; + + right : 45px; + bottom : 125px; +} + +#ButtonSprint { + width: 110px; + height: 110px; + + position: absolute; + + right : 130px; + bottom : 25px; +} + + +#ButtonJump #ButtonImage { + background-image: url("./Images/UI_Icon_Jump.png#UI_Icon_Jump"); +} + +#ButtonSprint #ButtonImage { + background-image: url("./Images/UI_Icon_Sprint.png#UI_Icon_Sprint"); +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta new file mode 100644 index 0000000..e738bea --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 65f131e357a5ced4b9f5d34f036bd440 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss new file mode 100644 index 0000000..c9d9776 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss @@ -0,0 +1,5 @@ + +@import url("ToucScreenInputStyle.uss"); + + +VisualElement {} diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta new file mode 100644 index 0000000..776d475 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 271d0c8741016ff4eae1b9070589c571 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset new file mode 100644 index 0000000..2bf23a6 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19101, guid: 0000000000000000e000000000000000, type: 0} + m_Name: TouchScreenInputPanelSetting + m_EditorClassIdentifier: + themeUss: {fileID: -4733365628477956816, guid: 271d0c8741016ff4eae1b9070589c571, type: 3} + m_DisableNoThemeWarning: 0 + m_TargetTexture: {fileID: 0} + m_RenderMode: 0 + m_ColliderUpdateMode: 0 + m_ColliderIsTrigger: 1 + m_ScaleMode: 2 + m_ReferenceSpritePixelsPerUnit: 100 + m_PixelsPerUnit: 100 + m_Scale: 1 + m_ReferenceDpi: 96 + m_FallbackDpi: 96 + m_ReferenceResolution: {x: 1600, y: 900} + m_ScreenMatchMode: 0 + m_Match: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 + m_BindingLogLevel: 0 + m_ClearDepthStencil: 1 + m_ClearColor: 0 + m_ColorClearValue: {r: 0, g: 0, b: 0, a: 0} + m_VertexBudget: 0 + m_TextureSlotCount: 8 + m_DynamicAtlasSettings: + m_MinAtlasSize: 64 + m_MaxAtlasSize: 4096 + m_MaxSubTextureSize: 64 + m_ActiveFilters: -1 + m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0} + m_DefaultShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0} + m_RuntimeGaussianBlurShader: {fileID: 20300, guid: 0000000000000000f000000000000000, type: 0} + m_RuntimeColorEffectShader: {fileID: 20301, guid: 0000000000000000f000000000000000, type: 0} + m_SDFShader: {fileID: 19011, guid: 0000000000000000f000000000000000, type: 0} + m_BitmapShader: {fileID: 9001, guid: 0000000000000000f000000000000000, type: 0} + m_SpriteShader: {fileID: 19012, guid: 0000000000000000f000000000000000, type: 0} + m_ICUDataAsset: {fileID: 0} + forceGammaRendering: 0 + textSettings: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta new file mode 100644 index 0000000..4669959 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 6f80c07efbcffac4380910b5aac93c8d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 196526 + packageName: 'Starter Assets: Character Controllers | URP' + packageVersion: 2.0 + assetPath: Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset + uploadId: 988818 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml new file mode 100644 index 0000000..55649ac --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml @@ -0,0 +1,25 @@ + +