From 35d47d5d5d4874cfc54505a8a72072b46c1ecfc1 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Thu, 26 Dec 2024 02:54:33 +0100 Subject: [PATCH 1/8] add base unity project --- UnityFPSMovementController/.gitignore | 73 + .../Assets/FPSMovementController.meta | 8 + .../Assets/FPSMovementController/Example.meta | 8 + .../Example/Material.meta | 8 + .../Example/Material/Ground.mat | 84 ++ .../Example/Material/Ground.mat.meta | 8 + .../FPSMovementController/Example/Scene.meta | 8 + .../Example/Scene/Demo.unity | 1262 +++++++++++++++++ .../Example/Scene/Demo.unity.meta | 7 + .../Example/Texture.meta | 8 + .../Example/Texture/Dark.meta | 8 + .../Example/Texture/Dark/texture_01.png | Bin 0 -> 2774 bytes .../Example/Texture/Dark/texture_01.png.meta | 130 ++ .../Example/Texture/Dark/texture_02.png | Bin 0 -> 1338 bytes .../Example/Texture/Dark/texture_02.png.meta | 130 ++ .../Example/Texture/Dark/texture_03.png | Bin 0 -> 2727 bytes .../Example/Texture/Dark/texture_03.png.meta | 130 ++ .../Example/Texture/Dark/texture_04.png | Bin 0 -> 13212 bytes .../Example/Texture/Dark/texture_04.png.meta | 130 ++ .../Example/Texture/Dark/texture_05.png | Bin 0 -> 19065 bytes .../Example/Texture/Dark/texture_05.png.meta | 130 ++ .../Example/Texture/Dark/texture_06.png | Bin 0 -> 2739 bytes .../Example/Texture/Dark/texture_06.png.meta | 130 ++ .../Example/Texture/Dark/texture_07.png | Bin 0 -> 2743 bytes .../Example/Texture/Dark/texture_07.png.meta | 130 ++ .../Example/Texture/Dark/texture_08.png | Bin 0 -> 637 bytes .../Example/Texture/Dark/texture_08.png.meta | 130 ++ .../Example/Texture/Dark/texture_09.png | Bin 0 -> 2838 bytes .../Example/Texture/Dark/texture_09.png.meta | 130 ++ .../Example/Texture/Dark/texture_10.png | Bin 0 -> 9183 bytes .../Example/Texture/Dark/texture_10.png.meta | 130 ++ .../Example/Texture/Dark/texture_11.png | Bin 0 -> 9048 bytes .../Example/Texture/Dark/texture_11.png.meta | 130 ++ .../Example/Texture/Dark/texture_12.png | Bin 0 -> 9585 bytes .../Example/Texture/Dark/texture_12.png.meta | 130 ++ .../Example/Texture/Dark/texture_13.png | Bin 0 -> 9867 bytes .../Example/Texture/Dark/texture_13.png.meta | 130 ++ .../Assets/FPSMovementController/Scripts.meta | 8 + .../Scripts/PlayerMovement.cs | 0 .../Scripts/PlayerMovement.cs.meta | 2 + .../Scripts/PlayerSetup.cs | 0 .../Scripts/PlayerSetup.cs.meta | 2 + .../Packages/manifest.json | 37 + .../Packages/packages-lock.json | 268 ++++ .../ProjectSettings/AudioManager.asset | 20 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 37 + .../ProjectSettings/EditorBuildSettings.asset | 9 + .../ProjectSettings/EditorSettings.asset | 48 + .../ProjectSettings/GraphicsSettings.asset | 66 + .../ProjectSettings/InputManager.asset | 296 ++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 7 + .../ProjectSettings/NavMeshAreas.asset | 93 ++ .../PackageManagerSettings.asset | 37 + .../ProjectSettings/Physics2DSettings.asset | 56 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 779 ++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 340 +++++ .../SceneTemplateSettings.json | 121 ++ .../ProjectSettings/TagManager.asset | 46 + .../ProjectSettings/TimeManager.asset | 13 + .../UnityConnectSettings.asset | 36 + .../ProjectSettings/VFXManager.asset | 19 + .../VersionControlSettings.asset | 7 + 66 files changed, 5569 insertions(+) create mode 100644 UnityFPSMovementController/.gitignore create mode 100644 UnityFPSMovementController/Assets/FPSMovementController.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Material.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Scene.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts.meta rename PlayerMovement.cs => UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs (100%) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs.meta rename PlayerSetup.cs => UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs (100%) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta create mode 100644 UnityFPSMovementController/Packages/manifest.json create mode 100644 UnityFPSMovementController/Packages/packages-lock.json create mode 100644 UnityFPSMovementController/ProjectSettings/AudioManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/ClusterInputManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/DynamicsManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/EditorBuildSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/EditorSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/GraphicsSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/InputManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/MemorySettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/MultiplayerManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/NavMeshAreas.asset create mode 100644 UnityFPSMovementController/ProjectSettings/PackageManagerSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/Physics2DSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/PresetManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/ProjectSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/ProjectVersion.txt create mode 100644 UnityFPSMovementController/ProjectSettings/QualitySettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/SceneTemplateSettings.json create mode 100644 UnityFPSMovementController/ProjectSettings/TagManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/TimeManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/UnityConnectSettings.asset create mode 100644 UnityFPSMovementController/ProjectSettings/VFXManager.asset create mode 100644 UnityFPSMovementController/ProjectSettings/VersionControlSettings.asset diff --git a/UnityFPSMovementController/.gitignore b/UnityFPSMovementController/.gitignore new file mode 100644 index 0000000..3496b7c --- /dev/null +++ b/UnityFPSMovementController/.gitignore @@ -0,0 +1,73 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.unitypackage.meta +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* diff --git a/UnityFPSMovementController/Assets/FPSMovementController.meta b/UnityFPSMovementController/Assets/FPSMovementController.meta new file mode 100644 index 0000000..7c852b5 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8856fd15b26ad1b418c32d058eff3e1b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example.meta new file mode 100644 index 0000000..92b5a56 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b4cd96afad24e447b10eb8637343884 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Material.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material.meta new file mode 100644 index 0000000..f8d86a2 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d7a00fcdd9f6214ebd386435fe8cc20 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat new file mode 100644 index 0000000..9005624 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 6bb08f20996754b47b6ef97e4bca9e7b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat.meta new file mode 100644 index 0000000..ffc5b3c --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f242cdbced9b7024c8d0f100e123f593 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene.meta new file mode 100644 index 0000000..addec9e --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b09b46293160a84fb42b2f5cae0f61a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity new file mode 100644 index 0000000..1e3a387 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity @@ -0,0 +1,1262 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &10331003 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 10331007} + - component: {fileID: 10331006} + - component: {fileID: 10331005} + - component: {fileID: 10331004} + m_Layer: 0 + m_Name: Plane (2) + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &10331004 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10331003} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &10331005 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10331003} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &10331006 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10331003} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &10331007 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10331003} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -3.72, z: 0} + m_LocalScale: {x: 10, y: 10, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &636249799 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636249803} + - component: {fileID: 636249802} + - component: {fileID: 636249801} + - component: {fileID: 636249800} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &636249800 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636249799} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &636249801 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636249799} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &636249802 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636249799} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &636249803 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636249799} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.9, y: -2.01, z: -2.53} + 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!1 &861650815 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 861650819} + - component: {fileID: 861650818} + - component: {fileID: 861650817} + - component: {fileID: 861650816} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &861650816 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861650815} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &861650817 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861650815} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &861650818 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861650815} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &861650819 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861650815} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.79, y: -2.51, z: -6.04} + 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!1 &928138506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928138510} + - component: {fileID: 928138509} + - component: {fileID: 928138508} + - component: {fileID: 928138507} + m_Layer: 0 + m_Name: Plane + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &928138507 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928138506} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &928138508 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928138506} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &928138509 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928138506} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &928138510 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928138506} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.21, 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!1 &1032504288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1032504292} + - component: {fileID: 1032504291} + - component: {fileID: 1032504290} + - component: {fileID: 1032504289} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1032504289 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032504288} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1032504290 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032504288} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &1032504291 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032504288} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1032504292 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032504288} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.69, y: -2.32, z: -4.42} + 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!1 &1436170078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1436170082} + - component: {fileID: 1436170081} + - component: {fileID: 1436170080} + - component: {fileID: 1436170079} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1436170079 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436170078} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1436170080 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436170078} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &1436170081 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436170078} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1436170082 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436170078} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.04, y: -2.81, z: -6.04} + 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!1 &1547225959 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1547225960} + - component: {fileID: 1547225962} + - component: {fileID: 1547225961} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1547225960 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547225959} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.8, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1830204648} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!81 &1547225961 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547225959} + m_Enabled: 1 +--- !u!20 &1547225962 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547225959} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, 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.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &1749533818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1749533820} + - component: {fileID: 1749533819} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1749533819 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1749533818} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 0.25 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1749533820 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1749533818} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1830204644 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1830204648} + - component: {fileID: 1830204647} + - component: {fileID: 1830204646} + - component: {fileID: 1830204645} + - component: {fileID: 1830204649} + - component: {fileID: 1830204650} + m_Layer: 0 + m_Name: Player + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!136 &1830204645 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + 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!23 &1830204646 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_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!33 &1830204647 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1830204648 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + 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: 1547225960} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1830204649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3094a7d628a11ac49a1e14b6ac41391b, type: 3} + m_Name: + m_EditorClassIdentifier: + lockCursor: 1 + clampInDegrees: {x: 360, y: 180} + sensitivity: {x: 2, y: 2} + smoothing: {x: 1.5, y: 1.5} + cameraName: Camera + walkMoveSpeed: 7.5 + sprintMoveSpeed: 11 + jumpMoveSpeed: 6 + crouchMoveSpeed: 4 + crouchDownSpeed: 0.2 + crouchHeight: 0.68 + standingHeight: 1 + smoothCrouch: 1 + jumpCrouching: 1 + jumpForce: 110 + jumpAccel: 10 + jumpTime: 0.4 + coyoteTime: 0.2 + jumpBuffer: 0.1 + jumpCooldown: 0.6 + extraGravity: 0.1 + groundTag: Ground + jump: 32 + sprint: 304 + crouch: 122 + lockToggle: 113 + areWeGrounded: 1 + areWeCrouching: 0 + currentSpeed: 0 +--- !u!54 &1830204650 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + serializedVersion: 4 + m_Mass: 10 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &2027540173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2027540177} + - component: {fileID: 2027540176} + - component: {fileID: 2027540175} + - component: {fileID: 2027540174} + m_Layer: 0 + m_Name: Cube + m_TagString: Ground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &2027540174 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027540173} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2027540175 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027540173} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, 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!33 &2027540176 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027540173} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2027540177 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027540173} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -3.66, z: -6.04} + 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1749533820} + - {fileID: 1830204648} + - {fileID: 928138510} + - {fileID: 10331007} + - {fileID: 2027540177} + - {fileID: 1436170082} + - {fileID: 861650819} + - {fileID: 1032504292} + - {fileID: 636249803} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity.meta new file mode 100644 index 0000000..a898fea --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9625b4db1f487f145bfb9b400c099954 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture.meta new file mode 100644 index 0000000..91da712 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8424695f9d86eec4e9c58ee6ff49b038 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta new file mode 100644 index 0000000..fb793af --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d5b237ee08aa904c82020f1613a5760 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..69be2111ccdf84505de4f29ccf49925419687a21 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#5FQ9Iy*ZzIy%?SW>G0y07%hb7@#gx81K zSnK+f_xa2gjAWQGss$JV8@L;GA1&IpmGj*GP2aaO&KV69GDF}7>wz~Lr#$$*tL)#2 zd-vH2n8-9|gljWn`rz@3VS;Rf@B{u49u(wze>TGm+i5~I@z>AE-~4@>!H;~CM!3#5 zOb_xl&dJSf`n>+l-&_Xu5gr`md%uj)pjt=u$G&xQ?MJH_vV*aqm%(O|RlR}lA(4rz Rz3za_@pScbS?83{1OOF$a6JG3 literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta new file mode 100644 index 0000000..c630922 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 0c514b551b074f046b7c09e1286880bc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb471b66da8e1a04293df9aa244cf0c8e52641d GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#C5`iiSF*6#>S>w*BPb*)!gxPaSW-r_4e{X!3G5$SI1Wixn_F^PfMFR?SP_{%jWl| z8fQK=Ug!G!{CReu5rYQ=FeuEL9(Ul*pQhsP;)BOoK$rM499fk7q$?%=em>)1a@YbU z2NV6h4eRHFlE`2I4MGeTZMX-EYryUhWmr`ClJ(44eT(w?K^1`?SR8b$+}3$~`}S9C qP=%NlgUjbj+&_L<4klNvD5zuRE$b_Z+ah2La+jy8pUXO@geCwQHcT@B literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta new file mode 100644 index 0000000..a3d5fb3 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 6475166d049bc39428d0d637d0b49615 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8b186b7fedf3898b1eb3358201df3f51eb8066 GIT binary patch literal 2727 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#C7rFB{OHv`v3pGySt~cvFU87PFDs7E@w{{$B>F!Z?8M@wgd>c9CTw6+hE{vV85D6 zf#jvH@BSOi_DVmw^wlHv4E7H-um64j{rSZ{d7zP_fYcC3kZxG1_j2ETrU+7Xj;e=- zzzybvRo=VaZ)Xr24H7a#;2Xn?SCiiT)@=Zl3!{Lv5NOC{IF~Pb@BdF*1_qa-kqq1q z{1>bz&4^LekPv9FWmvXr$?rPu1jf-IAuj|H_(v-g@3{$={ XeX-K{pTTh>5@dv@tDnm{r-UW|PXu2= literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta new file mode 100644 index 0000000..fa3afef --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 27a577eeda620ea4db7adffcdf6bb222 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bc22b18acff00543fbe7f82da5129ebfcd09c9 GIT binary patch literal 13212 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 WetP@}`12a{>dSAw^wVF`Kl)#B_>q(V literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta new file mode 100644 index 0000000..c138f88 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 72cc37f78990244429a261d47d97899d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd2e56308b236e09bc4e6060c681a3d0edb8893 GIT binary patch literal 19065 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 CTJEp_ literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta new file mode 100644 index 0000000..0b85d11 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 8a49ecd147e324042a4434354c7a4fc2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..adf5e6fc67d0660e30eb7b5ba22bf238ba8fd74f GIT binary patch literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#5FuTB04(u|NsBS#-_Tu`d^xJ6&M(}f<0XvLn>~)z2?Y!#DRy!G1#DWu>jY@{+A9v z1fzr13|@uWZmZM#bxL>%b4B`hp7(#t_G|B!2bwtwNDYAm>4w{km;b(cQ%9=KQT4D8 zXs~6-WB2*Kd(&@5n9wLqY6yH|*dc3hcm26{?4;@(RSyh-8*B^G!w+Zwj(^9@(7^6< zkDa06_WT(y>%zlE)e-c@Ne6|3e z5LaDYePd(O=mm@l3=B+4o-U3d6}R4A*vQMkz`^ABJwD2P!J@@&A0EY>%)m0y)Cd)z4*}Q$iB}lFuX{ literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta new file mode 100644 index 0000000..79836fc --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 670b22dc16987c64e83b208659b15336 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png new file mode 100644 index 0000000000000000000000000000000000000000..57cc6073581c8483bec167a64627a05eed93426b GIT binary patch literal 2838 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#8p#MTUAv}U0p**M^8gTOGQOhS6AQI*!0U*i%tdxu9coHjv*Dd-d=OeI^-bI@KC3y zRmRa@VTZ28gsq28$0^2gvsL|-bKqKAcB19`U-lUX_UNB{{iwaIV!h(IkLTysf4;Im zY+LmIe}eK$XWIpv_s6e{2HHFd1~vo|vKjKG-(iqj{)FM#3El+FfpraiZO;)rpqI5h zU+TcZEAMWYHN5)VzcQ2I>ht(x+ZcIHGJd(qc!N==k-knESlevMefb{DlRa>2EpNix zfpyBL?F?~D0w=XkzTOn?@J)Qd>3^JO{&9m!@=-9LA<(dvv0_dU^N!d_%n@FB48;TL z7&=?N!IhysXm|2uhO)rjwYM2oo!{T%%e=zw|BPE~7u4AeQrHvNH?T0#*--;&-G@82 xmJQiu4B6Yw8n%MkSEFD6L!g4w!81Kjb)H5F*DX-jG5>A)qOp$`#e3*>)yJ$zt`*MkK^mRopavj{W+g=&ev5#eJwto zO*{YqJ{@h1698~Qhg{$XPUx3*B`FL3%Sla74S=j@UZxE<034qTj~Qt$EiK)+5i>bC z+0f8HrBYwMe0k^)l0u=x$KQJLS$yLvT3U0vhTr%$1w7jklP!@@3UXlS;#w`XT(D=8@@Cf@V%@{W$a zQCC-2TU*!FMY6QCYH4ZF)6=)NcQ}9ke0h2K`}b{wgM-Dz#m2@asi~=HY0rFp{cyNs z6bkkD@e@l+%YuS}eZ4wY5Ed{DiZ!i;az~r{}qtn3%x8 zAU{7p6BE;jh)53)^tEf(9z1wZP*CXa?{8va^6FL2+}zyRv+inYhc8{aeDb7GX=!PF zeSLFt^Q%{{4jlM3CFQZQvPwcif}!E@ix;R#-^T)I4(cZsPp>d|6rfxpU`2LPC&8#b?i+XJ%$; zX=%H;ou$+1FJ8PTDJkjf?5wV?K6UCejYcyyJ#+i^ZAV8Z27__(AL%&8XA(5lb@QJx_I&8+qZ8YK78opc$hWME)eSy`E$o_^=fo$l`LsHiAAJNwqw){qd4m6i3$lP3=zlpPrvk&xKW zVzHW-kR>qDVD9zA+= z@7_I0NvZw&C9SP(o<4nAQ&TfG_NlLrEH5vgl9F=$`t^PLBnAcsjEqk8_V$X4@B8rK zgOt>PxVX4GckU`FDQjuzu-WY0yZ1;-A7t;q&H%6t=xC@J`FBn9_}z<}y}ufb|Hv3R z%Gg;jV;-=-Ae*jXCpRZ(H*R4^)zLV9V{gRvD?-;#7^xPXSdUO!yIqgVc&&QM5Bb$o ziVM?8ebdLzJNgP9z?1Gzeq3S-B%SwlR8FK$FBU-uf__)e%9^#H2pdD+wY7rRK0RHw z3$vtNJ=tk|pWxp4@IxqQQ37C%0A)dVA`j5UUoaVS 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 literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta new file mode 100644 index 0000000..bd1b271 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 5d1e3cbb4be7e554aaa0f4eeb6a8125a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..424ba712ed8ad1f8058075f2fe85a9beebdf615f GIT binary patch literal 9048 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 J%(Eum{{asjf^q-= literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta new file mode 100644 index 0000000..0e44ba0 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 31a7eb2e1da7ee543a0c1afacbf7a2b7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png new file mode 100644 index 0000000000000000000000000000000000000000..13c43884ccec7829d4b6d695e89ffebc2e440e61 GIT binary patch literal 9867 zcmeHNcT|(vwm+fhC<5bH7#R?*Zy??u(^TnUC zwUFJYxDfy#YkA`6833e2ODXV`r08*i)L$xo^EIytgJAZOj}#KyLXdM zpSJ(`=i+D2o(~KRxVX4hRJ@#>o$cxAF)%P3A0HTMSEG&}AWHy`adef{%%@MR zy1M%J?|U9UesbuL-u(PL8jZ2Bu_F+wEG$k`RaNKY2c`?CefgSJzy;=y~FV)xyHU+}zycy(w1JvcZ>p-?`5{>PyTrLlb{V6y&#M;^>CgxgTAVODH|HFq5 z%gf7YY4=DZQek1CtLu4ZXP3CR_`JM_nVDH<&e)HPj2Idk_4oI8c6Nn^hCO(YZ(8>Xl-rt_y2KaWwpJ%y}P^H$?4pqNBJcsrPr^=hJ=KA zdHHm8b>VP7-M*dZ;BXd+yi#6XVQdWZ@VGcVJv}k;DIx+{SopNOyxiRU7#@$0jz%L8 z!JeL8=g+%)d;9eD^_@HCT3n3J&CNS}7)qsf`1=Qxm6eZ-jIvm)^z{2Mn3=x5K}$<3 zgTZifgI~E4`Sj_tl$2CDeOOP=U~Fs*3N>q7)hHYF*d0KkRGrsfNDE8pTi%F3^ADi4u^iL(IZrt^K-kD;DZKt*# zz2msA?CSW&8>yitE4Azl9jH!C^!8Kty;m||!zX*)#<*E=y}jNO_VFnx_HoAO{g#ta zF76Xa#221Ip&AD{B>(^?00#m1Bo8G2%1Z!TzH6{pd&W%O67@2yC;nxnzaX|vQ>+=C z47pD*$kA-2+7MVDTIx#)zL@brR9ntkM($`O*KAF8!JqCQX(uxx9V!a|2M-13gHL{A z3nlAlvA?FCSD-Ft?x2QIg|P7^oo2#60dvg?Fhv;*Cz$LC1%*xAY4thOaf}wsB2{lZF+1h)N&40G1fd!UBBH3+4Y~$Ll#$LQ!|%H4qPv6Ev`C#y1f`#6 zu><#bvxveJDlt5VqM-GmnGOTZYF@r%%wZ+v`!MAocLNicJ5p0bgNu-A=z(uU4iuK* z1=MB?k>5L&-i@&B4xAH2o7Y+rcJ1gv99f;dpa09ADxizYG+t>vq`XrwPuI^re8>ha zPeh79Pneg>gkgAAHJ zvj?t)U1KL$H+J5r7m&1CA=$-X4kYZSp) zM2K6KH0?V)5bhfX-|l0#K}ychEt_A~6UcaX*m9cn0V-xzp#qBc&-4+iRH6D04UkyE z%&dGS>kWJF0e#4?A48$#m_|Gbz)x z#aak36^4&mT%ESBrnPVItxjuKin?roj1cJJn5poW>i;cIZdaWiW`f;TIN@7xU1x9s ztHHY*+|oJ6^At-XQY~cxI;}6CFtKiIVn&vdMIi~sT*rmGKD~?)6I6T$x;m{JS!7=8 zBa~0`vEB=G-t6?ethK^ac74s`ΖXpz11goct0UA*^Gt@qN>o!qJ_IPdpPp9zf@ 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 pUkT&?-W>F^kf4x|&n1Pz^* literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta new file mode 100644 index 0000000..8b6a1e2 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 654f784f83792a84ba446dc663c186b2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts.meta new file mode 100644 index 0000000..df0215e --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66fe49d0902b0ac4da6993157d8b0817 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs similarity index 100% rename from PlayerMovement.cs rename to UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs.meta new file mode 100644 index 0000000..e096fa2 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3094a7d628a11ac49a1e14b6ac41391b \ No newline at end of file diff --git a/PlayerSetup.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs similarity index 100% rename from PlayerSetup.cs rename to UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta new file mode 100644 index 0000000..27c70e0 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b019b734b9206264b989bfa55be2a7ee \ No newline at end of file diff --git a/UnityFPSMovementController/Packages/manifest.json b/UnityFPSMovementController/Packages/manifest.json new file mode 100644 index 0000000..2a10130 --- /dev/null +++ b/UnityFPSMovementController/Packages/manifest.json @@ -0,0 +1,37 @@ +{ + "dependencies": { + "com.unity.multiplayer.center": "1.0.0", + "com.unity.modules.accessibility": "1.0.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/UnityFPSMovementController/Packages/packages-lock.json b/UnityFPSMovementController/Packages/packages-lock.json new file mode 100644 index 0000000..d0360bf --- /dev/null +++ b/UnityFPSMovementController/Packages/packages-lock.json @@ -0,0 +1,268 @@ +{ + "dependencies": { + "com.unity.multiplayer.center": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + } + }, + "com.unity.modules.accessibility": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/UnityFPSMovementController/ProjectSettings/AudioManager.asset b/UnityFPSMovementController/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..df1e809 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/AudioManager.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_EnableOutputSuspension: 1 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/UnityFPSMovementController/ProjectSettings/ClusterInputManager.asset b/UnityFPSMovementController/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/UnityFPSMovementController/ProjectSettings/DynamicsManager.asset b/UnityFPSMovementController/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..4f853ef --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 17 + m_Gravity: {x: 0, y: -19, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_SimulationMode: 0 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_InvokeCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_ImprovedPatchFriction: 0 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 + m_ScratchBufferChunkCount: 4 + m_CurrentBackendId: 4072204805 + m_FastMotionThreshold: 3.4028235e+38 diff --git a/UnityFPSMovementController/ProjectSettings/EditorBuildSettings.asset b/UnityFPSMovementController/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..7df81c6 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} + m_UseUCBPForAssetBundles: 0 diff --git a/UnityFPSMovementController/ProjectSettings/EditorSettings.asset b/UnityFPSMovementController/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..75d7ca8 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/EditorSettings.asset @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 diff --git a/UnityFPSMovementController/ProjectSettings/GraphicsSettings.asset b/UnityFPSMovementController/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..7c0ea0b --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,66 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: {} + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 1 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/UnityFPSMovementController/ProjectSettings/InputManager.asset b/UnityFPSMovementController/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..8068b20 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/InputManager.asset @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + m_UsePhysicalKeys: 1 diff --git a/UnityFPSMovementController/ProjectSettings/MemorySettings.asset b/UnityFPSMovementController/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/UnityFPSMovementController/ProjectSettings/MultiplayerManager.asset b/UnityFPSMovementController/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/UnityFPSMovementController/ProjectSettings/NavMeshAreas.asset b/UnityFPSMovementController/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..2e2e369 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/UnityFPSMovementController/ProjectSettings/PackageManagerSettings.asset b/UnityFPSMovementController/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..7b36544 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + 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: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + oneTimeDeprecatedPopUpShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -874 + m_OriginalInstanceId: -876 + m_LoadAssets: 0 diff --git a/UnityFPSMovementController/ProjectSettings/Physics2DSettings.asset b/UnityFPSMovementController/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..c00eeb4 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_BounceThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_ContactThreshold: 0 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_SimulationLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxSubStepCount: 4 + m_MinSubStepFPS: 30 + m_UseSubStepping: 0 + m_UseSubStepContacts: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_GizmoOptions: 10 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/UnityFPSMovementController/ProjectSettings/PresetManager.asset b/UnityFPSMovementController/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset b/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..c7efea7 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,779 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: 9e4dd3ed73336334da7f7b277f2018fb + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: UnityFPSMovementController + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 0 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + meshDeformation: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 23 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 13.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 13.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 200 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + VisionOS: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 11.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 1 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLEnableWebGPU: 0 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: UnityFPSMovementController + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: UnityFPSMovementController + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 0 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] diff --git a/UnityFPSMovementController/ProjectSettings/ProjectVersion.txt b/UnityFPSMovementController/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..2958948 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.0.24f1 +m_EditorVersionWithRevision: 6000.0.24f1 (11fa355cd605) diff --git a/UnityFPSMovementController/ProjectSettings/QualitySettings.asset b/UnityFPSMovementController/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..8e158d6 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/QualitySettings.asset @@ -0,0 +1,340 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 4 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.3 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.4 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 0.7 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 50 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1.5 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + - serializedVersion: 4 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 0 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 2 + EmbeddedLinux: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + LinuxHeadlessSimulation: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + QNX: 5 + ReservedCFE: 5 + Server: 5 + Standalone: 5 + VisionOS: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/UnityFPSMovementController/ProjectSettings/SceneTemplateSettings.json b/UnityFPSMovementController/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/UnityFPSMovementController/ProjectSettings/TagManager.asset b/UnityFPSMovementController/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..ca27b5c --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/TagManager.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 3 + tags: + - Ground + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default diff --git a/UnityFPSMovementController/ProjectSettings/TimeManager.asset b/UnityFPSMovementController/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..8f68da2 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/TimeManager.asset @@ -0,0 +1,13 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: + m_Count: 2822399 + m_Rate: + m_Denominator: 1 + m_Numerator: 141120000 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/UnityFPSMovementController/ProjectSettings/UnityConnectSettings.asset b/UnityFPSMovementController/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..a88bee0 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/UnityFPSMovementController/ProjectSettings/VFXManager.asset b/UnityFPSMovementController/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..a2a4a97 --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/VFXManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_EmptyShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_MaxCapacity: 100000000 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} + m_BatchEmptyLifetime: 300 diff --git a/UnityFPSMovementController/ProjectSettings/VersionControlSettings.asset b/UnityFPSMovementController/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..979fd8e --- /dev/null +++ b/UnityFPSMovementController/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_TrackPackagesOutsideProject: 0 From 3f3cb8c943f84d5397f840c13a56e8af42bdeef7 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Thu, 26 Dec 2024 16:29:39 +0100 Subject: [PATCH 2/8] add better support for new Input system --- UnityFPSMovementController/.vsconfig | 6 + .../Example/Scene/Demo.unity | 235 ++++--- .../FPSMovementController/Scripts/Editor.meta | 8 + .../Scripts/Editor/PlayerSetup.cs | 90 +++ .../Scripts/{ => Editor}/PlayerSetup.cs.meta | 0 .../Scripts/OldUserInput.cs | 49 ++ .../Scripts/OldUserInput.cs.meta | 2 + .../Scripts/PlayerMovement.cs | 580 +++++++++--------- .../Scripts/PlayerSetup.cs | 86 --- .../Scripts/UserInputProxy.cs | 20 + .../Scripts/UserInputProxy.cs.meta | 2 + .../Packages/manifest.json | 1 + .../Packages/packages-lock.json | 27 + .../ProjectSettings/ProjectSettings.asset | 3 +- 14 files changed, 656 insertions(+), 453 deletions(-) create mode 100644 UnityFPSMovementController/.vsconfig create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs rename UnityFPSMovementController/Assets/FPSMovementController/Scripts/{ => Editor}/PlayerSetup.cs.meta (100%) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs.meta diff --git a/UnityFPSMovementController/.vsconfig b/UnityFPSMovementController/.vsconfig new file mode 100644 index 0000000..f019fd0 --- /dev/null +++ b/UnityFPSMovementController/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity index 1e3a387..444339b 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity @@ -132,7 +132,7 @@ GameObject: - component: {fileID: 10331005} - component: {fileID: 10331004} m_Layer: 0 - m_Name: Plane (2) + m_Name: Ground m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -221,14 +221,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10331003} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -3.72, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 240713747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &636249799 +--- !u!1 &228355716 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -236,24 +236,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 636249803} - - component: {fileID: 636249802} - - component: {fileID: 636249801} - - component: {fileID: 636249800} + - component: {fileID: 228355717} + - component: {fileID: 228355720} + - component: {fileID: 228355719} + - component: {fileID: 228355718} m_Layer: 0 - m_Name: Cube (4) + m_Name: Cube m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!65 &636249800 +--- !u!4 &228355717 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228355716} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -3.21, z: 0} + m_LocalScale: {x: 10, y: 4, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &228355718 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -268,13 +283,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &636249801 +--- !u!23 &228355719 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -313,30 +328,48 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &636249802 +--- !u!33 &228355720 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &636249803 +--- !u!1 &240713746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 240713747} + m_Layer: 0 + m_Name: TestGround + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &240713747 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 240713746} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.9, y: -2.01, z: -2.53} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 10331007} + - {fileID: 1188882411} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &861650815 +--- !u!1 &636249799 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -344,24 +377,24 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 861650819} - - component: {fileID: 861650818} - - component: {fileID: 861650817} - - component: {fileID: 861650816} + - component: {fileID: 636249803} + - component: {fileID: 636249802} + - component: {fileID: 636249801} + - component: {fileID: 636249800} m_Layer: 0 - m_Name: Cube (2) + m_Name: Cube (4) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!65 &861650816 +--- !u!65 &636249800 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 636249799} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -376,13 +409,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &861650817 +--- !u!23 &636249801 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 636249799} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -421,30 +454,30 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &861650818 +--- !u!33 &636249802 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 636249799} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &861650819 +--- !u!4 &636249803 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 636249799} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -4.79, y: -2.51, z: -6.04} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.76, y: -1.5999999, z: -3.654} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1188882411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &928138506 +--- !u!1 &861650815 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -452,24 +485,24 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 928138510} - - component: {fileID: 928138509} - - component: {fileID: 928138508} - - component: {fileID: 928138507} + - component: {fileID: 861650819} + - component: {fileID: 861650818} + - component: {fileID: 861650817} + - component: {fileID: 861650816} m_Layer: 0 - m_Name: Plane + m_Name: Cube (2) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!64 &928138507 -MeshCollider: +--- !u!65 &861650816 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 928138506} + m_GameObject: {fileID: 861650815} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -481,17 +514,16 @@ MeshCollider: m_IsTrigger: 0 m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &928138508 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &861650817 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 928138506} + m_GameObject: {fileID: 861650815} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -530,28 +562,28 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &928138509 +--- !u!33 &861650818 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 928138506} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &928138510 + m_GameObject: {fileID: 861650815} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &861650819 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 928138506} + m_GameObject: {fileID: 861650815} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -1.21, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.3900003, y: -2.1, z: -8.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1188882411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1032504288 GameObject: @@ -654,12 +686,48 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1032504288} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.69, y: -2.32, z: -4.42} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.55, y: -1.9099998, z: -6.16} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1188882411} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1188882410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1188882411} + m_Layer: 0 + m_Name: Starirs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1188882411 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1188882410} + 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: 2027540177} + - {fileID: 1436170082} + - {fileID: 861650819} + - {fileID: 1032504292} + - {fileID: 636249803} + m_Father: {fileID: 240713747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1436170078 GameObject: @@ -762,12 +830,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1436170078} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -2.04, y: -2.81, z: -6.04} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.8999999, y: -2.3999999, z: -8.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1188882411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1547225959 GameObject: @@ -971,6 +1039,7 @@ GameObject: - component: {fileID: 1830204646} - component: {fileID: 1830204645} - component: {fileID: 1830204649} + - component: {fileID: 1830204651} - component: {fileID: 1830204650} m_Layer: 0 m_Name: Player @@ -1105,10 +1174,7 @@ MonoBehaviour: jumpCooldown: 0.6 extraGravity: 0.1 groundTag: Ground - jump: 32 - sprint: 304 - crouch: 122 - lockToggle: 113 + userInput: {fileID: 1830204651} areWeGrounded: 1 areWeCrouching: 0 currentSpeed: 0 @@ -1139,6 +1205,22 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!114 &1830204651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830204644} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ee6d0bd0e477a34aac56d770bcba535, type: 3} + m_Name: + m_EditorClassIdentifier: + jump: 32 + sprint: 304 + crouch: 122 + lockToggle: 113 --- !u!1 &2027540173 GameObject: m_ObjectHideFlags: 0 @@ -1240,12 +1322,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2027540173} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -3.66, z: -6.04} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.48, y: -3.25, z: -8.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1188882411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: @@ -1253,10 +1335,5 @@ SceneRoots: m_Roots: - {fileID: 1749533820} - {fileID: 1830204648} - - {fileID: 928138510} - - {fileID: 10331007} - - {fileID: 2027540177} - - {fileID: 1436170082} - - {fileID: 861650819} - - {fileID: 1032504292} - - {fileID: 636249803} + - {fileID: 228355717} + - {fileID: 240713747} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor.meta new file mode 100644 index 0000000..2b58538 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4729d53d8a42c34b92a425ce8e29aaf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs new file mode 100644 index 0000000..767cdf5 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs @@ -0,0 +1,90 @@ +using UnityEditor; +using UnityEngine; + +// By B0N3head + +// This script, although readable was not created out to be super readable for beginners. +// Its just for setup and is not used during gameplay +namespace FPSMovmentController +{ + + [CustomEditor(typeof(PlayerMovement))] + public class PlayerSetup : Editor + { + private readonly string dialogTitle = "Player Movement Setup v1.1", dialogYes = "Yeah", dialogNo = "No thanks"; + + public override void OnInspectorGUI() + { + DrawDefaultInspector(); + PlayerMovement pmvmt = (PlayerMovement)target; + GUILayout.Space(10); + if (GUILayout.Button("Setup Player & World")) + { + if (EditorUtility.DisplayDialog( + dialogTitle, + "Would you like me to set custom world physics for you?\n\n" + + "This changes the gravity\n" + + "If this is a pre-existing project please use caution, it will change how anything using physics moves", + dialogYes, + dialogNo + )) + { + Physics.gravity = new Vector3(0, -19F, 0); + Debug.Log("Physics set"); + } + + if (EditorUtility.DisplayDialog( + dialogTitle, + "Would you like me to create a \"Ground\" tag for you?", + dialogYes, + dialogNo + )) + { + CreateTag("Ground"); + } + + pmvmt.SetupCharacter(); + + EditorUtility.DisplayDialog( + dialogTitle, + "Character all setup\n\n" + + "Please don't forget to set the ground tag to the ground of your level/scenes", + "Awesome, will do" + ); + } + } + + + // Mashup of code from ctwheels & Leslie-Young by B0N3head + // Dw about understanding this, it's just a tool for creating tags in editor for unity + public void CreateTag(string tagName) + { + SerializedObject tagM = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]); + SerializedProperty tagsP = tagM.FindProperty("tags"); + bool found = false; + + if (tagsP.arraySize < 10000) + { + for (int i = 0; i < tagsP.arraySize; i++) + { + SerializedProperty t = tagsP.GetArrayElementAtIndex(i); + if (t.stringValue.Equals(tagName)) + { + found = true; + Debug.Log($"The \"{tagName}\" tag already exists"); + break; + } + } + + if (!found) + { + tagsP.InsertArrayElementAtIndex(0); + SerializedProperty n = tagsP.GetArrayElementAtIndex(0); + n.stringValue = tagName; + Debug.Log($"The \"{tagName}\" tag has been added"); + tagM.ApplyModifiedPropertiesWithoutUndo(); + } + } + } + } +} \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs.meta similarity index 100% rename from UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs.meta rename to UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs.meta diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs new file mode 100644 index 0000000..4d55540 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs @@ -0,0 +1,49 @@ +using UnityEngine; +namespace FPSMovmentController +{ + public class OldUserInput : UserInputProxy + { + //---------------------------------------------------- + [Space] + [Header("Keyboard Settings")] + [Tooltip("The key used to jump")] + [SerializeField] KeyCode jump = KeyCode.Space; + [Tooltip("The key used to sprint")] + [SerializeField] KeyCode sprint = KeyCode.LeftShift; + [Tooltip("The key used to crouch")] + [SerializeField] KeyCode crouch = KeyCode.Z; + [Tooltip("The key used to toggle the cursor")] + [SerializeField] KeyCode lockToggle = KeyCode.Q; + + public override Vector2 Move { get; protected set; } = Vector2.zero; + + public override Vector2 Look { get; protected set; } = Vector2.zero; + + public override bool Jump { get; protected set; } = false; + + public override bool Crouch { get; protected set; } = false; + public override bool IsSprint { get; protected set; } = false; + + public void Update() + { + + // Move all input to Update(), then use given input on FixedUpdate() + Look = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); + // WSAD movement + Move = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); + // Jump key + Jump = Input.GetKey(jump); + // Crouch key + Crouch = Input.GetKey(crouch); + // Sprint key + IsSprint = Input.GetKey(sprint); + + // Mouse lock toggle (KeyDown only fires once) + if (Input.GetKeyDown(lockToggle)) + { + RaiseOnToggleCursor(); + } + } + + } +} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs.meta new file mode 100644 index 0000000..8b8ebae --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9ee6d0bd0e477a34aac56d770bcba535 \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index 0b0bf47..22c8f03 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -1,333 +1,339 @@ using UnityEngine; - // By B0N3head // All yours, use this script however you see fit, feel free to give credit if you want -[AddComponentMenu("Player Movement and Camera Controller")] -public class PlayerMovement : MonoBehaviour + +namespace FPSMovmentController { - [Header("Camera Settings")] - - [Tooltip("Lock the cursor to the game screen on play")] - public bool lockCursor = true; - [Tooltip("Clamp the camera angle (Stop the camera form \"snapping its neck\")")] - public Vector2 clampInDegrees = new Vector2(360f, 180f); - [Tooltip("The mouse sensitivity, both x and y")] - public Vector2 sensitivity = new Vector2(2f, 2f); - [Tooltip("Smoothing of the mouse movement (Try with and without)")] - public Vector2 smoothing = new Vector2(1.5f, 1.5f); - [Tooltip("Needs to be the same name as your main cam")] - public string cameraName = "Camera"; - - //---------------------------------------------------- - [Space] - [Header("Movement Settings")] - - [Tooltip("Max walk speed")] - public float walkMoveSpeed = 7.5f; - [Tooltip("Max sprint speed")] - public float sprintMoveSpeed = 11f; - [Tooltip("Max jump speed")] - public float jumpMoveSpeed = 6f; - [Tooltip("Max crouch speed")] - public float crouchMoveSpeed = 4f; - - //---------------------------------------------------- - [Header("Crouch Settings")] - - [Tooltip("How long it takes to crouch")] - public float crouchDownSpeed = 0.2f; - [Tooltip("How tall the character is when they crouch")] - public float crouchHeight = 0.68f; //change for how large you want when crouching - [Tooltip("How tall the character is when they stand")] - public float standingHeight = 1f; - [Tooltip("Lerp between crouching and standing")] - public bool smoothCrouch = true; - [Tooltip("Can you crouch while in the air")] - public bool jumpCrouching = true; - - //---------------------------------------------------- - [Header("Jump Settings")] - - [Tooltip("Initial jump force")] - public float jumpForce = 110f; - [Tooltip("Continuous jump force")] - public float jumpAccel = 10f; - [Tooltip("Max jump up time")] - public float jumpTime = 0.4f; - [Tooltip("How long you have to jump after leaving a ledge (seconds)")] - public float coyoteTime = 0.2f; - [Tooltip("How long I should buffer your jump input for (seconds)")] - public float jumpBuffer = 0.1f; - [Tooltip("How long do I have to wait before I can jump again")] - public float jumpCooldown = 0.6f; - [Tooltip("Fall quicker")] - public float extraGravity = 0.1f; - [Tooltip("The tag that will be considered the ground")] - public string groundTag = "Ground"; - - //---------------------------------------------------- - [Space] - [Header("Keyboard Settings")] - - [Tooltip("The key used to jump")] - public KeyCode jump = KeyCode.Space; - [Tooltip("The key used to sprint")] - public KeyCode sprint = KeyCode.LeftShift; - [Tooltip("The key used to crouch")] - public KeyCode crouch = KeyCode.Z; - [Tooltip("The key used to toggle the cursor")] - public KeyCode lockToggle = KeyCode.Q; - - //---------------------------------------------------- - [Space] - [Header("Debug Info")] - - [Tooltip("Are we on the ground?")] - public bool areWeGrounded = true; - [Tooltip("Are we crouching?")] - public bool areWeCrouching = false; - [Tooltip("The current speed I should be moving at")] - public float currentSpeed; - - //---------------------------------------------------- - // Reference vars (These are the vars used in calculations, they don't need to be set by the user) - private Rigidbody rb; - private GameObject cam; - Vector3 input = new Vector3(); - Vector2 _mouseAbsolute, _smoothMouse, targetDirection, targetCharacterDirection; - private float coyoteTimeCounter, jumpBufferCounter, startJumpTime, endJumpTime; - private bool wantingToJump = false, wantingToCrouch = false, wantingToSprint = false, jumpCooldownOver = true; - - void Awake() - { - // Just set rb to the rigidbody of the gameobject containing this script - rb = gameObject.GetComponent(); - // Try find our camera amongst the child objects - cam = gameObject.transform.Find(cameraName).gameObject; - // Set the currentSpeed to walking as no keys should be pressed yet - currentSpeed = walkMoveSpeed; - - // Set target direction to the camera's initial orientation. - targetDirection = transform.localRotation.eulerAngles; - // Set target direction for the character body to its inital state. - targetCharacterDirection = transform.localRotation.eulerAngles; - } - private void Update() + [AddComponentMenu("Player Movement and Camera Controller")] + public class PlayerMovement : MonoBehaviour { - // Update the camera pos - cameraUpdate(); - - // Move all input to Update(), then use given input on FixedUpdate() - - // WSAD movement - input = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); - // Jump key - wantingToJump = Input.GetKey(jump); - // Crouch key - wantingToCrouch = Input.GetKey(crouch); - // Sprint key - wantingToSprint = Input.GetKey(sprint); - - // Mouse lock toggle (KeyDown only fires once) - if (Input.GetKeyDown(lockToggle)) - lockCursor = !lockCursor; - } + [Header("Camera Settings")] + + [Tooltip("Lock the cursor to the game screen on play")] + [SerializeField] bool lockCursor = true; + [Tooltip("Clamp the camera angle (Stop the camera form \"snapping its neck\")")] + [SerializeField] Vector2 clampInDegrees = new Vector2(360f, 180f); + [Tooltip("The mouse sensitivity, both x and y")] + [SerializeField] Vector2 sensitivity = new Vector2(2f, 2f); + [Tooltip("Smoothing of the mouse movement (Try with and without)")] + [SerializeField] Vector2 smoothing = new Vector2(1.5f, 1.5f); + [Tooltip("Needs to be the same name as your main cam")] + [SerializeField] string cameraName = "Camera"; + + //---------------------------------------------------- + [Space] + [Header("Movement Settings")] + [Tooltip("Max walk speed")] + [SerializeField] float walkMoveSpeed = 7.5f; + [Tooltip("Max sprint speed")] + [SerializeField] float sprintMoveSpeed = 11f; + [Tooltip("Max jump speed")] + [SerializeField] float jumpMoveSpeed = 6f; + [Tooltip("Max crouch speed")] + [SerializeField] float crouchMoveSpeed = 4f; + //---------------------------------------------------- + [Header("Crouch Settings")] + + [Tooltip("How long it takes to crouch")] + [SerializeField] float crouchDownSpeed = 0.2f; + [Tooltip("How tall the character is when they crouch")] + [SerializeField] float crouchHeight = 0.68f; //change for how large you want when crouching + [Tooltip("How tall the character is when they stand")] + [SerializeField] float standingHeight = 1f; + [Tooltip("Lerp between crouching and standing")] + [SerializeField] bool smoothCrouch = true; + [Tooltip("Can you crouch while in the air")] + [SerializeField] bool jumpCrouching = true; + //---------------------------------------------------- + [Header("Jump Settings")] + [Tooltip("Initial jump force")] + [SerializeField] float jumpForce = 110f; + [Tooltip("Continuous jump force")] + [SerializeField] float jumpAccel = 10f; + [Tooltip("Max jump up time")] + [SerializeField] float jumpTime = 0.4f; + [Tooltip("How long you have to jump after leaving a ledge (seconds)")] + [SerializeField] float coyoteTime = 0.2f; + [Tooltip("How long I should buffer your jump input for (seconds)")] + [SerializeField] float jumpBuffer = 0.1f; + [Tooltip("How long do I have to wait before I can jump again")] + [SerializeField] float jumpCooldown = 0.6f; + [Tooltip("Fall quicker")] + [SerializeField] float extraGravity = 0.1f; + [Tooltip("The tag that will be considered the ground")] + [SerializeField] string groundTag = "Ground"; + //---------------------------------------------------- + [Header("Input")] + [SerializeField] UserInputProxy userInput; + //---------------------------------------------------- + [Space] + [Header("Debug Info")] + + [Tooltip("Are we on the ground?")] + [SerializeField] bool areWeGrounded = true; + [Tooltip("Are we crouching?")] + [SerializeField] bool areWeCrouching = false; + [Tooltip("The current speed I should be moving at")] + [SerializeField] float currentSpeed; + + //---------------------------------------------------- + // Reference vars (These are the vars used in calculations, they don't need to be set by the user) + private Rigidbody rb; + private GameObject cam; + Vector3 moveInput = Vector3.zero; + Vector2 _mouseAbsolute, _smoothMouse, targetDirection, targetCharacterDirection; + private float coyoteTimeCounter, jumpBufferCounter, startJumpTime, endJumpTime; + private bool wantingToJump = false, wantingToCrouch = false, wantingToSprint = false, jumpCooldownOver = true; + + private void Awake() + { + // Just set rb to the rigidbody of the gameobject containing this script + rb = gameObject.GetComponent(); + // Try find our camera amongst the child objects + cam = gameObject.transform.Find(cameraName).gameObject; + // Set the currentSpeed to walking as no keys should be pressed yet + currentSpeed = walkMoveSpeed; - public void cameraUpdate() - { - // Allow the script to clamp based on a desired target value. - var targetOrientation = Quaternion.Euler(targetDirection); - var targetCharacterOrientation = Quaternion.Euler(targetCharacterDirection); + // Set target direction to the camera's initial orientation. + targetDirection = transform.localRotation.eulerAngles; + // Set target direction for the character body to its inital state. + targetCharacterDirection = transform.localRotation.eulerAngles; + userInput.OnToggleCursor += ToggleCursoreLock; + } - // Get raw mouse input for a cleaner reading on more sensitive mice. - var mouseDelta = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); + private void Update() + { + // Update the camera pos + CameraUpdate(); + + // Move all input to Update(), then use given input on FixedUpdate() + + // WSAD movement + moveInput = new Vector3(userInput.Move.x, 0, userInput.Move.y); + // Jump key + wantingToJump = userInput.Jump; + // Crouch key + wantingToCrouch = userInput.Crouch; + // Sprint key + wantingToSprint = userInput.IsSprint; + } - // Scale input against the sensitivity setting and multiply that against the smoothing value. - mouseDelta = Vector2.Scale(mouseDelta, new Vector2(sensitivity.x * smoothing.x, sensitivity.y * smoothing.y)); - // Interpolate mouse movement over time to apply smoothing delta. - _smoothMouse.x = Mathf.Lerp(_smoothMouse.x, mouseDelta.x, 1f / smoothing.x); - _smoothMouse.y = Mathf.Lerp(_smoothMouse.y, mouseDelta.y, 1f / smoothing.y); + public void ToggleCursoreLock() + { + lockCursor = !lockCursor; + } - // Find the absolute mouse movement value from point zero. - _mouseAbsolute += _smoothMouse; + public void CameraUpdate() + { + // Allow the script to clamp based on a desired target value. + var targetOrientation = Quaternion.Euler(targetDirection); + var targetCharacterOrientation = Quaternion.Euler(targetCharacterDirection); - // Clamp and apply the local x value first, so as not to be affected by world transforms. - if (clampInDegrees.x < 360) - _mouseAbsolute.x = Mathf.Clamp(_mouseAbsolute.x, -clampInDegrees.x * 0.5f, clampInDegrees.x * 0.5f); + // Get raw mouse input for a cleaner reading on more sensitive mice. + var mouseDelta = userInput.Look; - // Then clamp and apply the global y value. - if (clampInDegrees.y < 360) - _mouseAbsolute.y = Mathf.Clamp(_mouseAbsolute.y, -clampInDegrees.y * 0.5f, clampInDegrees.y * 0.5f); + // Scale input against the sensitivity setting and multiply that against the smoothing value. + mouseDelta = Vector2.Scale(mouseDelta, new Vector2(sensitivity.x * smoothing.x, sensitivity.y * smoothing.y)); - cam.transform.localRotation = Quaternion.AngleAxis(-_mouseAbsolute.y, targetOrientation * Vector3.right) * targetOrientation; + // Interpolate mouse movement over time to apply smoothing delta. + _smoothMouse.x = Mathf.Lerp(_smoothMouse.x, mouseDelta.x, 1f / smoothing.x); + _smoothMouse.y = Mathf.Lerp(_smoothMouse.y, mouseDelta.y, 1f / smoothing.y); - var yRotation = Quaternion.AngleAxis(_mouseAbsolute.x, Vector3.up); - transform.localRotation = yRotation * targetCharacterOrientation; - } + // Find the absolute mouse movement value from point zero. + _mouseAbsolute += _smoothMouse; - void FixedUpdate() - { - // Lock cursor handling - if (lockCursor) - Cursor.lockState = CursorLockMode.Locked; - else - Cursor.lockState = CursorLockMode.None; - - // Double check if we are on the ground or not (Changes current speed if true) - // --- QUICK EXPLINATION --- - // transform.position.y - transform.localScale.y + 0.1f - // This puts the start of the ray 0.1f above the bottom of the player - // We then shoot a ray 0.15f down, this exists the player with 0.5f to hit objects - // Removing this +- of 0.1f and having it shoot directly under the player can skip the ground as sometimes the capsules bottom clips through the ground - if (Physics.Raycast(new Vector3(transform.position.x, transform.position.y - transform.localScale.y + 0.1f, transform.position.z), Vector3.down, 0.15f)) - handleHitGround(); - - // Sprinting - if (wantingToSprint && areWeGrounded && !areWeCrouching) - currentSpeed = sprintMoveSpeed; - else if (!areWeCrouching && areWeGrounded) - currentSpeed = walkMoveSpeed; + // Clamp and apply the local x value first, so as not to be affected by world transforms. + if (clampInDegrees.x < 360) + { + _mouseAbsolute.x = Mathf.Clamp(_mouseAbsolute.x, -clampInDegrees.x * 0.5f, clampInDegrees.x * 0.5f); + } - // Crouching - // Can be simplified to Crouch((wantingToCrouch && jumpCrouching)); though the bellow is more readable - if (wantingToCrouch && jumpCrouching) - Crouch(true); - else - Crouch(false); - - // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) - // This allows players to jump late. After they have left - if (areWeGrounded) - coyoteTimeCounter = coyoteTime; - else - coyoteTimeCounter -= Time.deltaTime; - - // Jump buffer timer (When the player leaves the ground, start counting down from the set value jumpBuffer) - // This will "buffer" the input and allow for early space presses to be valid and no longer ignored - if (wantingToJump) - jumpBufferCounter = jumpBuffer; - else - jumpBufferCounter -= Time.deltaTime; - - // If the coyote timer has not run out and our jump buffer has not run out and we our cool down (canJump) is now over - if (coyoteTimeCounter > 0f && jumpBufferCounter > 0f && jumpCooldownOver) - { - rb.velocity = new Vector3(rb.velocity.x, 0f, rb.velocity.z); - rb.AddForce(transform.up * jumpForce, ForceMode.Impulse); + // Then clamp and apply the global y value. + if (clampInDegrees.y < 360) + { + _mouseAbsolute.y = Mathf.Clamp(_mouseAbsolute.y, -clampInDegrees.y * 0.5f, clampInDegrees.y * 0.5f); + } - jumpCooldownOver = false; - areWeGrounded = false; - jumpBufferCounter = 0f; - currentSpeed = jumpMoveSpeed; - endJumpTime = Time.time + jumpTime; + cam.transform.localRotation = Quaternion.AngleAxis(-_mouseAbsolute.y, targetOrientation * Vector3.right) * targetOrientation; - // Wait jumpCooldown (1f = 1 second) then run the jumpCoolDownCountdown() void - Invoke(nameof(jumpCoolDownCountdown), jumpCooldown); - } - else if (wantingToJump && !areWeGrounded && endJumpTime > Time.time) - { - // Hold down space for a further jump (until the timer runs out) - rb.AddForce(Vector3.up * jumpAccel, ForceMode.Acceleration); + var yRotation = Quaternion.AngleAxis(_mouseAbsolute.x, Vector3.up); + transform.localRotation = yRotation * targetCharacterOrientation; } - // WSAD movement - input = input.normalized; - Vector3 forwardVel = transform.forward * currentSpeed * input.z; - Vector3 horizontalVel = transform.right * currentSpeed * input.x; - rb.velocity = horizontalVel + forwardVel + new Vector3(0, rb.velocity.y, 0); + private void FixedUpdate() + { + // Lock cursor handling + Cursor.lockState = lockCursor ? CursorLockMode.Locked : CursorLockMode.None; + + // Double check if we are on the ground or not (Changes current speed if true) + // --- QUICK EXPLINATION --- + // transform.position.y - transform.localScale.y + 0.1f + // This puts the start of the ray 0.1f above the bottom of the player + // We then shoot a ray 0.15f down, this exists the player with 0.5f to hit objects + // Removing this +- of 0.1f and having it shoot directly under the player can skip the ground as sometimes the capsules bottom clips through the ground + if (Physics.Raycast(new Vector3(transform.position.x, transform.position.y - transform.localScale.y + 0.1f, transform.position.z), Vector3.down, 0.15f)) + { + HandleHitGround(); + } - //Extra gravity for more nicer jumping - rb.AddForce(new Vector3(0, -extraGravity, 0), ForceMode.Impulse); - } + // Sprinting + if (areWeGrounded && !areWeCrouching) + { + currentSpeed = wantingToSprint ? sprintMoveSpeed : walkMoveSpeed; + } - private void jumpCoolDownCountdown() - { - jumpCooldownOver = true; - } + // Crouching + // Can be simplified to Crouch((wantingToCrouch && jumpCrouching)); though the bellow is more readable + Crouch(wantingToCrouch && jumpCrouching); - // Crouch handling - private void Crouch(bool crouch) - { - areWeCrouching = crouch; + // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) + // This allows players to jump late. After they have left + if (areWeGrounded) + { + coyoteTimeCounter = coyoteTime; + } + else + { + coyoteTimeCounter -= Time.deltaTime; + } - if (crouch) - { - // If the player is crouching - currentSpeed = crouchMoveSpeed; + // Jump buffer timer (When the player leaves the ground, start counting down from the set value jumpBuffer) + // This will "buffer" the input and allow for early space presses to be valid and no longer ignored + if (wantingToJump) + { + jumpBufferCounter = jumpBuffer; + } + else + { + jumpBufferCounter -= Time.deltaTime; + } - if (smoothCrouch) + // If the coyote timer has not run out and our jump buffer has not run out and we our cool down (canJump) is now over + if (coyoteTimeCounter > 0f && jumpBufferCounter > 0f && jumpCooldownOver) { - transform.localScale = new Vector3(transform.localScale.x, Mathf.Lerp(transform.localScale.y, crouchHeight, crouchDownSpeed), transform.localScale.z); - transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y - crouchHeight, transform.position.z), crouchDownSpeed); + rb.linearVelocity = new Vector3(rb.linearVelocity.x, 0f, rb.linearVelocity.z); + rb.AddForce(transform.up * jumpForce, ForceMode.Impulse); + + jumpCooldownOver = false; + areWeGrounded = false; + jumpBufferCounter = 0f; + currentSpeed = jumpMoveSpeed; + endJumpTime = Time.time + jumpTime; + + // Wait jumpCooldown (1f = 1 second) then run the JumpCoolDownCountdown() void + Invoke(nameof(JumpCoolDownCountdown), jumpCooldown); } - else if (transform.localScale != new Vector3(transform.localScale.x, crouchHeight, transform.localScale.z)) + else if (wantingToJump && !areWeGrounded && endJumpTime > Time.time) { - transform.localScale = new Vector3(transform.localScale.x, crouchHeight, transform.localScale.z); - transform.position = new Vector3(transform.position.x, transform.position.y - crouchHeight / 2, transform.position.z); + // Hold down space for a further jump (until the timer runs out) + rb.AddForce(Vector3.up * jumpAccel, ForceMode.Acceleration); } + + // WSAD movement + moveInput = moveInput.normalized; + Vector3 forwardVel = transform.forward * currentSpeed * moveInput.z; + Vector3 horizontalVel = transform.right * currentSpeed * moveInput.x; + rb.linearVelocity = horizontalVel + forwardVel + new Vector3(0, rb.linearVelocity.y, 0); + + //Extra gravity for more nicer jumping + rb.AddForce(new Vector3(0, -extraGravity, 0), ForceMode.Impulse); } - else + + private void JumpCoolDownCountdown() { - // If the player is standing - if (smoothCrouch) + jumpCooldownOver = true; + } + + // Crouch handling + private void Crouch(bool crouch) + { + areWeCrouching = crouch; + + if (crouch) { - transform.localScale = new Vector3(transform.localScale.x, Mathf.Lerp(transform.localScale.y, standingHeight, crouchDownSpeed), transform.localScale.z); - transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y - standingHeight / 2, transform.position.z), crouchDownSpeed); + // If the player is crouching + currentSpeed = crouchMoveSpeed; + + if (smoothCrouch) + { + transform.localScale = new Vector3(transform.localScale.x, Mathf.Lerp(transform.localScale.y, crouchHeight, crouchDownSpeed), transform.localScale.z); + transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y - crouchHeight, transform.position.z), crouchDownSpeed); + } + else if (transform.localScale != new Vector3(transform.localScale.x, crouchHeight, transform.localScale.z)) + { + transform.localScale = new Vector3(transform.localScale.x, crouchHeight, transform.localScale.z); + transform.position = new Vector3(transform.position.x, transform.position.y - crouchHeight / 2, transform.position.z); + } } - else if (transform.localScale != new Vector3(transform.localScale.x, standingHeight, transform.localScale.z)) + else { - transform.localScale = new Vector3(transform.localScale.x, standingHeight, transform.localScale.z); - transform.position = new Vector3(transform.position.x, transform.position.y + standingHeight / 2, transform.position.z); + // If the player is standing + if (smoothCrouch) + { + transform.localScale = new Vector3(transform.localScale.x, Mathf.Lerp(transform.localScale.y, standingHeight, crouchDownSpeed), transform.localScale.z); + transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y - standingHeight / 2, transform.position.z), crouchDownSpeed); + } + else if (transform.localScale != new Vector3(transform.localScale.x, standingHeight, transform.localScale.z)) + { + transform.localScale = new Vector3(transform.localScale.x, standingHeight, transform.localScale.z); + transform.position = new Vector3(transform.position.x, transform.position.y + standingHeight / 2, transform.position.z); + } } } - } - - // Ground check - //****** make sure whatever you want to be the ground in your game matches the tag set in the script - private void OnCollisionEnter(Collision other) - { - if (other.gameObject.tag == groundTag) - handleHitGround(); - } - - // This is separated in its own void as this code needs to be run on two separate occasions, saves copy pasting code - // Just double checking if we are crouching and setting the speed accordingly - public void handleHitGround() - { - if (areWeCrouching) - currentSpeed = crouchMoveSpeed; - else - currentSpeed = walkMoveSpeed; - areWeGrounded = true; - } + // Ground check + //****** make sure whatever you want to be the ground in your game matches the tag set in the script + private void OnCollisionEnter(Collision other) + { + if (other.gameObject.CompareTag(groundTag)) + { + HandleHitGround(); + } + } - // Dw about understanding this, it's just the code for setting up the player character - public void setupCharacter() - { - gameObject.tag = "Player"; - if (!gameObject.GetComponent()) + // This is separated in its own void as this code needs to be run on two separate occasions, saves copy pasting code + // Just double checking if we are crouching and setting the speed accordingly + public void HandleHitGround() { - Rigidbody rb = gameObject.AddComponent(typeof(Rigidbody)) as Rigidbody; - rb.mass = 10; + currentSpeed = areWeCrouching ? crouchMoveSpeed : walkMoveSpeed; + + areWeGrounded = true; } - else Debug.Log("Rigidbody already exists"); - if (!gameObject.transform.Find("Camera")) + // Dw about understanding this, it's just the code for setting up the player character + public void SetupCharacter() { - Vector3 old = transform.position; - gameObject.transform.position = new Vector3(0, -0.8f, 0); - GameObject go = new GameObject("Camera"); - go.AddComponent(); - go.AddComponent(); - go.transform.rotation = new Quaternion(0, 0, 0, 0); - go.transform.localScale = new Vector3(1, 1, 1); - go.transform.parent = transform; - gameObject.transform.position = old; - Debug.Log("Camera created"); + gameObject.tag = "Player"; + if (!gameObject.GetComponent()) + { + Rigidbody rb = gameObject.AddComponent(typeof(Rigidbody)) as Rigidbody; + rb.mass = 10; + } + else + { + Debug.Log("Rigidbody already exists"); + } + + if (!gameObject.transform.Find("Camera")) + { + Vector3 old = transform.position; + gameObject.transform.position = new Vector3(0, -0.8f, 0); + GameObject go = new GameObject("Camera"); + go.AddComponent(); + go.AddComponent(); + go.transform.rotation = new Quaternion(0, 0, 0, 0); + go.transform.localScale = new Vector3(1, 1, 1); + go.transform.parent = transform; + gameObject.transform.position = old; + Debug.Log("Camera created"); + } + else + { + Debug.Log("Camera already exists"); + } } - else Debug.Log("Camera already exists"); } + } \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs deleted file mode 100644 index 96b64cc..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerSetup.cs +++ /dev/null @@ -1,86 +0,0 @@ -using UnityEditor; -using UnityEngine; - -// By B0N3head - -// This script, although readable was not created out to be super readable for beginners. -// Its just for setup and is not used during gameplay -[CustomEditor(typeof(PlayerMovement))] -public class PlayerSetup : Editor -{ - string dialogTitle = "Player Movement Setup v1.1", dialogYes = "Yeah", dialogNo = "No thanks"; - - public override void OnInspectorGUI() - { - DrawDefaultInspector(); - PlayerMovement pmvmt = (PlayerMovement)target; - GUILayout.Space(10); - if (GUILayout.Button("Setup Player & World")) - { - if (EditorUtility.DisplayDialog( - dialogTitle, - "Would you like me to set custom world physics for you?\n\n" + - "This changes the gravity\n" + - "If this is a pre-existing project please use caution, it will change how anything using physics moves", - dialogYes, - dialogNo - )) - { - Physics.gravity = new Vector3(0, -19F, 0); - Debug.Log("Physics set"); - } - - if (EditorUtility.DisplayDialog( - dialogTitle, - "Would you like me to create a \"Ground\" tag for you?", - dialogYes, - dialogNo - )) - { - createTag("Ground"); - } - - pmvmt.setupCharacter(); - - EditorUtility.DisplayDialog( - dialogTitle, - "Character all setup\n\n" + - "Please don't forget to set the ground tag to the ground of your level/scenes", - "Awesome, will do" - ); - } - } - - - // Mashup of code from ctwheels & Leslie-Young by B0N3head - // Dw about understanding this, it's just a tool for creating tags in editor for unity - public void createTag(string tagName) - { - SerializedObject tagM = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]); - SerializedProperty tagsP = tagM.FindProperty("tags"); - bool found = false; - - if (tagsP.arraySize < 10000) - { - for (int i = 0; i < tagsP.arraySize; i++) - { - SerializedProperty t = tagsP.GetArrayElementAtIndex(i); - if (t.stringValue.Equals(tagName)) - { - found = true; - Debug.Log($"The \"{tagName}\" tag already exists"); - break; - } - } - - if (!found) - { - tagsP.InsertArrayElementAtIndex(0); - SerializedProperty n = tagsP.GetArrayElementAtIndex(0); - n.stringValue = tagName; - Debug.Log($"The \"{tagName}\" tag has been added"); - tagM.ApplyModifiedPropertiesWithoutUndo(); - } - } - } -} \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs new file mode 100644 index 0000000..99a1f89 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs @@ -0,0 +1,20 @@ +using System; +using UnityEngine; + +namespace FPSMovmentController +{ + public abstract class UserInputProxy : MonoBehaviour + { + public event Action OnToggleCursor; + public abstract Vector2 Move { get; protected set; } + public abstract Vector2 Look { get; protected set; } + public abstract bool Jump { get; protected set; } + public abstract bool Crouch { get; protected set; } + public abstract bool IsSprint { get; protected set; } + + protected void RaiseOnToggleCursor() + { + OnToggleCursor?.Invoke(); + } + } +} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs.meta new file mode 100644 index 0000000..a2c47f3 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b62a3c5530d91b6458dc768ca00b2435 \ No newline at end of file diff --git a/UnityFPSMovementController/Packages/manifest.json b/UnityFPSMovementController/Packages/manifest.json index 2a10130..1f94e77 100644 --- a/UnityFPSMovementController/Packages/manifest.json +++ b/UnityFPSMovementController/Packages/manifest.json @@ -1,5 +1,6 @@ { "dependencies": { + "com.unity.ide.visualstudio": "2.0.22", "com.unity.multiplayer.center": "1.0.0", "com.unity.modules.accessibility": "1.0.0", "com.unity.modules.ai": "1.0.0", diff --git a/UnityFPSMovementController/Packages/packages-lock.json b/UnityFPSMovementController/Packages/packages-lock.json index d0360bf..a0c6de6 100644 --- a/UnityFPSMovementController/Packages/packages-lock.json +++ b/UnityFPSMovementController/Packages/packages-lock.json @@ -1,5 +1,21 @@ { "dependencies": { + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.22", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, "com.unity.multiplayer.center": { "version": "1.0.0", "depth": 0, @@ -8,6 +24,17 @@ "com.unity.modules.uielements": "1.0.0" } }, + "com.unity.test-framework": { + "version": "1.4.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.modules.accessibility": { "version": "1.0.0", "depth": 0, diff --git a/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset b/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset index c7efea7..ecb6309 100644 --- a/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset +++ b/UnityFPSMovementController/ProjectSettings/ProjectSettings.asset @@ -162,7 +162,8 @@ PlayerSettings: androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.4 androidMinAspectRatio: 1 - applicationIdentifier: {} + applicationIdentifier: + Standalone: com.DefaultCompany.UnityFPSMovementController buildNumber: Standalone: 0 VisionOS: 0 From ba8b17e09379c8ffe43e6c2187d605aa03c5c377 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Thu, 26 Dec 2024 18:09:22 +0100 Subject: [PATCH 3/8] remove Kenny assets, add player prefab, add Constants --- .../Example/Material/Ground.mat | 2 +- .../{Texture/Dark.meta => Prefab.meta} | 2 +- .../Example/Prefab/Player.prefab | 289 ++++++ .../Example/Prefab/Player.prefab.meta | 7 + .../Example/Scene/Demo.unity | 855 ++++++++---------- .../Example/Texture/Dark/texture_01.png | Bin 2774 -> 0 bytes .../Example/Texture/Dark/texture_01.png.meta | 130 --- .../Example/Texture/Dark/texture_02.png | Bin 1338 -> 0 bytes .../Example/Texture/Dark/texture_03.png | Bin 2727 -> 0 bytes .../Example/Texture/Dark/texture_03.png.meta | 130 --- .../Example/Texture/Dark/texture_04.png | Bin 13212 -> 0 bytes .../Example/Texture/Dark/texture_04.png.meta | 130 --- .../Example/Texture/Dark/texture_05.png | Bin 19065 -> 0 bytes .../Example/Texture/Dark/texture_05.png.meta | 130 --- .../Example/Texture/Dark/texture_06.png | Bin 2739 -> 0 bytes .../Example/Texture/Dark/texture_06.png.meta | 130 --- .../Example/Texture/Dark/texture_07.png | Bin 2743 -> 0 bytes .../Example/Texture/Dark/texture_07.png.meta | 130 --- .../Example/Texture/Dark/texture_08.png | Bin 637 -> 0 bytes .../Example/Texture/Dark/texture_08.png.meta | 130 --- .../Example/Texture/Dark/texture_09.png | Bin 2838 -> 0 bytes .../Example/Texture/Dark/texture_09.png.meta | 130 --- .../Example/Texture/Dark/texture_10.png | Bin 9183 -> 0 bytes .../Example/Texture/Dark/texture_10.png.meta | 130 --- .../Example/Texture/Dark/texture_11.png | Bin 9048 -> 0 bytes .../Example/Texture/Dark/texture_11.png.meta | 130 --- .../Example/Texture/Dark/texture_12.png | Bin 9585 -> 0 bytes .../Example/Texture/Dark/texture_12.png.meta | 130 --- .../Example/Texture/Dark/texture_13.png | Bin 9867 -> 0 bytes .../Example/Texture/Dark/texture_13.png.meta | 130 --- .../Example/Texture/TempPartment.png | Bin 0 -> 1857 bytes ...ture_02.png.meta => TempPartment.png.meta} | 4 +- ...ayerSetup.cs => PlayerControllerEditor.cs} | 20 +- ...cs.meta => PlayerControllerEditor.cs.meta} | 0 .../FPSMovementController/Scripts/Helper.meta | 8 + .../Scripts/Helper/Constants.cs | 7 + .../Scripts/Helper/Constants.cs.meta | 2 + .../Scripts/PlayerMovement.cs | 4 +- 38 files changed, 701 insertions(+), 2059 deletions(-) rename UnityFPSMovementController/Assets/FPSMovementController/Example/{Texture/Dark.meta => Prefab.meta} (77%) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png delete mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png rename UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/{Dark/texture_02.png.meta => TempPartment.png.meta} (98%) rename UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/{PlayerSetup.cs => PlayerControllerEditor.cs} (87%) rename UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/{PlayerSetup.cs.meta => PlayerControllerEditor.cs.meta} (100%) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper.meta create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs.meta diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat index 9005624..a4be1f7 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Material/Ground.mat @@ -44,7 +44,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 2800000, guid: 6bb08f20996754b47b6ef97e4bca9e7b, type: 3} + m_Texture: {fileID: 2800000, guid: 8f6427a3e83933e4fa1d7a5c57cb4221, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab.meta similarity index 77% rename from UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta rename to UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab.meta index fb793af..91c1023 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark.meta +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2d5b237ee08aa904c82020f1613a5760 +guid: 6db241d070db73a4b950e2656a52926d folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab new file mode 100644 index 0000000..c8d7558 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab @@ -0,0 +1,289 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3563287428711534580 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3223388137010880869} + - component: {fileID: 350472098157905668} + - component: {fileID: 4654891946323413039} + - component: {fileID: 7880122487217385582} + - component: {fileID: 5676350429962708259} + - component: {fileID: 393243316652359670} + - component: {fileID: 8823166208124433851} + m_Layer: 0 + m_Name: Player + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3223388137010880869 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.7490001, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7902299170756835929} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &350472098157905668 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4654891946323413039 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_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 &7880122487217385582 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + 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!114 &5676350429962708259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3094a7d628a11ac49a1e14b6ac41391b, type: 3} + m_Name: + m_EditorClassIdentifier: + lockCursor: 1 + clampInDegrees: {x: 360, y: 180} + sensitivity: {x: 2, y: 2} + smoothing: {x: 1.5, y: 1.5} + cameraName: Camera + walkMoveSpeed: 7.5 + sprintMoveSpeed: 11 + jumpMoveSpeed: 6 + crouchMoveSpeed: 4 + crouchDownSpeed: 0.2 + crouchHeight: 0.68 + standingHeight: 1 + smoothCrouch: 1 + jumpCrouching: 1 + jumpForce: 110 + jumpAccel: 10 + jumpTime: 0.4 + coyoteTime: 0.2 + jumpBuffer: 0.1 + jumpCooldown: 0.6 + extraGravity: 0.1 + groundTag: Ground + userInput: {fileID: 393243316652359670} + areWeGrounded: 1 + areWeCrouching: 0 + currentSpeed: 0 +--- !u!114 &393243316652359670 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ee6d0bd0e477a34aac56d770bcba535, type: 3} + m_Name: + m_EditorClassIdentifier: + jump: 32 + sprint: 304 + crouch: 122 + lockToggle: 113 +--- !u!54 &8823166208124433851 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3563287428711534580} + serializedVersion: 4 + m_Mass: 10 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &6918030432974207103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7902299170756835929} + - component: {fileID: 3133532397595433229} + - component: {fileID: 3679616986801587694} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7902299170756835929 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6918030432974207103} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.8, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3223388137010880869} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &3133532397595433229 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6918030432974207103} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, 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.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &3679616986801587694 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6918030432974207103} + m_Enabled: 1 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab.meta new file mode 100644 index 0000000..150ea72 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Prefab/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 805e1c4b78a5ebc4d9656e031e305dd5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity index 444339b..d5e9052 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity @@ -222,13 +222,13 @@ Transform: m_GameObject: {fileID: 10331003} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -3.72, z: 0} + m_LocalPosition: {x: 0, y: -4, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 240713747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &228355716 +--- !u!1 &191589342 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -236,39 +236,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 228355717} - - component: {fileID: 228355720} - - component: {fileID: 228355719} - - component: {fileID: 228355718} + - component: {fileID: 191589343} + - component: {fileID: 191589346} + - component: {fileID: 191589345} + - component: {fileID: 191589344} m_Layer: 0 - m_Name: Cube + m_Name: Cube (1) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &228355717 +--- !u!4 &191589343 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 228355716} + m_GameObject: {fileID: 191589342} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -3.21, z: 0} - m_LocalScale: {x: 10, y: 4, z: 10} + m_LocalPosition: {x: -3.93, y: -1.23, z: -8.15} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1171358351} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &228355718 +--- !u!65 &191589344 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 228355716} + m_GameObject: {fileID: 191589342} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -283,13 +283,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &228355719 +--- !u!23 &191589345 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 228355716} + m_GameObject: {fileID: 191589342} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -328,15 +328,15 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &228355720 +--- !u!33 &191589346 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 228355716} + m_GameObject: {fileID: 191589342} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &240713746 +--- !u!1 &228355716 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -344,57 +344,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 240713747} + - component: {fileID: 228355717} + - component: {fileID: 228355720} + - component: {fileID: 228355719} + - component: {fileID: 228355718} m_Layer: 0 - m_Name: TestGround - m_TagString: Untagged + m_Name: Cube + m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &240713747 +--- !u!4 &228355717 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 240713746} + m_GameObject: {fileID: 228355716} 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_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -5.251, z: 0} + m_LocalScale: {x: 10, y: 10, z: 10} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 10331007} - - {fileID: 1188882411} - m_Father: {fileID: 0} + m_Children: [] + m_Father: {fileID: 240713747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &636249799 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 636249803} - - component: {fileID: 636249802} - - component: {fileID: 636249801} - - component: {fileID: 636249800} - m_Layer: 0 - m_Name: Cube (4) - m_TagString: Ground - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &636249800 +--- !u!65 &228355718 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -409,13 +391,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &636249801 +--- !u!23 &228355719 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -454,30 +436,49 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &636249802 +--- !u!33 &228355720 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 228355716} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &636249803 +--- !u!1 &240713746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 240713747} + m_Layer: 0 + m_Name: TestGround + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &240713747 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636249799} + m_GameObject: {fileID: 240713746} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.76, y: -1.5999999, z: -3.654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1188882411} + m_Children: + - {fileID: 10331007} + - {fileID: 228355717} + - {fileID: 1171358351} + m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &861650815 +--- !u!1 &310418241 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -485,24 +486,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 861650819} - - component: {fileID: 861650818} - - component: {fileID: 861650817} - - component: {fileID: 861650816} + - component: {fileID: 310418242} + - component: {fileID: 310418245} + - component: {fileID: 310418244} + - component: {fileID: 310418243} m_Layer: 0 - m_Name: Cube (2) + m_Name: Cube (4) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!65 &861650816 +--- !u!4 &310418242 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310418241} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.76, y: -0.7099998, z: -3.654} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1171358351} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &310418243 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 310418241} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -517,13 +533,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &861650817 +--- !u!23 &310418244 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 310418241} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -562,30 +578,15 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &861650818 +--- !u!33 &310418245 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} + m_GameObject: {fileID: 310418241} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &861650819 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 861650815} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -6.3900003, y: -2.1, z: -8.15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1188882411} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1032504288 +--- !u!1 &489136993 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -593,24 +594,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1032504292} - - component: {fileID: 1032504291} - - component: {fileID: 1032504290} - - component: {fileID: 1032504289} + - component: {fileID: 489136994} + - component: {fileID: 489136997} + - component: {fileID: 489136996} + - component: {fileID: 489136995} m_Layer: 0 - m_Name: Cube (3) + m_Name: Cube (5) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!65 &1032504289 +--- !u!4 &489136994 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489136993} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.02, y: -3.39, z: -8.15} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1171358351} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &489136995 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1032504288} + m_GameObject: {fileID: 489136993} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -625,13 +641,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1032504290 +--- !u!23 &489136996 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1032504288} + m_GameObject: {fileID: 489136993} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -670,30 +686,15 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1032504291 +--- !u!33 &489136997 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1032504288} + m_GameObject: {fileID: 489136993} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1032504292 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1032504288} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.55, y: -1.9099998, z: -6.16} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1188882411} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1188882410 +--- !u!1 &840570593 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -701,60 +702,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1188882411} + - component: {fileID: 840570594} + - component: {fileID: 840570597} + - component: {fileID: 840570596} + - component: {fileID: 840570595} m_Layer: 0 - m_Name: Starirs - m_TagString: Untagged + m_Name: Cube + m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1188882411 +--- !u!4 &840570594 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1188882410} + m_GameObject: {fileID: 840570593} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.86, y: -2.36, z: -8.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2027540177} - - {fileID: 1436170082} - - {fileID: 861650819} - - {fileID: 1032504292} - - {fileID: 636249803} - m_Father: {fileID: 240713747} + m_Children: [] + m_Father: {fileID: 1171358351} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1436170078 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1436170082} - - component: {fileID: 1436170081} - - component: {fileID: 1436170080} - - component: {fileID: 1436170079} - m_Layer: 0 - m_Name: Cube (1) - m_TagString: Ground - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &1436170079 +--- !u!65 &840570595 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1436170078} + m_GameObject: {fileID: 840570593} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -769,13 +749,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1436170080 +--- !u!23 &840570596 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1436170078} + m_GameObject: {fileID: 840570593} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -814,30 +794,15 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1436170081 +--- !u!33 &840570597 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1436170078} + m_GameObject: {fileID: 840570593} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1436170082 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1436170078} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.8999999, y: -2.3999999, z: -8.15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1188882411} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1547225959 +--- !u!1 &910700178 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -845,216 +810,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1547225960} - - component: {fileID: 1547225962} - - component: {fileID: 1547225961} + - component: {fileID: 910700179} + - component: {fileID: 910700182} + - component: {fileID: 910700181} + - component: {fileID: 910700180} m_Layer: 0 - m_Name: Camera - m_TagString: MainCamera + m_Name: Cube (2) + m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1547225960 +--- !u!4 &910700179 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1547225959} + m_GameObject: {fileID: 910700178} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.8, z: 0} + m_LocalPosition: {x: -6.3900003, y: -1.2099998, z: -8.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1830204648} + m_Father: {fileID: 1171358351} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!81 &1547225961 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1547225959} - m_Enabled: 1 ---- !u!20 &1547225962 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1547225959} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, 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.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!1 &1749533818 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1749533820} - - component: {fileID: 1749533819} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1749533819 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1749533818} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 1 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 0.25 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ForceVisible: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_LightUnit: 1 - m_LuxAtDistance: 1 - m_EnableSpotReflector: 1 ---- !u!4 &1749533820 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1749533818} - serializedVersion: 2 - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &1830204644 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1830204648} - - component: {fileID: 1830204647} - - component: {fileID: 1830204646} - - component: {fileID: 1830204645} - - component: {fileID: 1830204649} - - component: {fileID: 1830204651} - - component: {fileID: 1830204650} - m_Layer: 0 - m_Name: Player - m_TagString: Player - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!136 &1830204645 -CapsuleCollider: +--- !u!65 &910700180 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} + m_GameObject: {fileID: 910700178} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -1066,18 +854,16 @@ CapsuleCollider: m_IsTrigger: 0 m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1830204646 +--- !u!23 &910700181 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} + m_GameObject: {fileID: 910700178} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -1094,7 +880,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: f242cdbced9b7024c8d0f100e123f593, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1116,112 +902,15 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1830204647 +--- !u!33 &910700182 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} - m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1830204648 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} - 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: 1547225960} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1830204649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3094a7d628a11ac49a1e14b6ac41391b, type: 3} - m_Name: - m_EditorClassIdentifier: - lockCursor: 1 - clampInDegrees: {x: 360, y: 180} - sensitivity: {x: 2, y: 2} - smoothing: {x: 1.5, y: 1.5} - cameraName: Camera - walkMoveSpeed: 7.5 - sprintMoveSpeed: 11 - jumpMoveSpeed: 6 - crouchMoveSpeed: 4 - crouchDownSpeed: 0.2 - crouchHeight: 0.68 - standingHeight: 1 - smoothCrouch: 1 - jumpCrouching: 1 - jumpForce: 110 - jumpAccel: 10 - jumpTime: 0.4 - coyoteTime: 0.2 - jumpBuffer: 0.1 - jumpCooldown: 0.6 - extraGravity: 0.1 - groundTag: Ground - userInput: {fileID: 1830204651} - areWeGrounded: 1 - areWeCrouching: 0 - currentSpeed: 0 ---- !u!54 &1830204650 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} - serializedVersion: 4 - m_Mass: 10 - m_Drag: 0 - m_AngularDrag: 0.05 - m_CenterOfMass: {x: 0, y: 0, z: 0} - m_InertiaTensor: {x: 1, y: 1, z: 1} - m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 1 - m_UseGravity: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!114 &1830204651 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1830204644} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9ee6d0bd0e477a34aac56d770bcba535, type: 3} - m_Name: - m_EditorClassIdentifier: - jump: 32 - sprint: 304 - crouch: 122 - lockToggle: 113 ---- !u!1 &2027540173 + m_GameObject: {fileID: 910700178} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1051862016 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1229,24 +918,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2027540177} - - component: {fileID: 2027540176} - - component: {fileID: 2027540175} - - component: {fileID: 2027540174} + - component: {fileID: 1051862017} + - component: {fileID: 1051862020} + - component: {fileID: 1051862019} + - component: {fileID: 1051862018} m_Layer: 0 - m_Name: Cube + m_Name: Cube (3) m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!65 &2027540174 +--- !u!4 &1051862017 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1051862016} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.55, y: -1.0199997, z: -6.16} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1171358351} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1051862018 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2027540173} + m_GameObject: {fileID: 1051862016} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -1261,13 +965,13 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2027540175 +--- !u!23 &1051862019 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2027540173} + m_GameObject: {fileID: 1051862016} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -1306,34 +1010,209 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &2027540176 +--- !u!33 &1051862020 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2027540173} + m_GameObject: {fileID: 1051862016} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &2027540177 +--- !u!1 &1171358350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1171358351} + m_Layer: 0 + m_Name: Starirs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1171358351 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2027540173} + m_GameObject: {fileID: 1171358350} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.48, y: -3.25, z: -8.15} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1188882411} + m_Children: + - {fileID: 840570594} + - {fileID: 489136994} + - {fileID: 191589343} + - {fileID: 910700179} + - {fileID: 1051862017} + - {fileID: 310418242} + m_Father: {fileID: 240713747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1749533818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1749533820} + - component: {fileID: 1749533819} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1749533819 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1749533818} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 0.25 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1749533820 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1749533818} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &8920352064307490731 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalPosition.y + value: 0.7490001 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3223388137010880869, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3563287428711534580, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} + propertyPath: m_Name + value: Player + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 805e1c4b78a5ebc4d9656e031e305dd5, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1749533820} - - {fileID: 1830204648} - - {fileID: 228355717} + - {fileID: 8920352064307490731} - {fileID: 240713747} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png deleted file mode 100644 index 69be2111ccdf84505de4f29ccf49925419687a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#5FQ9Iy*ZzIy%?SW>G0y07%hb7@#gx81K zSnK+f_xa2gjAWQGss$JV8@L;GA1&IpmGj*GP2aaO&KV69GDF}7>wz~Lr#$$*tL)#2 zd-vH2n8-9|gljWn`rz@3VS;Rf@B{u49u(wze>TGm+i5~I@z>AE-~4@>!H;~CM!3#5 zOb_xl&dJSf`n>+l-&_Xu5gr`md%uj)pjt=u$G&xQ?MJH_vV*aqm%(O|RlR}lA(4rz Rz3za_@pScbS?83{1OOF$a6JG3 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta deleted file mode 100644 index c630922..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_01.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 0c514b551b074f046b7c09e1286880bc -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png deleted file mode 100644 index 6fb471b66da8e1a04293df9aa244cf0c8e52641d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#C5`iiSF*6#>S>w*BPb*)!gxPaSW-r_4e{X!3G5$SI1Wixn_F^PfMFR?SP_{%jWl| z8fQK=Ug!G!{CReu5rYQ=FeuEL9(Ul*pQhsP;)BOoK$rM499fk7q$?%=em>)1a@YbU z2NV6h4eRHFlE`2I4MGeTZMX-EYryUhWmr`ClJ(44eT(w?K^1`?SR8b$+}3$~`}S9C qP=%NlgUjbj+&_L<4klNvD5zuRE$b_Z+ah2La+jy8pUXO@geCwQHcT@B diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png deleted file mode 100644 index 3f8b186b7fedf3898b1eb3358201df3f51eb8066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2727 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#C7rFB{OHv`v3pGySt~cvFU87PFDs7E@w{{$B>F!Z?8M@wgd>c9CTw6+hE{vV85D6 zf#jvH@BSOi_DVmw^wlHv4E7H-um64j{rSZ{d7zP_fYcC3kZxG1_j2ETrU+7Xj;e=- zzzybvRo=VaZ)Xr24H7a#;2Xn?SCiiT)@=Zl3!{Lv5NOC{IF~Pb@BdF*1_qa-kqq1q z{1>bz&4^LekPv9FWmvXr$?rPu1jf-IAuj|H_(v-g@3{$={ XeX-K{pTTh>5@dv@tDnm{r-UW|PXu2= diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta deleted file mode 100644 index fa3afef..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_03.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 27a577eeda620ea4db7adffcdf6bb222 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png deleted file mode 100644 index e2bc22b18acff00543fbe7f82da5129ebfcd09c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13212 zcmeHO`F|8e+OM8YGJzyBC|87#$*yR)gAxdLH;W1$m@FVSOjLw$$V3pr5z>vQkwqMK zc_C_KXIxR@0wxF&?jB_!fIz|-AixYHkU$b9Y*15C0o~qGB(R=8u^$2BE#ysKDFdAP-4< zWAe)`mn%O%f8)l_ckKB7=+R@_w&hh;RxVhu=;FnT6DLmo_~TCmVa)XDGtQkmw|Vp5 z$BlaxV?1ck;0*NgK7`V9;k3y8 z8db39xbSYT6OVDgX3p^rt}mAYsjfWpB)!XN3J>_+x?U(tYa6|i>aScAxFXHL)u<>c z6IBKC+<$GhmE&QkP8Ww(;Z&{+UgjY?eJSWgydY@i#Q_d(a~pmd1?RU&QRpDji+AuM z)NH$gQ_;cjp{P-H>g@O%RpRCTR5cO#QXk?0=nAze@pk;V>gJL5asa%n!GA*M=u0=e z%vMdj+>avv1TU+lr_ei`K|YGD;Li~JJ3`bSbC`(F1PXPV73#rz;KA>BIC`kP3>Wc_ z0ZUlI8j7q%HNqCW2lY%MW~FDrY?U+!9iqC<_OjaKaT>%&)P)pqAz97RZ9YWp)&q1S zK8AYIuq6`9Jt+mP(x6eYy3FG=iZ>}V3!t4;qi*vr6dDBRdi)*gsYRLqP!}GEhEb>h ztd)MjAfBaABS0I}DDLz$nNM)z4^Xq|w$vN7qq<2D>aW4Bd|3{S=6kSv053&f(`b}f z6wGZkKP6w&bm24oJy;%Qe?sl{g-_v7cj?MjQ0QP7!dZAZmvNYS_;0YZ8=pn{XAxFu zHn3im-bdYNtjdeXXMCg#NA+D?=(OM59R*98%_eysR6v8Qrty9c{$KN6)X<3 zU!=6%fmT-Yb!GD?ZGWI0iQnfkex|fP0PQ#U6xvUNm1Y9%d1(>qMnAgp0?1EaE$w1A*FVZI{ZtYX>zQ5-#s*&d5Zro7Mi)4;=2I>vLU16^4Q6Inz zE{~Me>XyQe^4O%4km=^0UNRlc2chJgD6_>%GtYCYbIfR6$A75p`K-TO0ThKy|&+!c}Tj9Ny((Ex5L>@Lqv zI#0lZ0enGOidv5jCE(it9)fRj*Pk>}W&ocF?9!+Eqdp{H7~bl}LX&(x=^_D-0`OU7 z3_5UpJORT*lAgz1xa*!5dw|<9B<4VVSb9a&asU^Tn4efW$`g{V0@&FTz^9bIq60^# z5pX_$yWlC@^@gPcyotmd$PZ5sMy()V5_5y4t9&)-1_Ad2@Ndf7=-TlN0zLxZ2)vD( z=KYy6lb8ef5$U(1vIrPr4*H8@9RJRH45?~?R6WvWiIWE>-66JyAYa>K=Wx__&T*Js z3e0KuEoBwjW+ICa{JXEM-Z>g=w30Np!~?c9HPUfuELlM-Ai@3_9Hc91h$SoE$Ee1+ zS9%S_3!i}{0oJd!T3bgs*Ln}2sqJL-wl6W^B2ZYrX8RH&TzAF}185UKt?F0Y!KP^h`X7LPD=kDzgf9scCP-Vg zt-G9WeL$cw!0JuZyRMxe&}F<`vZyz>gHKixXca)el2)UiOl1(Otp^JF8%vFjtIrMx z-OHdmRTa?y(vW z8FX~?0Wf2NkJ!WW9k+5-CVX+>85CS44MC;W(Lq$^AIIB;$40$t0k_ZSidu~qqvoB# zhbS<|QG7_>(A0M|&P2_*K^xz&G2m-#>F%q=?VG3KPleI`fN!7GD(Ph@>YQqFl_c@GSgO{dvhc843u;b5 zRl1K_Qjo7ZTFU(j{|&~VLvnf$zCeULODs|&L0m z!^|IJ^GDv0N%jAKGK}6ES`J)IrSHI=co=%&N%_uFn{Yl5cv32Si;tT3N%{tVn}lb3 z0xK21%<0rc`%JEfrP95`BZw>^u7HFGcVN#p^-qz9L;r5Wy?Y%BJ)3i4!)D23rO8wa z1;g3?4l=$&adFDWjxOnB+4=_Cia-7rdv>OL@-cfpQvAt0_Ut!)DzfKX>!*Ka&n3p( zF!p@1WNdX($o@vIiaq|$?O>0)xVh}HmVN+x=5c2}gAIInwEZD7F<9QlaJR|+ zT=QZppHUp5E;rb3Fy&G56s8D7KC`{R4 z_c7&>@=d1fM}3&jJ@^9Vb6d3i5mO#4f6bJgWS6a3-p&^=pW6)fn@o9>JcB7?)Q9=Z z^99UjYqb4rNLfghyM>hTb<~IXyq+I=Jmj<0;A&vXBjxXyvIiNM8}0d_2SUn=qFrSn z<-!-`XG6-$1!Q2BU*oT{(O49d-o})N$j6xS9kha3{u_Ut1-QtNUe1(<%cGd`W3+-< zKFeQcJ})w+H!X` z_fumXm7(0Xy&&g?tO@TSYiLqQ7f?Jiyo0-C4jG=#A7m+YIU>^%GF%GVImN3Ir+$@%>b=)kLT+Q4p7Jq=771EW`ktsASg%@OF$gb%b2b;pB z(XQJeA95oavO=Cs;yol$aWjX4d%2^8LRf>wOG{88F_9XNu9)H+zZ2jxz1)(hZ#XJH z1pQl_=ala|e&q~D9c=y{qk!kEZy)bDCR>*2MQJor9EBFM5_m`XD0pAV4xSoKHgj*>U%pzfa1dHU&kBBp*t!AQeQ`6IrQj{(bsRlP z7#y40q-9`xDV!zdt7o`_EvnUkW{V4f`n-^WQk?iI_;hkQkdr~MNtfByWR63J<=x=<_vG*-sg%4EkT;jMcdRef z$YE4=s;_b@o4u6$H6Xt#BqF1rk;B3Cwr^*c>q#{wZwKUN{5k5Etsa3;%0>fuovni$ zF6qz_9!j%-5%1bdqnk3F36Bd-$R{H)?-aJ^-ec;ZxkS zyHxxE#4LP(n^sB1Z6L0}KXB9TQ}I&}C31+Zrs4{yIE1M&e9K^DJj_F!P&e|uH3Fv@lg#6I}`^%_V z*d%R1iyO00_-t`KoSx&!x%~kp_5txrYK*Q(3+XDP|5t%peflm+ybuDOG^s zB_7%Zh#x~es52$bg!8TKHlBtSQeqd(G2s~g7EOLahT5?Xh;#6>T!EGWL0C)>=DC6@ zI`X$c48uXLKud^YAV%WbT!H50b`YcSF|I%xt+gO_z}vZk8j76_Vkc5Wdq~AmAjaa^ zT)`tM_5d*skKzhysaOwU0`9>TXlZ&L#GbgGE2yV$_kh?7pXUl5Q*jfB{qP>Hz)i*X zK^%xTaTzWuP5?2P)C{#0?+@ZoJb}x&N8iSPI1=~gGPHPGKooHdm!ZXb6~vct3zwnA z`wNKUVM=Cb@ook24g3q2p~br##5BB>%h2L|3&hE!M5@I*7{qD#EiOZgw=;;d@L(=O zi}yY(^F{b?D7lq>1=w(#Zb-w>o*rFcI$!=IP4r&}6VeGPt1P zJHCNJPk^PvxDw6PKJQ<_(jELZnn*u>15`zx>kCraV7^;WyNB?z9#=DZrn_eb7Tq7uLRIUUNi( zlR9C7VCSk`Ii!UHb^X!@_yzPaHFO7N{=c$=;Cp{AUCf&biO<4#IwyRA( zB``MOLs|;1mLhlH{c0iZ^d+rOFqS&OrCcTLj zOXNpdkD)qdOtbA0zCH7!zfuHV`})A({ALONU@xPkYWJN^lc8)Y9PK}JAFajvi^I!d zt+bk=Khkgbz&p4lhQyP@w zFiF1>yaG+6rGEu#aXX(V9p!V>t_7ge1McvI4=8j5P2?lo>6sKd2cRc#4!T6k_X=dq zPBKGwQ>YuD&jd{22@5Dx4^SP><=_ZMSjk*-Ld#_$g-WEK(q@hnPtgG*)3io?og1(9 zDj;)>kCj-tl}3{USp-v>FN5MeR6XHmN7xUm!TveKF02DSYn}2u+C-x>IZwIGF*zZ%;T1fK(brD~dNeyoWhttRcR!qOZP2l+f`%p3s zU0M$QUy{b688inJ*j89;l;_YUt&!0IXq%m#ED5zAT;6ZUWkYWWCl}Y}bHx8*W9D>4$|KP_yZ*G!8A)+E7rlw^k{MXsgz?A<;HE zJIjYDt((w#+)?6HN}ENZ4P-^wA5dC9(DqW-@M+qY-43)J$j_4&?H!=~6su^m7A;Iw z({ETr3$UCyfnyb!?uLpCsNFOy<>EezivUwO3SLf(A>hKxrF1vHi5b!(zcOu)= z)|W{^zkxGVwYBoet1cd=%YU+mk?N0Q8dZ0&0stOQ2l=+FTm#*j_?9bBXZH48ci!rvFz0 zHIM(S8KI8hubVuqZ5E(pU=ar^~h2A07!O{H*JDj_|(MEH6a0+;#B zpiJVfgFy479Q0E>X}Z}+2dYu8%k*w0F9Yy$i|~}Zv4k|}cwl)JW|_%!1yoaE5OM-v zq3o5Dfm49r*&|PKbq(s17Wb5(g>p|i}4r`i=?O5n+j>T=uK z?7#>Vn3>*+k)Q_KNl}5djZWQ!$IdaxC4`ODH&iI+U@Ybvk-t2>3jH$x+pB$gc{Xjd z;D@~YN2leFE);Fi{r~SK{Lyy&zv-nmY+(Ico79E3<8$0+8kgTOc{F)q>eemo*PdjxI*pX>BXsBDXm_wKnr^z1y=Kbe)=ozlQC*47ZRlRNDV=?FPP zdlrSBlSao6mqPZ<(Fy;3G$gEL{~7}~u(VE#*$8|7P}3z=d>nF787yB3c@7)OuR`Tk z*knGwlZY6FjlMxS%dA>1m@enIk-8cb--#PV6U!uQ5Yv4 zVahAedB*pM+dqRT>&r4i%9dC$pDDkGCNSk6IJg|8S+0nH?YL&y5+??k@^W;Qx$%Iz z!V2;g`ZPAm?pX0QQ=X6BV#+^paQ{iO?2mvQw`SQLCmv(US?DTr<1u%I`Rv!Hv0*mF zirYiV(p>ZwQ~s8_!h9}?fa^_~Whi?;Vagw(T;|4IE{=8PO7xj*=%&Ux_J)+r@1oq0 zWoauH$GUCHBQn`&Ozq}SnerlZBxG6og{xzhTOx{Bqi<@Q<2X}ZhK?}HSGl_XTGkh_ z=H1kIM=MiagYuc>7H;u>E$fTe(51vW4uq7Q@1T5Uc?-9gS$;pFh>b={H;0cYFGRbT z<$c_4X1PA1XlZEZQsNwknetM!i&?(R?f$Q2ebGBiIo{D2npBoi@=1ovMz4o*UkRcv z%*1afp5^}M+(?!Wz4?`FDOeWKz=k<7#-)Y~mv(col(G$x*MtlU7L>&d-$P57;d9(A zX81?`Ae*hr^qFjw6OFFbA?N2CT?<2xJB=Xc@?`e~u^nXK$Msx*e!9*+7@*8rqx^ z>EWcop7{jXdP}skGLY`Qdm*=^o&Z}S*h*60K%)bJJg_CgCVola?**XT%A>A40AOGO{5djOpXKOtZ)aPBz+Yq1u0z80X^{rs(fuVCrQhqUJqw4*3F3EVe7Ed6ei6M9*4E0DhnH}3jr1^!i_ zeM4D`w$Ykm8Qj{-s&|e=8)Ej{G-Xi;%LoD{bEQw)ywR7?i(7`YzUO?yjv zQT~(|M<4Ai3EB?_+Tq$;C`KeUSYqX^nq@c}mAae*&>~uiErTi=+)JE}rub>21xi+M zR^Eknw~;EYm=E=er|~P?b**$x&fWdg_jN@lY0b31&W;z5`;uE|m9!gt_$CjW;fGM- zE0E!djg}7bCQ4iYN1xIvvw&t&;xx#2xQe+N4bg~~0&$*Hj}~jhR_)gtZ##Jknyy3GG*#3W*JD|WL+Od|F{rRD`n97iH< zE$kq#r^G|yBbL@lBhfgm=nZXC+f8VK8Yr;~)&`*%Uqo?~*s&Lgm*VwYfkq7HTe!^& zcYRM#Vz{A*9|n!#_PbxLgwnuh$YIuGK`s>$OCSye1M}Qa_B+M8fN}v==*SBH{H~ z+KJt%xSQ~jJL1o3BH{HF8pXbvNO*mP262!k5?)_nj5tCQ39qj(S{$p1gqM^{U)My! z>nm(8PSQle>nm(0&ZJ^LsB^3fP7Sl~rC)(;xKBeHJ45S2eGm1-{rDa9HT}NnP|>y4 zE1l$4nhYx;8T6$3`w@l4L&{zZn)C_U=e5G;ZBUK;W~~WD>d4u69Cuo4T);JDVI5wN zdTPCiCGey2D^#R^rYlD#w3<`z!e0(7pgad*k*aP`y2>M|$G2c;ws@TF#D7uRB|tkp zV9_UN4a;JnO;%I*%~}tN6wTxDOzw0GZQ(%q*LE7eg8reUFZ?FVZ&VE80cvRg#6DS_ z%8l2u7YcOnR}wEGFLlBLKaGh^N+i;9*$8%rz+YJ;Xzddye5F>yUuJwp4c!SBu{Yq< z%UZ1Dg6g;U2og0z5Y7B%+#Q{zv%ms|Uc&JrBWoCyQzI1OWhl`2d*O5?S~llQ2(;iIR*!N1 WetP@}`12a{>dSAw^wVF`Kl)#B_>q(V diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta deleted file mode 100644 index c138f88..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_04.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 72cc37f78990244429a261d47d97899d -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_05.png deleted file mode 100644 index 3fd2e56308b236e09bc4e6060c681a3d0edb8893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19065 zcmeHvX?zq_`tGT&Buy65fd~OvIt)u-SP~2n_G*MN;+7~VI0}uR#EnT5Ff5^~AV@&e zfGi1{jf4LQj%e_r6O=#|YuGzp(5N8QA)8}>>V?qNbakEkzSZ$J_ufzU!~JsaFQ3%P z>E}G>t+Tx6d7pAa?o-*F;~tD7gmj+%=(J}DiGqKPBAr&wqLP^vBn(eRtEQ z&7((WjUPYp>8EE<_9;f9NRr}2Kh%d`FQ_NTfQ8W*A!JG@U3u%TQ@jRDKUm%U#P?|^9#|y2rA^f$bFq`P7nw@bECtp%m;E<1xvgwO` zyjl1cIjoB}a?aD90CJ8`CO=}&4la$(0+9Z65qT6rn!{T)89>%*g^YU`fLse?`eXp{ zdu6lm-vC6pk#m;s1t2vviJSotk>{**4uJHc3rHsfsShvF0s!)|mcy*K1N%}XuYvC* zXe~GSM4O82S8zR{btBh}P9c9!A$8Or`c`$qh3KS5CV zyN*G6F*(ck)f>p#5y0(aAlYk;w&_k+$t`XJ`Yr)=|(aQtD-`Fy>V98L$A3xTW_F;39(FWI{g1%DLQZ)jyOf<3`E zOl}O!&>QkjIv)BS$v;bqAa?wv&;M5kSxuFlfy_BMiBtj^ zJJmndegHCkf-jidUjvz5H{_4R$v~zbKZ6u?2Qn8z6MR`nrXfFGxBz7GSMXEy?Lg)o z?E}U$8^|nDlp6T~AoGDZnj|6_Z}_%)4as=3%#s7hR2>t0@i0O7bp0MF$H+7XvKsP{ z%xSp`X$3N}uFusjVPw>mrg<2d2{+{T#7RJ=3qOmziIH)ICU^^xOuZ5>{2Rz9EBOBU z$3SL`wud>0ky)iECuNMxyJ8kuhh+TWMQRAicnZzZ-+)Zum>AFJ0U3*~lX8sAoj_K- zf@F?!N#t`RL-oGeuNWCM+cXa&W4N0ha&No@06-%SXfyza1t% z2?2T9afsZ7x5IyKd3p9Wc`(o#B+en<0WI<8?1zS*&xgp`Kaw-ZQJ^K?ncB0iF)JQu zoz3qlTt-^zR~H}mU4uoO(wNoRCL=9v{<*~r3ySR$%L{@FgfiwBA zk=oyr`;jk@lt#KYWLbdIDW!{W208KM4evFK)Xl?Ff(;kxmO+{;@oc z__!>QCnJzffVp^Cf#^7Qa;an%(g~A6Erk#r*F|d=VI$Jv$zp#9qLbEaiIs36S_{Yw zzZoWWOH*mAbOE2dMKb-_@T8*25+~vMu)a-_{Uz`uuc^{-~?P(a+kRZzz;1PB*ao#ifK^WHi+Gb`fZpCkzGt&4M zVOS6AwWK!;i%M+yM;xpW&dR?@5@A?;BXjYr6%IbZp z(pgFT-Wu5T(;6%m$&Yj<3;$M&Aar@Jli>Iwt=xV*Qs}KUjChMFJ2-mR5IAMc2 z1e!drKF=J+LG5PCOPtBjWUaHifX6@%#73PCO~$Fq8TGHw$i$%HX3alB0& z>7L?N=L(YSnE_AUbi6|x!#(CYEFxPR9XSDm2 zqu;9f-7jd0;Btl2Nifa7h4q9K&XW=_Fg<#@>ClxEXPL6VKlKoSk;0hS=dJ zTxjZq9dHw&Su$TlKAub)=h`$xD}_Bc=d`u2(Bk4&BqcfUr;$08ZFal;uD;RJ>@WoV zCm`~&cAOb|Uptw`95>)b0bDPf!W_N(yzQ0&2l+%!jrBpH!NpBZN?L(%EHLqVvt!(i zephMKw7Cd(7~s}wtC_JOy?83K+JGAdaQ$JWJSEb`*|zHj9Ap|f=d9fYzrv00lJt(j z&RBri(eBd$=bqU0MwmvzdzcPO)AM`Ck`o<;LDx4y7YDSF%(7s(qQx{HKtBgpvAHMh z{Ul@Vt%OBg(E?j%H~s@sX8`p8Ag7#3mTJ$MCK^C?V97XY$V^{dY(X^w{SAP+sbN#@ z1^W<5F&M!fT;?u}w~gk%AXNqs9@WM2P|~LTV5-L9ijn=kf{gOi#TOXC8v#Jis;f-3 zC*)MA#Q=gSR#p#ZOESNalo>!t08}FPCyTTvO%n~ERlum9qlAp|RmBz9Z|D5;{C?8^E-zbkKx3x>A1IExI2Vw(R;;D+yFk}Lsn;73SUaD7(fssd#U^oS*6V}4Ksis$LFUwPLd_QKx~E)qlFlw z;B8aw1$l^c#{j|@!4YrE;w#A^0|;ZZMgB7hYrmQf7(4*N)gClH@u#Ap!4D7eU! zae_;gnhhX~QBzi|ltkB)Ed~(As7(G7S)ffd4MQMEfExLi9K|HTR~nmP#ONf(C|JX0 zoaYA5(-5c>hX%QjltK3k^$5h_&~`zB)u5fEv15!y)ShC+NCM_gF*sgG+Zy?$`d4JO zrJAn2W3VWlNpijY3Xdz32TPbirux} zFh3`!JlP2zAA&pKMJ0R0PPQceEU7ep_Zr+?S-PD3U0o2f%s87|FkgnKIc(Ay>nJIR z<88n3#@l-HS4oAz39@46S~`HN)?Q+F8$0?*xZ!q(yY)0*P3MBQF#@Fk^qOj6lg?Ym zN?rp9Z}Ih9oNXB2NJ1+bmGI;dT_Fe6aqM*i#|2Lw(<@1>I-M;t za7y9HQ@V?I)aThE11A7ap3zH5Qt&ml$iS(BC(r2tk`Y|a78y9Gm3*z`Gkbl>=4B$D z8||`<$<~yY=y``xGe=XN*N32#1J5cFJt31r+q08esrG{I_t_nj)Mi%uPT=&%E>V#N z%CwdyKAv=?MxynMpN3?vkyD%jG3w$AlATh8<13nJ9VAJJNxOPn2UtxHS+#9DDd-U& z(P~ZMV;@D;2n3%?wAINpfmRfwCqLk#VBo`qqr1u>2^(t%hb~w91$XqO)+;!M8Y$U>;;Y#M*Ks}kv0*uh{5KL8= zup87;?txKw53wGFKc_;Y652Rpb$@JBAA&y{%fmIf`@{ll^dIr*?n>q+-uTajUQLxt*4p&T75REG+M_l*t}3WSjk73%*~h3fJ3{J;I-1?W(u;O5hz zNOdSu9f}kvPye4OQew1QyvlK(Rnk_TD)yTxAbC|0?Fp^LN%a7CI$b}&-=JMH6y6lR zPk9=gFq(>bOFkN!^fG~8*vB1^sk`#3M#Div&7zOneusjp;d8Rngu$p=@kvlxI;``e za|aDrOy{6(RBDZ0h_;@pK(b#94?d`&wDd~qP53E~Zl_Q>dkzG-O1rrkb(7M-6(6sS zKd7O!WJ~%5dnf`sREv2HYJ0m%qZVMZ%D@&MziL3ahSE}Q?tjN-XnP8jtT_)d;gQnl z7F1Jq1!nlUu5qXDgf*WS)Ofz5c% zO2cKv=lO^9ib``S8lEglMFX#{Crv3lR`PCg5eYWY_8WB06>(kY)1Ux%rqjuv zP?++DmV;uO3bkaHDd{kTIOj&rNgj<Mt`BH_cd!ddjsK-M2Je^259!uEiEOpBBP-eBDr znW3`0U5u0qmJ$uC_qRhweC;I#ivTr@`;`uUMtj+zGvh%ivrSRXwU;IalBbYNeR%jE z<%?)356Dzii~ZY69N<~NY4eXjR%3e^qz5SlGV(p$p+!n1FR<=|K&F>0e<()EDT~Q1 zhz#EvI^u0FxmW}=NaQ>COg&PT>BAhv$lO+x(=xnUd4rfn&LEkF@E7Vec>TS+h0)SG zKqgQvCiB@)fUrWfs2n5nWgzQjd#$J^LA!<=&?jqiut=h=WanXICdl$SF&zpiv3w!9 zg^^K0N1y@)l?^Om{S0Ij2cN7*3Ro<25F-;-l;biMZC3LG$Rj|8cZY|oAtd9mL`w^S zOlh^qQmhECg1TBcM&^@1mb<;G)`OrgguAET*QNrQAA;HJJdBK4wtvh+^;#TD3&?l=fTj_12yd!ns8`T zd(m(Uc^{@V4^_O`JHR#N6GwodX&sDIJXbn@1h}T4Mz|deP5ogUa&y_pAE6crrW`Od z39Er+{@vE{3*edpS56aDJ1GPNOL)(MYYJ$Ap=s|*ptWn&fGd9o*VHCD5DZPVM}XGt z$y?ug5?oVf>3d*k`VDEVvtFnk0In&lu3jN`krveNW^V@9luzsnhNkb3*1uWtiaQ>cR8?n!78C= z3StGGrdo{ECCfatOr53ZX?hho-7_CV%M_NN%gEPAsf3-4mMNczo~E71sD?QJmMI{F zo~GeQsEKq3%M|bdPm{0?_$Z4BTBd*wc$#cspi?+rK+6=+0Z-Fj-1b)Xkhv>)j>%m>jjg*Ey*auw;+u(Q!J<>S!P^iQPI!W;n06bU-f(=;0C zw2|&$nF7BEc$$RwkPeu9z%m6UAMi9uZAb@9K46&wvj}*a+~^@)X_e421ty;$Yby8# z=~(8WW$G-wsC8iu<1VI~Gte^C$j?W!11?0yoG}^<4QO>JC)G%~i#a2+-4L;tRO9;S zXU-VOKMHN0)Ay5V#2IPMNavq`C+KO~jfcWswtPDWHaZSHO;6!2aFw}u-ikgS^fcwc zu((@f5Ll*QSm0?Aw!pBgg#;~AFf8yiNnRM11&luJ#*msAH&!RI`$}k;0*4rQnhMaM zIMp%_EmLQqu<|`K7U_It&OpmlBOGKNG7;&x*>bc@`M4CcwLp~lyUazfOaYzuoJm3r zcJ3fsyd_YU%)6Nv<$ejesZ49K@%`F3A?b#H~}3~U_1d+lZr9^lr0Cx6f^--lTe9G#tZ0}0(%&GgfQq| zv*qBJf+nk-U?jpO69jZjp^fM>W*Krh#g>C(iUeEyi&+m^%66DDST2+Ja$3^N?tqCq ztbbb2aCg-E}6uAiUTDz9yJSTcC(XZaS?z6eKs$+90p5g>qdUO_3@o^*c8z zIr4oT>`K?EX%qhtH;#x@XZg3Vm>B_ViE-anxTg=J0O5qmS^?H5kFHn;U&n%P4%mDA zV2x7MfJ-)&8;v6VEwFew`DMvA!*=mCytD+ZniPe#D@Vu;ET`td+plm}M7u*RRxYX* z3&R{#wKy|3lw@&K8zLBG=SVyutKaI?(B_we&z4f&1E)Jm-;+u2E+FRJ?;)=Q^6=B_YD!?5A zTb|qF&v8bdGK#Qg0d9%*2{TsL8d&BN11{qBdzm~nnQD*P8VxvDAvtHQJ%mFFH}-*~ zWe9f?29b&8!n>iI52H^RRo?vow^e(I8B6tj$;?XzTx0>xBy)@C&pU+u7$z&a@wUR! ztUN|NGi|llg#|-*-kL0w$^42DsfKT*-SrqNwJMyWUuq-9&I}tMcq2PWV5t(jCK)yQ zFpMl2{^DLkzYzrNLFo%U>;P42mX>1DaLR~<@E%@Ax2De?TVPa|FT+&+Hh7dRxWo^U zLI~czoh90$={Kas00JwpbB~-wMr++nMFtR>msh~nIn!I$slf0=dPN<`a9EbPrQ{dI8#N3h=g6abA@kD78_ z_Tf^i0TkKq<7_N{lvEf%u(0j#%4uY{*4b2K0AWVb6V8@V-l|Ro-y%>V04-G~nQG6- z10=(hat(GB@Zff`_2+ky5(LVJ7}+<-lgSs_2c}!b(9l~k1P-rJ{;IePBSvQc=o|G5 zw)V0-OfoDP?FV9_&CDMm4F(X}r9Y6zkV#q})0+kmTHnXP0ldT;=#*i^XdM8xsl(aY z8hM~(*e}|R$_chK-bqdxKp3OV@(6NN+he+A4DDF}nhr<&5`Q2r!-&x%7^C19rdpRg zT>2ej)SfxSNrV@{vW-K-7;TdWk^UNMdeZ>HeD-;;UMF}}7LRi$-!~Ra#IQb<$*4yI`6ot~Xw7m$);C5Q#JxAp z@Q$?SeNobSOrK(KK#)r|@@DYR&-V5Tk6%b}4Jokd^D%AAbbyEaH-p?BAU6q9(VF~w zo1Zv}lKeOk%1okU8NNC__>S&j0%3c7AYB5wUKbK+8vx@-fvKfe2Y@ax-TgcY^RY@28sY(xx^Sq3)pF4XIo_3nVxZA|8fcY!`c`e_VXZOnyq7z*4l<7^51 zDUxo0FNfZMOzQ-*TQVejoFMwlW6nROT!tOSXp~#K*5IN<| z?p$D){vy_l98=O+>lo>090~^qa9%x^XdA#^Cus%{oCVHxG=qGit!8^0K#^~d_K{P* z?8E}&T#2|vET*K3*74H!2*iU6BM-lJ8pYotW&;S4Rp)zPHL2H*vl9)Vh#XKuPWiJf z9>WEvz^MQZ6_d?vvAVsu0%e%whrICZ)p08)88bkH8Boz6#*=rQ8B*AI0dNk1Y|)vN zI7dpq;u8wC-On2AF@EM%fC89N{sjfJGvQ!zbHlSz};`wusMpuzkuaRi= z2YHExr|N!vIelEJj@H^J)%}I9>wMTHBW5_Ap%=$Xib((GZ|gvcx(W#(Z4HAbOYfNr zUMrCfOkD~ID(F9%RIx^V1lBDpjgv5Q#1HKF(9`pRuJbhL5>DYyb;n#iV2}9-KdIx) z68fF2N<|Y@mqN31G+b=^8k+?j&*?5p)MiK{vbfl@nCjaVh}!)}GlH(Od}yEaDK-l` zp3)Ud^fvsqPK=k(@06ufG>XC5AQRQ_^nz_GG~+{#NAzpyF`FUBv51||VqRXTz`G2+ z4rphn+A6KZX4ElR52c&8;YW5(bCL*&tn~)krrO+ScnY#pPT)@rx~{GvH8p+0go!OJt^fc3cX#(RHa2y0=tyT^;BxbHaSW-r_4eAq-a`f=t`~J) zG_p;IU=|d;z%-95XB$W3vcH*(#+=)}_J0pQq~Cs^q||Bt%je(gpD&Z&SChukZ!-Arp*dSwPKntG-Z$Dcct7BOE{=UqC;y&I5U;i?K{4hemk2lP3 z^roh-=QF<+>)Fn~_-_96I_8|P|7zI4W>i;wTVILu(0`}$u zZutjw9iRj;o0+Jji6igT@-~FbIiOz6{DYI&M2b=Z@G}f#enu1{pg4 zN7alIx`cnEzS-qmfyemAJ~tWZ~=KV{s+T%XHbH;FN0Qf5}8(^ zt&wboC68F_Zb~2UC)AjMB~p|uG=f?<2d;9~{$sFu`|2C3^v3C+IPi4!b6Mw<&;$TK CTJEp_ diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta deleted file mode 100644 index 0b85d11..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_06.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 8a49ecd147e324042a4434354c7a4fc2 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_07.png deleted file mode 100644 index adf5e6fc67d0660e30eb7b5ba22bf238ba8fd74f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#5FuTB04(u|NsBS#-_Tu`d^xJ6&M(}f<0XvLn>~)z2?Y!#DRy!G1#DWu>jY@{+A9v z1fzr13|@uWZmZM#bxL>%b4B`hp7(#t_G|B!2bwtwNDYAm>4w{km;b(cQ%9=KQT4D8 zXs~6-WB2*Kd(&@5n9wLqY6yH|*dc3hcm26{?4;@(RSyh-8*B^G!w+Zwj(^9@(7^6< zkDa06_WT(y>%zlE)e-c@Ne6|3e z5LaDYePd(O=mm@l3=B+4o-U3d6}R4A*vQMkz`^ABJwD2P!J@@&A0EY>%)m0y)Cd)z4*}Q$iB}lFuX{ diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta deleted file mode 100644 index 79836fc..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_08.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 670b22dc16987c64e83b208659b15336 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_09.png deleted file mode 100644 index 57cc6073581c8483bec167a64627a05eed93426b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#8p#MTUAv}U0p**M^8gTOGQOhS6AQI*!0U*i%tdxu9coHjv*Dd-d=OeI^-bI@KC3y zRmRa@VTZ28gsq28$0^2gvsL|-bKqKAcB19`U-lUX_UNB{{iwaIV!h(IkLTysf4;Im zY+LmIe}eK$XWIpv_s6e{2HHFd1~vo|vKjKG-(iqj{)FM#3El+FfpraiZO;)rpqI5h zU+TcZEAMWYHN5)VzcQ2I>ht(x+ZcIHGJd(qc!N==k-knESlevMefb{DlRa>2EpNix zfpyBL?F?~D0w=XkzTOn?@J)Qd>3^JO{&9m!@=-9LA<(dvv0_dU^N!d_%n@FB48;TL z7&=?N!IhysXm|2uhO)rjwYM2oo!{T%%e=zw|BPE~7u4AeQrHvNH?T0#*--;&-G@82 xmJQiu4B6Yw8n%MkSEFD6L!g4w!81Kjb)H5F*DX-jG5>A)qOp$`#e3*>)yJ$zt`*MkK^mRopavj{W+g=&ev5#eJwto zO*{YqJ{@h1698~Qhg{$XPUx3*B`FL3%Sla74S=j@UZxE<034qTj~Qt$EiK)+5i>bC z+0f8HrBYwMe0k^)l0u=x$KQJLS$yLvT3U0vhTr%$1w7jklP!@@3UXlS;#w`XT(D=8@@Cf@V%@{W$a zQCC-2TU*!FMY6QCYH4ZF)6=)NcQ}9ke0h2K`}b{wgM-Dz#m2@asi~=HY0rFp{cyNs z6bkkD@e@l+%YuS}eZ4wY5Ed{DiZ!i;az~r{}qtn3%x8 zAU{7p6BE;jh)53)^tEf(9z1wZP*CXa?{8va^6FL2+}zyRv+inYhc8{aeDb7GX=!PF zeSLFt^Q%{{4jlM3CFQZQvPwcif}!E@ix;R#-^T)I4(cZsPp>d|6rfxpU`2LPC&8#b?i+XJ%$; zX=%H;ou$+1FJ8PTDJkjf?5wV?K6UCejYcyyJ#+i^ZAV8Z27__(AL%&8XA(5lb@QJx_I&8+qZ8YK78opc$hWME)eSy`E$o_^=fo$l`LsHiAAJNwqw){qd4m6i3$lP3=zlpPrvk&xKW zVzHW-kR>qDVD9zA+= z@7_I0NvZw&C9SP(o<4nAQ&TfG_NlLrEH5vgl9F=$`t^PLBnAcsjEqk8_V$X4@B8rK zgOt>PxVX4GckU`FDQjuzu-WY0yZ1;-A7t;q&H%6t=xC@J`FBn9_}z<}y}ufb|Hv3R z%Gg;jV;-=-Ae*jXCpRZ(H*R4^)zLV9V{gRvD?-;#7^xPXSdUO!yIqgVc&&QM5Bb$o ziVM?8ebdLzJNgP9z?1Gzeq3S-B%SwlR8FK$FBU-uf__)e%9^#H2pdD+wY7rRK0RHw z3$vtNJ=tk|pWxp4@IxqQQ37C%0A)dVA`j5UUoaVS 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 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta deleted file mode 100644 index bd1b271..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_10.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 5d1e3cbb4be7e554aaa0f4eeb6a8125a -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_11.png deleted file mode 100644 index 424ba712ed8ad1f8058075f2fe85a9beebdf615f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9048 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 J%(Eum{{asjf^q-= diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta deleted file mode 100644 index 0e44ba0..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_12.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 31a7eb2e1da7ee543a0c1afacbf7a2b7 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png deleted file mode 100644 index 13c43884ccec7829d4b6d695e89ffebc2e440e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9867 zcmeHNcT|(vwm+fhC<5bH7#R?*Zy??u(^TnUC zwUFJYxDfy#YkA`6833e2ODXV`r08*i)L$xo^EIytgJAZOj}#KyLXdM zpSJ(`=i+D2o(~KRxVX4hRJ@#>o$cxAF)%P3A0HTMSEG&}AWHy`adef{%%@MR zy1M%J?|U9UesbuL-u(PL8jZ2Bu_F+wEG$k`RaNKY2c`?CefgSJzy;=y~FV)xyHU+}zycy(w1JvcZ>p-?`5{>PyTrLlb{V6y&#M;^>CgxgTAVODH|HFq5 z%gf7YY4=DZQek1CtLu4ZXP3CR_`JM_nVDH<&e)HPj2Idk_4oI8c6Nn^hCO(YZ(8>Xl-rt_y2KaWwpJ%y}P^H$?4pqNBJcsrPr^=hJ=KA zdHHm8b>VP7-M*dZ;BXd+yi#6XVQdWZ@VGcVJv}k;DIx+{SopNOyxiRU7#@$0jz%L8 z!JeL8=g+%)d;9eD^_@HCT3n3J&CNS}7)qsf`1=Qxm6eZ-jIvm)^z{2Mn3=x5K}$<3 zgTZifgI~E4`Sj_tl$2CDeOOP=U~Fs*3N>q7)hHYF*d0KkRGrsfNDE8pTi%F3^ADi4u^iL(IZrt^K-kD;DZKt*# zz2msA?CSW&8>yitE4Azl9jH!C^!8Kty;m||!zX*)#<*E=y}jNO_VFnx_HoAO{g#ta zF76Xa#221Ip&AD{B>(^?00#m1Bo8G2%1Z!TzH6{pd&W%O67@2yC;nxnzaX|vQ>+=C z47pD*$kA-2+7MVDTIx#)zL@brR9ntkM($`O*KAF8!JqCQX(uxx9V!a|2M-13gHL{A z3nlAlvA?FCSD-Ft?x2QIg|P7^oo2#60dvg?Fhv;*Cz$LC1%*xAY4thOaf}wsB2{lZF+1h)N&40G1fd!UBBH3+4Y~$Ll#$LQ!|%H4qPv6Ev`C#y1f`#6 zu><#bvxveJDlt5VqM-GmnGOTZYF@r%%wZ+v`!MAocLNicJ5p0bgNu-A=z(uU4iuK* z1=MB?k>5L&-i@&B4xAH2o7Y+rcJ1gv99f;dpa09ADxizYG+t>vq`XrwPuI^re8>ha zPeh79Pneg>gkgAAHJ zvj?t)U1KL$H+J5r7m&1CA=$-X4kYZSp) zM2K6KH0?V)5bhfX-|l0#K}ychEt_A~6UcaX*m9cn0V-xzp#qBc&-4+iRH6D04UkyE z%&dGS>kWJF0e#4?A48$#m_|Gbz)x z#aak36^4&mT%ESBrnPVItxjuKin?roj1cJJn5poW>i;cIZdaWiW`f;TIN@7xU1x9s ztHHY*+|oJ6^At-XQY~cxI;}6CFtKiIVn&vdMIi~sT*rmGKD~?)6I6T$x;m{JS!7=8 zBa~0`vEB=G-t6?ethK^ac74s`ΖXpz11goct0UA*^Gt@qN>o!qJ_IPdpPp9zf@ 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 pUkT&?-W>F^kf4x|&n1Pz^* diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta deleted file mode 100644 index 8b6a1e2..0000000 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_13.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 654f784f83792a84ba446dc663c186b2 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 2 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f42ef738efe4d5426a9c2b85f9487682c864d0 GIT binary patch literal 1857 zcma)7eM}Q)7(X2QPeu01Kp+2XKew1YB)VqqUCNBg$D(Dv%xm9`k1 zAyM%w^06hlFuxZ0V{Yz49WX>$7$d<2T*Ay2&9stTMqDm z+Y507QEv=*X=?=#&~o5lJR0n;_KO(G*ff|~WmFiwTHs{#RU9a)$~Rf7Dy$hcY-6TO z9iX5BHxOtv;C6XD=`+JT9yN-3RmF@EK`Q6Ih&m-)V)3- z40jsLDF|MQApCwm?q7$qoP$tiWMmKuk|0SrWXSoTN1y|855HPe5z?Upyp?0T0>gSx zQ72u_`UDMzK^&d*%oMb+Q7>JK0%8!f=Ej2ryGI%rGM& z5p;pE&q5cG2s+HQ(fIr*-0m5H@IrPaOvFS|XE-z&H*X4h0Z|Be*2h^vb|vr#tEF5( zYm}A)v;cH)X)sbjrplG1oJ=z*(4q@*~r=$doYrmPAL_XN(IT(bT%vx z8!gcPhaXNjC9*?K!P0!LM^iFd*2QwrIT*t_$=NB$pw$*|tetT|j4#aDgc`E7Y08YW zG&zYYC9ZgHQ~?tJt`Z&N1|A;P7}P^P1D4JLO16t&Ye54ch2qUp1~=^hX2vEs!@8!< z^MJ?kEFj*G%O@6iv4?>-8nQ3RluTh7ES)5#nJJBc#FjzTQXx@#h8I{aC>@3Rs0eHg z?Lu1@BQ+3;N@YaRR?)r&^Kz`sX9YGX1yEfG{vg~#SdKyFv#9l&4 zl!RTMK2yZ+1W?`dTbx-c#Dr^v*wd4~sfh^h)e>Ra5P))_GdNt}lp?}o3U0!K4tQV* zad3={_hZ`-B&vpi#Sl>h2=Yq3uf9K}i%#gVT&+FSyk7re?qGT9fOqSm_?=y8pw(r0 ze0+59>cjSvw?BDj>C5=`m18lj$&Qn??>G6A@ZbIzzP6?D-tgbS%+K%qt3LW>|8TH# z#T&0O9es1}=H#fZ3qE}P(i6?q>N4fvyBAAOjkdk_Sy0uS zQpPMvG@ImW)pB+Fks{;ur5(=akd*Hn3pke>M#K!s)Wus47%gESJLEAUiqDP2b53bCO-7wVQ zjz8M7>p}ILuN|$urr|R=ibwdP%3^+HjWrHGed;Y?5#Dla&~U(6-(ZVt`F?PyYQCIy zw(o4d&GjcgZpz%`)L!^~{^+7(=DrPEwj;N$J6FB%THLqrhqTbEFXa&=CQe*Y$cIhw z@G!@q%QETr+;7a1A&LcE_r{;z`Sa|T(Rq98jtt~>F8<|ooWVctv;5Tb57LpFvufBf ra3d=5yQn~2^v$fq9nnD~@s_x8)db7rj$G!F_~$cZ=j%>yDy#VqjDmX9 literal 0 HcmV?d00001 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png.meta similarity index 98% rename from UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta rename to UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png.meta index a3d5fb3..629d0b7 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/Dark/texture_02.png.meta +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Texture/TempPartment.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6475166d049bc39428d0d637d0b49615 +guid: 8f6427a3e83933e4fa1d7a5c57cb4221 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -34,7 +34,7 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 + filterMode: 0 aniso: 1 mipBias: 0 wrapU: 1 diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs similarity index 87% rename from UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs rename to UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs index 767cdf5..2f3bfea 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs @@ -7,9 +7,8 @@ // Its just for setup and is not used during gameplay namespace FPSMovmentController { - [CustomEditor(typeof(PlayerMovement))] - public class PlayerSetup : Editor + public class PlayerControllerEditor : Editor { private readonly string dialogTitle = "Player Movement Setup v1.1", dialogYes = "Yeah", dialogNo = "No thanks"; @@ -35,12 +34,12 @@ public override void OnInspectorGUI() if (EditorUtility.DisplayDialog( dialogTitle, - "Would you like me to create a \"Ground\" tag for you?", + $"Would you like me to create a \"{Constants.GroundTag}\" tag for you?", dialogYes, dialogNo )) { - CreateTag("Ground"); + PlayerSetup.AddGroundTag(); } pmvmt.SetupCharacter(); @@ -55,9 +54,20 @@ public override void OnInspectorGUI() } + } + + public static class PlayerSetup + { + [MenuItem("FPSMovmentController/Add Ground Tag")] + public static void AddGroundTag() + { + CreateTag(Constants.GroundTag); + } + + // Mashup of code from ctwheels & Leslie-Young by B0N3head // Dw about understanding this, it's just a tool for creating tags in editor for unity - public void CreateTag(string tagName) + public static void CreateTag(string tagName) { SerializedObject tagM = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]); SerializedProperty tagsP = tagM.FindProperty("tags"); diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs.meta similarity index 100% rename from UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerSetup.cs.meta rename to UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs.meta diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper.meta new file mode 100644 index 0000000..194e4c7 --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37ddbc8f9b2ba1f4cbc2dcc9eb569c74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs new file mode 100644 index 0000000..05d5cee --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs @@ -0,0 +1,7 @@ +namespace FPSMovmentController +{ + public static class Constants + { + public static readonly string GroundTag = "Ground"; + } +} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs.meta new file mode 100644 index 0000000..b3b435b --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9074d634b5e6c7749b29981e41d914fb \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index 22c8f03..f5bd43c 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -5,7 +5,7 @@ namespace FPSMovmentController { - [AddComponentMenu("Player Movement and Camera Controller")] + [AddComponentMenu("FPSMovmentController/Player")] public class PlayerMovement : MonoBehaviour { [Header("Camera Settings")] @@ -62,7 +62,7 @@ public class PlayerMovement : MonoBehaviour [Tooltip("Fall quicker")] [SerializeField] float extraGravity = 0.1f; [Tooltip("The tag that will be considered the ground")] - [SerializeField] string groundTag = "Ground"; + [SerializeField] string groundTag = Constants.GroundTag; //---------------------------------------------------- [Header("Input")] [SerializeField] UserInputProxy userInput; From 2c83805300fbd03bb22705c9d98b34c9a6817824 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Thu, 26 Dec 2024 22:58:07 +0100 Subject: [PATCH 4/8] beginning of refactoring --- .../Scripts/Helper/Counter.cs | 43 ++++++ .../Scripts/Helper/Counter.cs.meta | 2 + .../Scripts/PlayerMovement.cs | 132 ++++++++---------- 3 files changed, 104 insertions(+), 73 deletions(-) create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs create mode 100644 UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs.meta diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs new file mode 100644 index 0000000..9bed01f --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs @@ -0,0 +1,43 @@ +using System; +using UnityEngine; + +namespace FPSMovmentController +{ + public class Counter + { + private readonly Func checkForReset; + private readonly float time; + private float endTime; + public bool Ended => endTime < Time.time; + public bool Running => !Ended; + + public Counter(Func checkForReset, float time) + { + this.checkForReset = checkForReset; + this.time = time; + endTime = Time.time; + } + + public void Set() + { + endTime = Time.time + time; + } + + public void Update() + { + if (checkForReset()) + { + Stop(); + } + else if(Ended) + { + Set(); + } + } + + public void Stop() + { + endTime = Time.time; + } + } +} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs.meta b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs.meta new file mode 100644 index 0000000..6af844e --- /dev/null +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b6bd0007c3232c34fa62e2cb81eb3805 \ No newline at end of file diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index f5bd43c..2a23520 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -83,8 +83,9 @@ public class PlayerMovement : MonoBehaviour private GameObject cam; Vector3 moveInput = Vector3.zero; Vector2 _mouseAbsolute, _smoothMouse, targetDirection, targetCharacterDirection; - private float coyoteTimeCounter, jumpBufferCounter, startJumpTime, endJumpTime; - private bool wantingToJump = false, wantingToCrouch = false, wantingToSprint = false, jumpCooldownOver = true; + private float startJumpTime, endJumpTime; + private Counter coyoteTimeCounter, jumpBufferCounter, jumpCounter; + private bool wantingToJump = false, wantingToCrouch = false, wantingToSprint = false; private void Awake() { @@ -100,6 +101,11 @@ private void Awake() // Set target direction for the character body to its inital state. targetCharacterDirection = transform.localRotation.eulerAngles; userInput.OnToggleCursor += ToggleCursoreLock; + + + coyoteTimeCounter = new Counter(() => areWeGrounded, coyoteTime); + jumpBufferCounter = new Counter(() => wantingToJump, jumpBuffer); + jumpCounter = new Counter(() => false, jumpCooldown); } private void Update() @@ -119,49 +125,6 @@ private void Update() wantingToSprint = userInput.IsSprint; } - - public void ToggleCursoreLock() - { - lockCursor = !lockCursor; - } - - public void CameraUpdate() - { - // Allow the script to clamp based on a desired target value. - var targetOrientation = Quaternion.Euler(targetDirection); - var targetCharacterOrientation = Quaternion.Euler(targetCharacterDirection); - - // Get raw mouse input for a cleaner reading on more sensitive mice. - var mouseDelta = userInput.Look; - - // Scale input against the sensitivity setting and multiply that against the smoothing value. - mouseDelta = Vector2.Scale(mouseDelta, new Vector2(sensitivity.x * smoothing.x, sensitivity.y * smoothing.y)); - - // Interpolate mouse movement over time to apply smoothing delta. - _smoothMouse.x = Mathf.Lerp(_smoothMouse.x, mouseDelta.x, 1f / smoothing.x); - _smoothMouse.y = Mathf.Lerp(_smoothMouse.y, mouseDelta.y, 1f / smoothing.y); - - // Find the absolute mouse movement value from point zero. - _mouseAbsolute += _smoothMouse; - - // Clamp and apply the local x value first, so as not to be affected by world transforms. - if (clampInDegrees.x < 360) - { - _mouseAbsolute.x = Mathf.Clamp(_mouseAbsolute.x, -clampInDegrees.x * 0.5f, clampInDegrees.x * 0.5f); - } - - // Then clamp and apply the global y value. - if (clampInDegrees.y < 360) - { - _mouseAbsolute.y = Mathf.Clamp(_mouseAbsolute.y, -clampInDegrees.y * 0.5f, clampInDegrees.y * 0.5f); - } - - cam.transform.localRotation = Quaternion.AngleAxis(-_mouseAbsolute.y, targetOrientation * Vector3.right) * targetOrientation; - - var yRotation = Quaternion.AngleAxis(_mouseAbsolute.x, Vector3.up); - transform.localRotation = yRotation * targetCharacterOrientation; - } - private void FixedUpdate() { // Lock cursor handling @@ -187,43 +150,20 @@ private void FixedUpdate() // Crouching // Can be simplified to Crouch((wantingToCrouch && jumpCrouching)); though the bellow is more readable Crouch(wantingToCrouch && jumpCrouching); - - // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) - // This allows players to jump late. After they have left - if (areWeGrounded) - { - coyoteTimeCounter = coyoteTime; - } - else - { - coyoteTimeCounter -= Time.deltaTime; - } - - // Jump buffer timer (When the player leaves the ground, start counting down from the set value jumpBuffer) - // This will "buffer" the input and allow for early space presses to be valid and no longer ignored - if (wantingToJump) - { - jumpBufferCounter = jumpBuffer; - } - else - { - jumpBufferCounter -= Time.deltaTime; - } + UpdateTimers(); // If the coyote timer has not run out and our jump buffer has not run out and we our cool down (canJump) is now over - if (coyoteTimeCounter > 0f && jumpBufferCounter > 0f && jumpCooldownOver) + if ((coyoteTimeCounter.Running || areWeGrounded) && jumpBufferCounter.Running && jumpCounter.Ended && wantingToJump) { rb.linearVelocity = new Vector3(rb.linearVelocity.x, 0f, rb.linearVelocity.z); rb.AddForce(transform.up * jumpForce, ForceMode.Impulse); - jumpCooldownOver = false; areWeGrounded = false; - jumpBufferCounter = 0f; currentSpeed = jumpMoveSpeed; endJumpTime = Time.time + jumpTime; // Wait jumpCooldown (1f = 1 second) then run the JumpCoolDownCountdown() void - Invoke(nameof(JumpCoolDownCountdown), jumpCooldown); + jumpCounter.Set(); } else if (wantingToJump && !areWeGrounded && endJumpTime > Time.time) { @@ -241,9 +181,55 @@ private void FixedUpdate() rb.AddForce(new Vector3(0, -extraGravity, 0), ForceMode.Impulse); } - private void JumpCoolDownCountdown() + private void UpdateTimers() + { + // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) + // This allows players to jump late. After they have left + coyoteTimeCounter.Update(); + jumpBufferCounter.Update(); + } + + + public void ToggleCursoreLock() + { + lockCursor = !lockCursor; + } + + public void CameraUpdate() { - jumpCooldownOver = true; + // Allow the script to clamp based on a desired target value. + var targetOrientation = Quaternion.Euler(targetDirection); + var targetCharacterOrientation = Quaternion.Euler(targetCharacterDirection); + + // Get raw mouse input for a cleaner reading on more sensitive mice. + var mouseDelta = userInput.Look; + + // Scale input against the sensitivity setting and multiply that against the smoothing value. + mouseDelta = Vector2.Scale(mouseDelta, new Vector2(sensitivity.x * smoothing.x, sensitivity.y * smoothing.y)); + + // Interpolate mouse movement over time to apply smoothing delta. + _smoothMouse.x = Mathf.Lerp(_smoothMouse.x, mouseDelta.x, 1f / smoothing.x); + _smoothMouse.y = Mathf.Lerp(_smoothMouse.y, mouseDelta.y, 1f / smoothing.y); + + // Find the absolute mouse movement value from point zero. + _mouseAbsolute += _smoothMouse; + + // Clamp and apply the local x value first, so as not to be affected by world transforms. + if (clampInDegrees.x < 360) + { + _mouseAbsolute.x = Mathf.Clamp(_mouseAbsolute.x, -clampInDegrees.x * 0.5f, clampInDegrees.x * 0.5f); + } + + // Then clamp and apply the global y value. + if (clampInDegrees.y < 360) + { + _mouseAbsolute.y = Mathf.Clamp(_mouseAbsolute.y, -clampInDegrees.y * 0.5f, clampInDegrees.y * 0.5f); + } + + cam.transform.localRotation = Quaternion.AngleAxis(-_mouseAbsolute.y, targetOrientation * Vector3.right) * targetOrientation; + + var yRotation = Quaternion.AngleAxis(_mouseAbsolute.x, Vector3.up); + transform.localRotation = yRotation * targetCharacterOrientation; } // Crouch handling From 821f7de9577672eb3b858a86572b5cd08c2aa75a Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Fri, 27 Dec 2024 13:45:19 +0100 Subject: [PATCH 5/8] fix ground check --- .../Scripts/Helper/Counter.cs | 6 +++++- .../Scripts/PlayerMovement.cs | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs index 9bed01f..2d0834e 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs @@ -8,6 +8,8 @@ public class Counter private readonly Func checkForReset; private readonly float time; private float endTime; + private bool wasStoped = false; + public bool Ended => endTime < Time.time; public bool Running => !Ended; @@ -21,6 +23,7 @@ public Counter(Func checkForReset, float time) public void Set() { endTime = Time.time + time; + wasStoped = false; } public void Update() @@ -29,7 +32,7 @@ public void Update() { Stop(); } - else if(Ended) + else if(Ended && wasStoped) { Set(); } @@ -38,6 +41,7 @@ public void Update() public void Stop() { endTime = Time.time; + wasStoped = true; } } } diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index 2a23520..b853ead 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -104,7 +104,7 @@ private void Awake() coyoteTimeCounter = new Counter(() => areWeGrounded, coyoteTime); - jumpBufferCounter = new Counter(() => wantingToJump, jumpBuffer); + jumpBufferCounter = new Counter(() => !wantingToJump, jumpBuffer); jumpCounter = new Counter(() => false, jumpCooldown); } @@ -140,6 +140,10 @@ private void FixedUpdate() { HandleHitGround(); } + else + { + areWeGrounded = false; + } // Sprinting if (areWeGrounded && !areWeCrouching) @@ -181,6 +185,14 @@ private void FixedUpdate() rb.AddForce(new Vector3(0, -extraGravity, 0), ForceMode.Impulse); } + private void OnGUI() + { + GUILayout.BeginHorizontal(); + GUILayout.Box($"{nameof(coyoteTimeCounter)}:{(coyoteTimeCounter.Running ? "Running" : "Ended")}"); + GUILayout.Box($"{nameof(jumpBufferCounter)}:{(jumpBufferCounter.Running ? "Running" : "Ended")}"); + GUILayout.EndHorizontal(); + } + private void UpdateTimers() { // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) From ac83781eb151b99540527f68c62fd2d490d5dff2 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Sat, 28 Dec 2024 01:54:50 +0100 Subject: [PATCH 6/8] fix spelling mistakes --- .../Example/Scene/Demo.unity | 8 +-- .../Scripts/Editor/PlayerControllerEditor.cs | 4 +- .../Scripts/Helper/Constants.cs | 2 +- .../Scripts/Helper/Counter.cs | 2 +- .../Scripts/OldUserInput.cs | 2 +- .../Scripts/PlayerMovement.cs | 59 +++++++++---------- .../Scripts/UserInputProxy.cs | 2 +- 7 files changed, 38 insertions(+), 41 deletions(-) diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity index d5e9052..bb964fa 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity @@ -257,7 +257,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -3.93, y: -1.23, z: -8.15} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1171358351} @@ -614,8 +614,8 @@ Transform: m_GameObject: {fileID: 489136993} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.02, y: -3.39, z: -8.15} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: 0.101, y: -3.39, z: -8.15} + m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1171358351} @@ -723,7 +723,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -1.86, y: -2.36, z: -8.15} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1171358351} diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs index 2f3bfea..4978f0e 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs @@ -5,7 +5,7 @@ // This script, although readable was not created out to be super readable for beginners. // Its just for setup and is not used during gameplay -namespace FPSMovmentController +namespace FPSMovementController { [CustomEditor(typeof(PlayerMovement))] public class PlayerControllerEditor : Editor @@ -58,7 +58,7 @@ public override void OnInspectorGUI() public static class PlayerSetup { - [MenuItem("FPSMovmentController/Add Ground Tag")] + [MenuItem("FPSMovementController/Add Ground Tag")] public static void AddGroundTag() { CreateTag(Constants.GroundTag); diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs index 05d5cee..feac9e0 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs @@ -1,4 +1,4 @@ -namespace FPSMovmentController +namespace FPSMovementController { public static class Constants { diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs index 2d0834e..5d22704 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace FPSMovmentController +namespace FPSMovementController { public class Counter { diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs index 4d55540..273cd41 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs @@ -1,5 +1,5 @@ using UnityEngine; -namespace FPSMovmentController +namespace FPSMovementController { public class OldUserInput : UserInputProxy { diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index b853ead..bf81215 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -2,10 +2,10 @@ // By B0N3head // All yours, use this script however you see fit, feel free to give credit if you want -namespace FPSMovmentController +namespace FPSMovementController { - [AddComponentMenu("FPSMovmentController/Player")] + [AddComponentMenu("FPSMovementController/Player")] public class PlayerMovement : MonoBehaviour { [Header("Camera Settings")] @@ -84,12 +84,12 @@ public class PlayerMovement : MonoBehaviour Vector3 moveInput = Vector3.zero; Vector2 _mouseAbsolute, _smoothMouse, targetDirection, targetCharacterDirection; private float startJumpTime, endJumpTime; - private Counter coyoteTimeCounter, jumpBufferCounter, jumpCounter; + private Counter coyoteTimeCounter, jumpBufferCounter, jumpAllowCounter; private bool wantingToJump = false, wantingToCrouch = false, wantingToSprint = false; private void Awake() { - // Just set rb to the rigidbody of the gameobject containing this script + // Just set rb to the rigidbody of the GameObject containing this script rb = gameObject.GetComponent(); // Try find our camera amongst the child objects cam = gameObject.transform.Find(cameraName).gameObject; @@ -98,14 +98,15 @@ private void Awake() // Set target direction to the camera's initial orientation. targetDirection = transform.localRotation.eulerAngles; - // Set target direction for the character body to its inital state. + // Set target direction for the character body to its initial state. targetCharacterDirection = transform.localRotation.eulerAngles; - userInput.OnToggleCursor += ToggleCursoreLock; - + userInput.OnToggleCursor += ToggleCursorLock; + // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) + // This allows players to jump late. After they have left coyoteTimeCounter = new Counter(() => areWeGrounded, coyoteTime); jumpBufferCounter = new Counter(() => !wantingToJump, jumpBuffer); - jumpCounter = new Counter(() => false, jumpCooldown); + jumpAllowCounter = new Counter(() => false, jumpCooldown); } private void Update() @@ -157,7 +158,7 @@ private void FixedUpdate() UpdateTimers(); // If the coyote timer has not run out and our jump buffer has not run out and we our cool down (canJump) is now over - if ((coyoteTimeCounter.Running || areWeGrounded) && jumpBufferCounter.Running && jumpCounter.Ended && wantingToJump) + if ((coyoteTimeCounter.Running || areWeGrounded) && jumpBufferCounter.Running && jumpAllowCounter.Ended && wantingToJump) { rb.linearVelocity = new Vector3(rb.linearVelocity.x, 0f, rb.linearVelocity.z); rb.AddForce(transform.up * jumpForce, ForceMode.Impulse); @@ -166,8 +167,7 @@ private void FixedUpdate() currentSpeed = jumpMoveSpeed; endJumpTime = Time.time + jumpTime; - // Wait jumpCooldown (1f = 1 second) then run the JumpCoolDownCountdown() void - jumpCounter.Set(); + jumpAllowCounter.Set(); } else if (wantingToJump && !areWeGrounded && endJumpTime > Time.time) { @@ -185,24 +185,14 @@ private void FixedUpdate() rb.AddForce(new Vector3(0, -extraGravity, 0), ForceMode.Impulse); } - private void OnGUI() - { - GUILayout.BeginHorizontal(); - GUILayout.Box($"{nameof(coyoteTimeCounter)}:{(coyoteTimeCounter.Running ? "Running" : "Ended")}"); - GUILayout.Box($"{nameof(jumpBufferCounter)}:{(jumpBufferCounter.Running ? "Running" : "Ended")}"); - GUILayout.EndHorizontal(); - } - private void UpdateTimers() { - // Coyote timer (When the player leaves the ground, start counting down from the set value coyoteTime) - // This allows players to jump late. After they have left coyoteTimeCounter.Update(); jumpBufferCounter.Update(); } - public void ToggleCursoreLock() + public void ToggleCursorLock() { lockCursor = !lockCursor; } @@ -281,26 +271,33 @@ private void Crouch(bool crouch) } } - // Ground check - //****** make sure whatever you want to be the ground in your game matches the tag set in the script - private void OnCollisionEnter(Collision other) + /// + /// Unity method that is called when player Rigidbody collided with anything.
+ /// Current use is:
+ /// Ground check make sure whatever you want to be the ground in your game matches the tag set in the script
+ ///
+ /// Object with information about collision + private void OnCollisionEnter(Collision collisionObject) { - if (other.gameObject.CompareTag(groundTag)) + if (collisionObject.gameObject.CompareTag(groundTag)) { - HandleHitGround(); + HandleHitGround(); } } - // This is separated in its own void as this code needs to be run on two separate occasions, saves copy pasting code - // Just double checking if we are crouching and setting the speed accordingly - public void HandleHitGround() + /// + /// Reset state after player step on the ground + /// + private void HandleHitGround() { currentSpeed = areWeCrouching ? crouchMoveSpeed : walkMoveSpeed; areWeGrounded = true; } - // Dw about understanding this, it's just the code for setting up the player character + /// + /// Used to setup all components and initial setting + /// public void SetupCharacter() { gameObject.tag = "Player"; diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs index 99a1f89..5fc825d 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace FPSMovmentController +namespace FPSMovementController { public abstract class UserInputProxy : MonoBehaviour { From c0abdb51ad9d189733679f5b97cf981e660880bb Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Mon, 30 Dec 2024 00:37:04 +0100 Subject: [PATCH 7/8] update comments --- .../Example/Scene/Demo.unity | 6 ++--- .../Scripts/Editor/PlayerControllerEditor.cs | 4 +++ .../Scripts/Helper/Counter.cs | 21 ++++++++++++--- .../Scripts/OldUserInput.cs | 27 ++++++++++++------- .../Scripts/PlayerMovement.cs | 20 +++++++++----- .../Scripts/UserInputProxy.cs | 2 +- 6 files changed, 58 insertions(+), 22 deletions(-) diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity index bb964fa..de463c6 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity +++ b/UnityFPSMovementController/Assets/FPSMovementController/Example/Scene/Demo.unity @@ -256,7 +256,7 @@ Transform: m_GameObject: {fileID: 191589342} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.93, y: -1.23, z: -8.15} + m_LocalPosition: {x: -4.116, y: -0.864, z: -8.15} m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] @@ -614,7 +614,7 @@ Transform: m_GameObject: {fileID: 489136993} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.101, y: -3.39, z: -8.15} + m_LocalPosition: {x: 0.383, y: -3.39, z: -8.15} m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] @@ -722,7 +722,7 @@ Transform: m_GameObject: {fileID: 840570593} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.86, y: -2.36, z: -8.15} + m_LocalPosition: {x: -1.86, y: -2.261, z: -8.15} m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 0 m_Children: [] diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs index 4978f0e..618ed45 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Editor/PlayerControllerEditor.cs @@ -67,6 +67,10 @@ public static void AddGroundTag() // Mashup of code from ctwheels & Leslie-Young by B0N3head // Dw about understanding this, it's just a tool for creating tags in editor for unity + /// + /// Add tag, if missing, to the unity editor + /// + /// Name of the tag public static void CreateTag(string tagName) { SerializedObject tagM = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]); diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs index 5d22704..88392f5 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Counter.cs @@ -3,16 +3,29 @@ namespace FPSMovementController { + /// + /// Count down timed event + /// public class Counter { private readonly Func checkForReset; private readonly float time; private float endTime; private bool wasStoped = false; - + private bool wasStarted = false; + /// + /// Return true if count down ended + /// public bool Ended => endTime < Time.time; - public bool Running => !Ended; - + /// + /// Return true while count down is running + /// + public bool Running => !Ended && wasStarted; + /// + /// Create instance of a Counter + /// + /// function that would be used to check for reset during update + /// time to wait, before counter will end public Counter(Func checkForReset, float time) { this.checkForReset = checkForReset; @@ -24,6 +37,7 @@ public void Set() { endTime = Time.time + time; wasStoped = false; + wasStarted = true; } public void Update() @@ -42,6 +56,7 @@ public void Stop() { endTime = Time.time; wasStoped = true; + wasStarted = false; } } } diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs index 273cd41..797fcfd 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/OldUserInput.cs @@ -3,7 +3,6 @@ namespace FPSMovementController { public class OldUserInput : UserInputProxy { - //---------------------------------------------------- [Space] [Header("Keyboard Settings")] [Tooltip("The key used to jump")] @@ -14,29 +13,39 @@ public class OldUserInput : UserInputProxy [SerializeField] KeyCode crouch = KeyCode.Z; [Tooltip("The key used to toggle the cursor")] [SerializeField] KeyCode lockToggle = KeyCode.Q; - + /// + /// Move Direction, change each frame + /// public override Vector2 Move { get; protected set; } = Vector2.zero; - + /// + /// Look Direction, change each frame + /// public override Vector2 Look { get; protected set; } = Vector2.zero; - + /// + /// Return true if Jump button is pressed + /// public override bool Jump { get; protected set; } = false; - + /// + /// Return true if Crouch button is pressed + /// public override bool Crouch { get; protected set; } = false; - public override bool IsSprint { get; protected set; } = false; + /// + /// Return true if Sprint button is pressed + /// + public override bool Sprint { get; protected set; } = false; public void Update() { - // Move all input to Update(), then use given input on FixedUpdate() Look = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); // WSAD movement - Move = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); + Move = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); // Jump key Jump = Input.GetKey(jump); // Crouch key Crouch = Input.GetKey(crouch); // Sprint key - IsSprint = Input.GetKey(sprint); + Sprint = Input.GetKey(sprint); // Mouse lock toggle (KeyDown only fires once) if (Input.GetKeyDown(lockToggle)) diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index bf81215..89d8e51 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -4,7 +4,6 @@ namespace FPSMovementController { - [AddComponentMenu("FPSMovementController/Player")] public class PlayerMovement : MonoBehaviour { @@ -108,7 +107,9 @@ private void Awake() jumpBufferCounter = new Counter(() => !wantingToJump, jumpBuffer); jumpAllowCounter = new Counter(() => false, jumpCooldown); } - + /// + /// Unity update run each frame + /// private void Update() { // Update the camera pos @@ -123,9 +124,11 @@ private void Update() // Crouch key wantingToCrouch = userInput.Crouch; // Sprint key - wantingToSprint = userInput.IsSprint; + wantingToSprint = userInput.Sprint; } - + /// + /// Unity Physic run each physics frame + /// private void FixedUpdate() { // Lock cursor handling @@ -196,7 +199,9 @@ public void ToggleCursorLock() { lockCursor = !lockCursor; } - + /// + /// Update Camera rotation + /// public void CameraUpdate() { // Allow the script to clamp based on a desired target value. @@ -234,7 +239,10 @@ public void CameraUpdate() transform.localRotation = yRotation * targetCharacterOrientation; } - // Crouch handling + /// + /// Handle Crouch input + /// + /// set to true if crouching private void Crouch(bool crouch) { areWeCrouching = crouch; diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs index 5fc825d..4276a2c 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/UserInputProxy.cs @@ -10,7 +10,7 @@ public abstract class UserInputProxy : MonoBehaviour public abstract Vector2 Look { get; protected set; } public abstract bool Jump { get; protected set; } public abstract bool Crouch { get; protected set; } - public abstract bool IsSprint { get; protected set; } + public abstract bool Sprint { get; protected set; } protected void RaiseOnToggleCursor() { From c120cf801873efcf6d14f2209f9aae1a9dd23b52 Mon Sep 17 00:00:00 2001 From: "aliaksei.kalosha" Date: Tue, 31 Dec 2024 01:46:29 +0100 Subject: [PATCH 8/8] Update readme --- README.md | 13 ++++++++++--- .../Scripts/Helper/Constants.cs | 2 ++ .../Scripts/PlayerMovement.cs | 13 ++++++++++--- readmeAssets/1.PNG | Bin 31957 -> 10235 bytes 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e1a7c69..92f964d 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,18 @@ These are all configurable from the editor. **(don't require any coding)**
-## How to setup the character +# How to setup the character -1. Download and add the files to your assets folder +## Using unity package - +1. Export unity package, from release. +2. User Prefab or setup as before. + +## Using manual approach + +1. Download and add the folder to your assets folder + + 2. Add a capsule to your scene diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs index feac9e0..97e4024 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/Helper/Constants.cs @@ -3,5 +3,7 @@ public static class Constants { public static readonly string GroundTag = "Ground"; + + public static readonly string PlayerTag = "Player"; } } diff --git a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs index 89d8e51..89d2179 100644 --- a/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs +++ b/UnityFPSMovementController/Assets/FPSMovementController/Scripts/PlayerMovement.cs @@ -289,7 +289,7 @@ private void OnCollisionEnter(Collision collisionObject) { if (collisionObject.gameObject.CompareTag(groundTag)) { - HandleHitGround(); + HandleHitGround(); } } @@ -308,7 +308,7 @@ private void HandleHitGround() /// public void SetupCharacter() { - gameObject.tag = "Player"; + gameObject.tag = Constants.PlayerTag; if (!gameObject.GetComponent()) { Rigidbody rb = gameObject.AddComponent(typeof(Rigidbody)) as Rigidbody; @@ -318,7 +318,14 @@ public void SetupCharacter() { Debug.Log("Rigidbody already exists"); } - + if (userInput == null) + { + if ((userInput = gameObject.GetComponentInChildren()) == null) + { + userInput = gameObject.AddComponent(); + Debug.LogWarning($"Add Old User Input to player, I using new one you will need to add a {typeof(UserInputProxy)} implementation and set it as {nameof(userInput)}."); + } + } if (!gameObject.transform.Find("Camera")) { Vector3 old = transform.position; diff --git a/readmeAssets/1.PNG b/readmeAssets/1.PNG index 049e8b1c84fbc1b06872bb54cd2e50c3bcee774e..85c8ddb04db12305e4a75498d48b14037b417d35 100644 GIT binary patch literal 10235 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 literal 31957 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