commit 70a791060f53fd47de55f4d0622cfcca128b54ee Author: sippy-thinks Date: Sun May 26 02:10:45 2024 +0800 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..58cbc82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +# 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 +*.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/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ddb6ff8 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..da60e25 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ad0bb36 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,55 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.gitmodules": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "ProjectSettings/": true, + "temp/": true, + "Temp/": true + }, + "dotnet.defaultSolution": "I3E+STLD ASG2.sln" +} \ No newline at end of file diff --git a/Assets/Readme.asset b/Assets/Readme.asset new file mode 100644 index 0000000..77c2f83 --- /dev/null +++ b/Assets/Readme.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fcf7219bab7fe46a1ad266029b2fee19, type: 3} + m_Name: Readme + m_EditorClassIdentifier: + icon: {fileID: 2800000, guid: 727a75301c3d24613a3ebcec4a24c2c8, type: 3} + title: URP Empty Template + sections: + - heading: Welcome to the Universal Render Pipeline + text: This template includes the settings and assets you need to start creating with the Universal Render Pipeline. + linkText: + url: + - heading: URP Documentation + text: + linkText: Read more about URP + url: https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest + - heading: Forums + text: + linkText: Get answers and support + url: https://forum.unity.com/forums/universal-render-pipeline.383/ + - heading: Report bugs + text: + linkText: Submit a report + url: https://unity3d.com/unity/qa/bug-reporting + loadedLayout: 1 diff --git a/Assets/Readme.asset.meta b/Assets/Readme.asset.meta new file mode 100644 index 0000000..ab3ad45 --- /dev/null +++ b/Assets/Readme.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8105016687592461f977c054a80ce2f2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..b1e8c32 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7a6b03f2f2cdd648a42bb583a007588 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..3d584cb --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,1059 @@ +%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: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 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: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 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 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + 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 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + 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: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + 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!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 1 +--- !u!1 &694969085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 694969089} + - component: {fileID: 694969088} + - component: {fileID: 694969087} + - component: {fileID: 694969086} + - component: {fileID: 694969090} + m_Layer: 0 + m_Name: Cube + m_TagString: Cube + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &694969086 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 694969085} + 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.8765488, y: 1.232492, z: 2.0072098} + m_Center: {x: -0.055339813, y: 0.116245985, z: 0.049755096} +--- !u!23 &694969087 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 694969085} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &694969088 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 694969085} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &694969089 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 694969085} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -65.98, y: 1, z: 38.269173} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &694969090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 694969085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4cc047a5bbfa0e143bdfdac02e40a186, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &796310887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 796310891} + - component: {fileID: 796310890} + - component: {fileID: 796310889} + - component: {fileID: 796310888} + - component: {fileID: 796310892} + m_Layer: 0 + m_Name: Sphere + m_TagString: Sphere + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!135 &796310888 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796310887} + 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_Radius: 0.6396408 + m_Center: {x: 0, y: 0, z: -0.13964081} +--- !u!23 &796310889 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796310887} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &796310890 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796310887} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &796310891 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796310887} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -59.81, y: 0.77, z: 38.269173} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &796310892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796310887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6072805d0a44d4049b7bf251fc3b4442, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &875617672 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 453084650579209855, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + m_PrefabInstance: {fileID: 1440914581} + m_PrefabAsset: {fileID: 0} +--- !u!54 &875617679 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 875617672} + serializedVersion: 4 + m_Mass: 1 + 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: 0 + m_ImplicitTensor: 0 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 126 + m_CollisionDetection: 0 +--- !u!1 &1047067840 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + m_PrefabInstance: {fileID: 1440914581} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1047067842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1047067840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 166f97572c60b144989076c2869c53ce, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1440914581 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2862278905927072855, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 2862278905927072855, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 5126527961139664760, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 5126527961139664760, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.x + value: -40.244793 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.y + value: -8 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalPosition.z + value: 46.67087 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6556307555316582679, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_Name + value: NestedParent_Unpack + objectReference: {fileID: 0} + - target: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + propertyPath: m_TagString + value: Player + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7094977340588366727, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1047067842} + - targetCorrespondingSourceObject: {fileID: 453084650579209855, guid: 035bf1ba97d19214580cfe6f5a29fdc3, + type: 3} + insertIndex: -1 + addedObject: {fileID: 875617679} + m_SourcePrefab: {fileID: 100100000, guid: 035bf1ba97d19214580cfe6f5a29fdc3, type: 3} +--- !u!43 &1701092571 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-2052 + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 6 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 4 + localAABB: + m_Center: {x: -8.468117, y: 0.0001, z: 12.171261} + m_Extent: {x: 8.468117, y: 0, z: 12.171261} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 4 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 192 + _typelessdata: 687d87c117b7d138000080b5000000000000803f000000000000803f0000000000000000000080bf687d87c1000080b5687d87c117b7d1387cbdc241000000000000803f000000000000803f0000000000000000000080bf687d87c17cbdc2410000000017b7d138000080b5000000000000803f000000000000803f0000000000000000000080bf00000000000080b50000000017b7d1387cbdc241000000000000803f000000000000803f0000000000000000000080bf000000007cbdc241 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: -8.468117, y: 0.0001, z: 12.171261} + m_Extent: {x: 8.468117, y: 0, z: 12.171261} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &2083752669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2083752675} + - component: {fileID: 2083752674} + - component: {fileID: 2083752673} + - component: {fileID: 2083752672} + - component: {fileID: 2083752671} + - component: {fileID: 2083752670} + m_Layer: 0 + m_Name: Sprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &2083752670 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + 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: 1701092571} +--- !u!33 &2083752671 +MeshFilter: + m_ObjectHideFlags: 10 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + m_Mesh: {fileID: 1701092571} +--- !u!23 &2083752672 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + 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!114 &2083752673 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Shape: + rid: 1492431463608221696 + m_Size: {x: -16.936234, y: 0, z: 24.34252} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_PivotLocation: 1 + m_PivotPosition: {x: 0, y: 0, z: 0} + m_UnmodifiedMeshVersion: 2891 + m_ShapeBox: + m_Center: {x: -8.468117, y: 0.0001, z: 12.171261} + m_Extent: {x: 12.171261, y: 0, z: 8.468117} + references: + version: 2 + RefIds: + - rid: 1492431463608221696 + type: {class: Sprite, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder} + data: +--- !u!114 &2083752674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 2 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: 0 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 00000000 + - m_Vertices: 01000000 + - m_Vertices: 02000000 + - m_Vertices: 03000000 + m_SharedTextures: [] + m_Positions: + - {x: -16.936234, y: 0.0001, z: -0.0000009536743} + - {x: -16.936234, y: 0.0001, z: 24.342522} + - {x: 0, y: 0.0001, z: -0.0000009536743} + - {x: 0, y: 0.0001, z: 24.342522} + m_Textures0: + - {x: -16.936234, y: -0.0000009536743} + - {x: -16.936234, y: 24.342522} + - {x: 0, y: -0.0000009536743} + - {x: 0, y: 24.342522} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 1701092571} + m_VersionIndex: 2891 + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!4 &2083752675 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083752669} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 10.76, y: 0, z: -11.21} + m_LocalScale: {x: 7.364, y: 7.364, z: 7.364} + 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: 410087041} + - {fileID: 832575519} + - {fileID: 2083752675} + - {fileID: 694969089} + - {fileID: 796310891} + - {fileID: 1440914581} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings.meta b/Assets/Settings.meta new file mode 100644 index 0000000..39b94dd --- /dev/null +++ b/Assets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709f11a7f3c4041caa4ef136ea32d874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/SampleSceneProfile.asset b/Assets/Settings/SampleSceneProfile.asset new file mode 100644 index 0000000..37e401d --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset @@ -0,0 +1,123 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7893295128165547882 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + threshold: + m_OverrideState: 1 + m_Value: 1 + min: 0 + intensity: + m_OverrideState: 1 + m_Value: 1 + min: 0 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + min: 0 + max: 1 + clamp: + m_OverrideState: 0 + m_Value: 65472 + min: 0 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hdr: 0 + showAlpha: 0 + showEyeDropper: 1 + highQualityFiltering: + m_OverrideState: 0 + m_Value: 0 + skipIterations: + m_OverrideState: 0 + m_Value: 1 + min: 0 + max: 16 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 + min: 0 +--- !u!114 &-7011558710299706105 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + color: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + hdr: 0 + showAlpha: 0 + showEyeDropper: 1 + center: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.25 + min: 0 + max: 1 + smoothness: + m_OverrideState: 1 + m_Value: 0.4 + min: 0.01 + max: 1 + rounded: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: SampleSceneProfile + m_EditorClassIdentifier: + components: + - {fileID: 849379129802519247} + - {fileID: -7893295128165547882} + - {fileID: -7011558710299706105} +--- !u!114 &849379129802519247 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + mode: + m_OverrideState: 1 + m_Value: 1 diff --git a/Assets/Settings/SampleSceneProfile.asset.meta b/Assets/Settings/SampleSceneProfile.asset.meta new file mode 100644 index 0000000..f8cce64 --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6560a915ef98420e9faacc1c7438823 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-Balanced-Renderer.asset b/Assets/Settings/URP-Balanced-Renderer.asset new file mode 100644 index 0000000..20bd4d4 --- /dev/null +++ b/Assets/Settings/URP-Balanced-Renderer.asset @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1878332245247344467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: SSAO + m_EditorClassIdentifier: + m_Active: 1 + m_Shader: {fileID: 0} + m_Settings: + Downsample: 1 + AfterOpaque: 0 + Source: 0 + NormalSamples: 0 + Intensity: 0.5 + DirectLightingStrength: 0.25 + Radius: 0.25 + SampleCount: 4 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-Balanced-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: + - {fileID: -1878332245247344467} + m_RendererFeatureMap: adc0de57c6d2eee5 + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 0} + coreBlitColorAndDepthPS: {fileID: 0} + cameraMotionVector: {fileID: 0} + objectMotionVector: {fileID: 0} + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/Assets/Settings/URP-Balanced-Renderer.asset.meta b/Assets/Settings/URP-Balanced-Renderer.asset.meta new file mode 100644 index 0000000..8fa7f17 --- /dev/null +++ b/Assets/Settings/URP-Balanced-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e634585d5c4544dd297acaee93dc2beb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-Balanced.asset b/Assets/Settings/URP-Balanced.asset new file mode 100644 index 0000000..65bbfc8 --- /dev/null +++ b/Assets/Settings/URP-Balanced.asset @@ -0,0 +1,114 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-Balanced + m_EditorClassIdentifier: + k_AssetVersion: 11 + k_AssetPreviousVersion: 11 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: e634585d5c4544dd297acaee93dc2beb, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 2 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 512 + m_AdditionalLightsCookieFormat: 1 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_EnableRenderGraph: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_PrefilteringModeMainLightShadows: 1 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 1 + m_PrefilterXRKeywords: 0 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 0 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 0 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 0 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 0 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 0 + m_PrefilterDBufferMRT1: 0 + m_PrefilterDBufferMRT2: 0 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 0 + m_PrefilterNativeRenderPass: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 diff --git a/Assets/Settings/URP-Balanced.asset.meta b/Assets/Settings/URP-Balanced.asset.meta new file mode 100644 index 0000000..f524db0 --- /dev/null +++ b/Assets/Settings/URP-Balanced.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1260c1148f6143b28bae5ace5e9c5d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-HighFidelity-Renderer.asset b/Assets/Settings/URP-HighFidelity-Renderer.asset new file mode 100644 index 0000000..00d7cd9 --- /dev/null +++ b/Assets/Settings/URP-HighFidelity-Renderer.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1878332245247344467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: SSAO + m_EditorClassIdentifier: + m_Active: 1 + m_Settings: + AOMethod: 1 + Downsample: 0 + AfterOpaque: 0 + Source: 1 + NormalSamples: 1 + Intensity: 0.5 + DirectLightingStrength: 0.25 + Radius: 0.25 + Samples: 0 + BlurQuality: 0 + Falloff: 100 + SampleCount: -1 + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-HighFidelity-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: + - {fileID: -1878332245247344467} + m_RendererFeatureMap: adc0de57c6d2eee5 + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 1 diff --git a/Assets/Settings/URP-HighFidelity-Renderer.asset.meta b/Assets/Settings/URP-HighFidelity-Renderer.asset.meta new file mode 100644 index 0000000..bcdff02 --- /dev/null +++ b/Assets/Settings/URP-HighFidelity-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c40be3174f62c4acf8c1216858c64956 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-HighFidelity.asset b/Assets/Settings/URP-HighFidelity.asset new file mode 100644 index 0000000..d526597 --- /dev/null +++ b/Assets/Settings/URP-HighFidelity.asset @@ -0,0 +1,114 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-HighFidelity + m_EditorClassIdentifier: + k_AssetVersion: 11 + k_AssetPreviousVersion: 11 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: c40be3174f62c4acf8c1216858c64956, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 4 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 4096 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 4096 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ShadowDistance: 150 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 4096 + m_AdditionalLightsCookieFormat: 4 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_EnableRenderGraph: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_PrefilteringModeMainLightShadows: 1 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 1 + m_PrefilterXRKeywords: 0 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 0 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 0 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 0 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 0 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 0 + m_PrefilterDBufferMRT1: 0 + m_PrefilterDBufferMRT2: 0 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 0 + m_PrefilterNativeRenderPass: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 1 diff --git a/Assets/Settings/URP-HighFidelity.asset.meta b/Assets/Settings/URP-HighFidelity.asset.meta new file mode 100644 index 0000000..7416e17 --- /dev/null +++ b/Assets/Settings/URP-HighFidelity.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b7fd9122c28c4d15b667c7040e3b3fd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-Performant-Renderer.asset b/Assets/Settings/URP-Performant-Renderer.asset new file mode 100644 index 0000000..56c53f0 --- /dev/null +++ b/Assets/Settings/URP-Performant-Renderer.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: URP-Performant-Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + shaders: + blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + screenSpaceShadowPS: {fileID: 0} + samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} + coreBlitPS: {fileID: 0} + coreBlitColorAndDepthPS: {fileID: 0} + cameraMotionVector: {fileID: 0} + objectMotionVector: {fileID: 0} + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/Assets/Settings/URP-Performant-Renderer.asset.meta b/Assets/Settings/URP-Performant-Renderer.asset.meta new file mode 100644 index 0000000..912ff60 --- /dev/null +++ b/Assets/Settings/URP-Performant-Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 707360a9c581a4bd7aa53bfeb1429f71 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/URP-Performant.asset b/Assets/Settings/URP-Performant.asset new file mode 100644 index 0000000..8650b69 --- /dev/null +++ b/Assets/Settings/URP-Performant.asset @@ -0,0 +1,114 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: URP-Performant + m_EditorClassIdentifier: + k_AssetVersion: 11 + k_AssetPreviousVersion: 11 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 707360a9c581a4bd7aa53bfeb1429f71, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 0 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 0 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 0 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_EnableRenderGraph: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 16 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_PrefilteringModeMainLightShadows: 1 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 1 + m_PrefilterXRKeywords: 0 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 0 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 0 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 0 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 0 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 0 + m_PrefilterDBufferMRT1: 0 + m_PrefilterDBufferMRT2: 0 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 0 + m_PrefilterNativeRenderPass: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 diff --git a/Assets/Settings/URP-Performant.asset.meta b/Assets/Settings/URP-Performant.asset.meta new file mode 100644 index 0000000..264c9c5 --- /dev/null +++ b/Assets/Settings/URP-Performant.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0e2fc18fe036412f8223b3b3d9ad574 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets.meta b/Assets/Starter Assets.meta new file mode 100644 index 0000000..bd4437d --- /dev/null +++ b/Assets/Starter Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a908cce6aa3d8f74e954ad889e088948 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor.meta b/Assets/Starter Assets/Editor.meta new file mode 100644 index 0000000..9707912 --- /dev/null +++ b/Assets/Starter Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a12a4d2ef7f03c49b93b5e1dc150ae3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs new file mode 100644 index 0000000..7741ddf --- /dev/null +++ b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs @@ -0,0 +1,154 @@ +using System; +using System.Linq; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; +using Cinemachine; + +namespace StarterAssets +{ + // This class needs to be a scriptable object to support dynamic determination of StarterAssets install path + public partial class StarterAssetsDeployMenu : ScriptableObject + { + public const string MenuRoot = "Tools/Starter Assets"; + + // prefab names + private const string MainCameraPrefabName = "MainCamera"; + private const string PlayerCapsulePrefabName = "PlayerCapsule"; + + // names in hierarchy + private const string CinemachineVirtualCameraName = "PlayerFollowCamera"; + + // tags + private const string PlayerTag = "Player"; + private const string MainCameraTag = "MainCamera"; + private const string CinemachineTargetTag = "CinemachineTarget"; + + private static GameObject _cinemachineVirtualCamera; + + private static void CheckCameras(Transform targetParent, string prefabFolder) + { + CheckMainCamera(prefabFolder); + + GameObject vcam = GameObject.Find(CinemachineVirtualCameraName); + + if (!vcam) + { + if (TryLocatePrefab(CinemachineVirtualCameraName, new string[]{prefabFolder}, new[] { typeof(CinemachineVirtualCamera) }, out GameObject vcamPrefab, out string _)) + { + HandleInstantiatingPrefab(vcamPrefab, out vcam); + _cinemachineVirtualCamera = vcam; + } + else + { + Debug.LogError("Couldn't find Cinemachine Virtual Camera prefab"); + } + } + else + { + _cinemachineVirtualCamera = vcam; + } + + GameObject[] targets = GameObject.FindGameObjectsWithTag(CinemachineTargetTag); + GameObject target = targets.FirstOrDefault(t => t.transform.IsChildOf(targetParent)); + if (target == null) + { + target = new GameObject("PlayerCameraRoot"); + target.transform.SetParent(targetParent); + target.transform.localPosition = new Vector3(0f, 1.375f, 0f); + target.tag = CinemachineTargetTag; + Undo.RegisterCreatedObjectUndo(target, "Created new cinemachine target"); + } + + CheckVirtualCameraFollowReference(target, _cinemachineVirtualCamera); + } + + private static void CheckMainCamera(string inFolder) + { + GameObject[] mainCameras = GameObject.FindGameObjectsWithTag(MainCameraTag); + + if (mainCameras.Length < 1) + { + // if there are no MainCameras, add one + if (TryLocatePrefab(MainCameraPrefabName, new string[]{inFolder}, new[] { typeof(CinemachineBrain), typeof(Camera) }, out GameObject camera, out string _)) + { + HandleInstantiatingPrefab(camera, out _); + } + else + { + Debug.LogError("Couldn't find Starter Assets Main Camera prefab"); + } + } + else + { + // make sure the found camera has a cinemachine brain (we only need 1) + if (!mainCameras[0].TryGetComponent(out CinemachineBrain cinemachineBrain)) + mainCameras[0].AddComponent(); + } + } + + private static void CheckVirtualCameraFollowReference(GameObject target, + GameObject cinemachineVirtualCamera) + { + var serializedObject = + new SerializedObject(cinemachineVirtualCamera.GetComponent()); + var serializedProperty = serializedObject.FindProperty("m_Follow"); + serializedProperty.objectReferenceValue = target.transform; + serializedObject.ApplyModifiedProperties(); + } + + private static bool TryLocatePrefab(string name, string[] inFolders, System.Type[] requiredComponentTypes, out GameObject prefab, out string path) + { + // Locate the player armature + string[] allPrefabs = AssetDatabase.FindAssets("t:Prefab", inFolders); + for (int i = 0; i < allPrefabs.Length; ++i) + { + string assetPath = AssetDatabase.GUIDToAssetPath(allPrefabs[i]); + + if (assetPath.Contains("/com.unity.starter-assets/")) + { + Object loadedObj = AssetDatabase.LoadMainAssetAtPath(assetPath); + + if (PrefabUtility.GetPrefabAssetType(loadedObj) != PrefabAssetType.NotAPrefab && + PrefabUtility.GetPrefabAssetType(loadedObj) != PrefabAssetType.MissingAsset) + { + GameObject loadedGo = loadedObj as GameObject; + bool hasRequiredComponents = true; + foreach (var componentType in requiredComponentTypes) + { + if (!loadedGo.TryGetComponent(componentType, out _)) + { + hasRequiredComponents = false; + break; + } + } + + if (hasRequiredComponents) + { + if (loadedGo.name == name) + { + prefab = loadedGo; + path = assetPath; + return true; + } + } + } + } + } + + prefab = null; + path = null; + return false; + } + + private static void HandleInstantiatingPrefab(GameObject prefab, out GameObject prefabInstance) + { + prefabInstance = (GameObject)PrefabUtility.InstantiatePrefab(prefab); + Undo.RegisterCreatedObjectUndo(prefabInstance, "Instantiate Starter Asset Prefab"); + + prefabInstance.transform.localPosition = Vector3.zero; + prefabInstance.transform.localEulerAngles = Vector3.zero; + prefabInstance.transform.localScale = Vector3.one; + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta new file mode 100644 index 0000000..8b5049f --- /dev/null +++ b/Assets/Starter Assets/Editor/StarterAssetsDeployMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e75357183ea302c4d998136de2cc9669 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs new file mode 100644 index 0000000..6a11723 --- /dev/null +++ b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs @@ -0,0 +1,102 @@ +using System.IO; +using System.Linq; +using System.Text; +using UnityEditor; +using UnityEngine; + +namespace StarterAssets +{ + public partial class StarterAssetsDeployMenu : ScriptableObject + { + // prefab paths + private const string PlayerArmaturePrefabName = "PlayerArmature"; + + /// + /// Check the Armature, main camera, cinemachine virtual camera, camera target and references + /// + [MenuItem(MenuRoot + "/Reset Third Person Controller Armature", false)] + static void ResetThirdPersonControllerArmature() + { + var thirdPersonControllers = FindObjectsOfType(); + var player = thirdPersonControllers.FirstOrDefault(controller => + controller.GetComponent() && controller.CompareTag(PlayerTag)); + + GameObject playerGameObject = null; + + // player + if (player == null) + { + if (TryLocatePrefab(PlayerArmaturePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject prefab, out string _)) + { + HandleInstantiatingPrefab(prefab, out playerGameObject); + } + else + { + Debug.LogError("Couldn't find player armature prefab"); + } + } + else + { + playerGameObject = player.gameObject; + } + + if (playerGameObject != null) + { + // cameras + CheckCameras(playerGameObject.transform, GetThirdPersonPrefabPath()); + } + } + + [MenuItem(MenuRoot + "/Reset Third Person Controller Capsule", false)] + static void ResetThirdPersonControllerCapsule() + { + var thirdPersonControllers = FindObjectsOfType(); + var player = thirdPersonControllers.FirstOrDefault(controller => + !controller.GetComponent() && controller.CompareTag(PlayerTag)); + + GameObject playerGameObject = null; + + // player + if (player == null) + { + if (TryLocatePrefab(PlayerCapsulePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject prefab, out string _)) + { + HandleInstantiatingPrefab(prefab, out playerGameObject); + } + else + { + Debug.LogError("Couldn't find player capsule prefab"); + } + } + else + { + playerGameObject = player.gameObject; + } + + if (playerGameObject != null) + { + // cameras + CheckCameras(playerGameObject.transform, GetThirdPersonPrefabPath()); + } + } + + static string GetThirdPersonPrefabPath() + { + if (TryLocatePrefab(PlayerArmaturePrefabName, null, new[] { typeof(ThirdPersonController), typeof(StarterAssetsInputs) }, out GameObject _, out string prefabPath)) + { + var pathString = new StringBuilder(); + var currentDirectory = new FileInfo(prefabPath).Directory; + while (currentDirectory.Name != "Packages") + { + pathString.Insert(0, $"/{currentDirectory.Name}"); + currentDirectory = currentDirectory.Parent; + } + + pathString.Insert(0, currentDirectory.Name); + return pathString.ToString(); + } + + return null; + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta new file mode 100644 index 0000000..b36f050 --- /dev/null +++ b/Assets/Starter Assets/Editor/ThirdPersonStarterAssetsDeployMenu.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b70f45aa92a641feb261c5d55ce46edf +timeCreated: 1621532436 \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/URPWizard.meta b/Assets/Starter Assets/Editor/URPWizard.meta new file mode 100644 index 0000000..d3cddc0 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a936c3509519d6b48bb3a44692f8695a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef new file mode 100644 index 0000000..b796229 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef @@ -0,0 +1,24 @@ +{ + "name": "URPWizard", + "rootNamespace": "", + "references": [ + "Unity.RenderPipelines.Universal.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.render-pipelines.universal", + "expression": "", + "define": "USE_URP" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta new file mode 100644 index 0000000..b24a448 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18828b1d1020dde47bec693eef18a5b9 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs new file mode 100644 index 0000000..b40c906 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs @@ -0,0 +1,71 @@ +using System.Linq; +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEngine; +using UnityEngine.Rendering; +#if USE_URP +using UnityEngine.Rendering.Universal; +#endif + +public class URPWizard : EditorWindow +{ + [InitializeOnLoadMethod] + static void OnInitialize() + { + URPCheck(); + } + + static void URPCheck() + { + if (GraphicsSettings.currentRenderPipeline != null) + return; + + var request = Client.List(); + while (!request.IsCompleted) { } + + if (request.Status != StatusCode.Success) + return; + + if (request.Result.All(info => info.name != "com.unity.render-pipelines.universal")) + { + var addRequest = Client.Add("com.unity.render-pipelines.universal"); + + while (!addRequest.IsCompleted) { } + + Client.Resolve(); + } + else + { + FindAndAssignPipeline(); + } + } + +#if USE_URP + static void FindAndAssignPipeline() + { + var existingPipelines = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset"); + + if (existingPipelines.Length == 0) + { + return; + } + + var pipeline = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(existingPipelines[0])); + GraphicsSettings.defaultRenderPipeline = pipeline; + } + + class PipelineAssetProcessor : AssetPostprocessor + { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload) + { + //if we have no pipeline set, we try to find one as one may have been imported + if (GraphicsSettings.currentRenderPipeline != null) + return; + + FindAndAssignPipeline(); + } + } +#else + static void FindAndAssignPipeline(){} +#endif +} diff --git a/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta new file mode 100644 index 0000000..0175e39 --- /dev/null +++ b/Assets/Starter Assets/Editor/URPWizard/URPWizard.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c1ba780f87ca5a4ea89d3330464ecf5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef new file mode 100644 index 0000000..71616fe --- /dev/null +++ b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef @@ -0,0 +1,19 @@ +{ + "name": "Unity.StarterAssets.Editor", + "rootNamespace": "", + "references": [ + "Unity.StarterAssets", + "Cinemachine" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta new file mode 100644 index 0000000..294ccff --- /dev/null +++ b/Assets/Starter Assets/Editor/Unity.StartAssets.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 65197035c7dd3894d8e8f7a6513ffc01 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime.meta b/Assets/Starter Assets/Runtime.meta new file mode 100644 index 0000000..b8663c0 --- /dev/null +++ b/Assets/Starter Assets/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86764a910a1ef6042bd6232da5be8ea8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Common.meta b/Assets/Starter Assets/Runtime/Common.meta new file mode 100644 index 0000000..82705ee --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3830e597529e5814b8e9ee9815399c33 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs new file mode 100644 index 0000000..7f1b3b1 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +public class BasicRigidBodyPush : MonoBehaviour +{ + public LayerMask pushLayers; + public bool canPush; + [Range(0.5f, 5f)] public float strength = 1.1f; + + private void OnControllerColliderHit(ControllerColliderHit hit) + { + if (canPush) PushRigidBodies(hit); + } + + private void PushRigidBodies(ControllerColliderHit hit) + { + // https://docs.unity3d.com/ScriptReference/CharacterController.OnControllerColliderHit.html + + // make sure we hit a non kinematic rigidbody + Rigidbody body = hit.collider.attachedRigidbody; + if (body == null || body.isKinematic) return; + + // make sure we only push desired layer(s) + var bodyLayerMask = 1 << body.gameObject.layer; + if ((bodyLayerMask & pushLayers.value) == 0) return; + + // We dont want to push objects below us + if (hit.moveDirection.y < -0.3f) return; + + // Calculate push direction from move direction, horizontal motion only + Vector3 pushDir = new Vector3(hit.moveDirection.x, 0.0f, hit.moveDirection.z); + + // Apply the push and take strength into account + body.AddForce(pushDir * strength, ForceMode.Impulse); + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta new file mode 100644 index 0000000..d0dc3af --- /dev/null +++ b/Assets/Starter Assets/Runtime/Common/BasicRigidBodyPush.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 909d917d73a63f940ac158d02e936645 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController.meta b/Assets/Starter Assets/Runtime/FirstPersonController.meta new file mode 100644 index 0000000..78d600f --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 989cd1dabf2a892459e96139bfdd4a4a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta new file mode 100644 index 0000000..76f4a2b --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3547d539220f51a4599294020a5f42cf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab new file mode 100644 index 0000000..bdcc935 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9005220659476430823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9005220659476430818} + - component: {fileID: 9005220659476430821} + - component: {fileID: 9005220659476430820} + - component: {fileID: 9018249871969862650} + - component: {fileID: 6649558419134552556} + m_Layer: 0 + m_Name: MainCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9005220659476430818 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.20000005, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &9005220659476430821 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.972549, g: 0.95686275, b: 0.92941177, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.2 + far clip plane: 5000 + field of view: 40 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &9005220659476430820 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 +--- !u!114 &9018249871969862650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowDebugText: 0 + m_ShowCameraFrustum: 1 + m_IgnoreTimeScale: 0 + m_WorldUpOverride: {fileID: 0} + m_UpdateMethod: 2 + m_BlendUpdateMethod: 1 + m_DefaultBlend: + m_Style: 1 + m_Time: 2 + m_CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_CustomBlends: {fileID: 0} + m_CameraCutEvent: + m_PersistentCalls: + m_Calls: [] + m_CameraActivatedEvent: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6649558419134552556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9005220659476430823} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + quality: 3 + frameInfluence: 0.1 + jitterScale: 1 + mipBias: 0 + varianceClampScale: 0.9 + contrastAdaptiveSharpening: 0 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta new file mode 100644 index 0000000..7590188 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/MainCamera.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d3a85ecde41a8246a79669975912b74 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab new file mode 100644 index 0000000..d635d80 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab @@ -0,0 +1,334 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7094977340588366727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6556307555316582679} + m_Layer: 0 + m_Name: NestedParent_Unpack + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6556307555316582679 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7094977340588366727} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 22.210217, y: -8.786317, z: 23.948788} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5126527961139664760} + - {fileID: 2862278905927072855} + - {fileID: 937451010987979973} + - {fileID: 6116018315020930700} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4253012990495331769 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 1992104595683069851, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_Name + value: UI_EventSystem + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalPosition.y + value: 8.786317 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f0271df749728104eac22c3d897fd8ce, type: 3} +--- !u!4 &6116018315020930700 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce, type: 3} + m_PrefabInstance: {fileID: 4253012990495331769} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4313866245218740378 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430821, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: far clip plane + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430821, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: orthographic size + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9005220659476430823, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + propertyPath: m_Name + value: MainCamera + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} +--- !u!4 &5126527961139664760 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9005220659476430818, guid: 2d3a85ecde41a8246a79669975912b74, type: 3} + m_PrefabInstance: {fileID: 4313866245218740378} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6782772647021209901 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 8762286023885395077, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_Name + value: PlayerFollowCamera + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalPosition.y + value: 10.161317 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8762286023885395323, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + propertyPath: m_Follow + value: + objectReference: {fileID: 5242107653240477475} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} +--- !u!4 &2862278905927072855 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8762286023885395322, guid: 9c489a8547f4d9e4387da15a4ff82c81, type: 3} + m_PrefabInstance: {fileID: 6782772647021209901} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8204767106804910123 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6556307555316582679} + m_Modifications: + - target: {fileID: 5393215578589016655, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2} + - target: {fileID: 8616685848737228372, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_Name + value: PlayerCapsule + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalPosition.x + value: -22.210217 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalPosition.y + value: 8.786317 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalPosition.z + value: -23.948788 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} +--- !u!4 &937451010987979973 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8997996947095583982, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + m_PrefabInstance: {fileID: 8204767106804910123} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5242107653240477475 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4135013735270702856, guid: c5efc39a8aaf6e64ea40e9ad573e9b47, type: 3} + m_PrefabInstance: {fileID: 8204767106804910123} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta new file mode 100644 index 0000000..a13079f --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/NestedParent_Unpack.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 035bf1ba97d19214580cfe6f5a29fdc3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab new file mode 100644 index 0000000..c623db3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab @@ -0,0 +1,367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4135013735270702863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4135013735270702856} + m_Layer: 0 + m_Name: PlayerCameraRoot + m_TagString: CinemachineTarget + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4135013735270702856 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135013735270702863} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8997996947095583982} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5393215578589016642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5393215578589016641} + - component: {fileID: 5393215578589016654} + - component: {fileID: 5393215578589016655} + - component: {fileID: 5393215578589016640} + m_Layer: 8 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5393215578589016641 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8997996947095583982} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5393215578589016654 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5393215578589016655 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &5393215578589016640 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5393215578589016642} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8616685848737228372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8997996947095583982} + - component: {fileID: 8616685848737228382} + - component: {fileID: 8616685848737228371} + - component: {fileID: 1978471637655604388} + - component: {fileID: 5420857361349278248} + - component: {fileID: 8616685848737228376} + m_Layer: 8 + m_Name: PlayerCapsule + m_TagString: Player + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8997996947095583982 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4135013735270702856} + - {fileID: 5393215578589016641} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!143 &8616685848737228382 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.25 + m_SkinWidth: 0.02 + m_MinMoveDistance: 0 + m_Center: {x: 0, y: 0.93, z: 0} +--- !u!114 &8616685848737228371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 55919ac34a26952479f3fc91f777b2fa, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveSpeed: 4 + SprintSpeed: 6 + RotationSpeed: 1 + SpeedChangeRate: 10 + JumpHeight: 1.2 + Gravity: -15 + JumpTimeout: 0.1 + FallTimeout: 0.15 + Grounded: 1 + GroundedOffset: -0.14 + GroundedRadius: 0.5 + GroundLayers: + serializedVersion: 2 + m_Bits: 1 + CinemachineCameraTarget: {fileID: 4135013735270702863} + TopClamp: 89 + BottomClamp: -89 +--- !u!114 &1978471637655604388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 909d917d73a63f940ac158d02e936645, type: 3} + m_Name: + m_EditorClassIdentifier: + pushLayers: + serializedVersion: 2 + m_Bits: 0 + canPush: 0 + strength: 1.1 +--- !u!114 &5420857361349278248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e087ecce43ebbff45a1b360637807d93, type: 3} + m_Name: + m_EditorClassIdentifier: + move: {x: 0, y: 0} + look: {x: 0, y: 0} + jump: 0 + sprint: 0 + analogMovement: 0 + cursorLocked: 1 + cursorInputForLook: 1 +--- !u!114 &8616685848737228376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8616685848737228372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: -944628639613478452, guid: 4419d82f33d36e848b3ed5af4c8da37e, type: 3} + m_NotificationBehavior: 0 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputMove + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d + m_ActionName: Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d,/Keyboard/upArrow,/Keyboard/downArrow,/Keyboard/leftArrow,/Keyboard/rightArrow,/XInputControllerWindows/leftStick] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputLook + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 2690c379-f54d-45be-a724-414123833eb4 + m_ActionName: Player/Look[/Mouse/delta,/XInputControllerWindows/rightStick] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputJump + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 8c4abdf8-4099-493a-aa1a-129acec7c3df + m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth] + - m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: + m_MethodName: InputSprint + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_ActionId: 980e881e-182c-404c-8cbf-3d09fdb48fef + m_ActionName: Player/Sprint[/Keyboard/leftShift,/XInputControllerWindows/leftTrigger] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: e4ce1614-c754-48c1-9103-33130441661f + m_ActionName: UI/New action + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: Player + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta new file mode 100644 index 0000000..10f23ac --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerCapsule.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c5efc39a8aaf6e64ea40e9ad573e9b47 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab new file mode 100644 index 0000000..8a1d761 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab @@ -0,0 +1,153 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8762286023885395077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8762286023885395322} + - component: {fileID: 8762286023885395323} + m_Layer: 0 + m_Name: PlayerFollowCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8762286023885395322 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.20000005, y: 1.375, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8762286024517199038} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8762286023885395323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286023885395077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + m_LockStageInInspector: + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 0} + m_Follow: {fileID: 0} + m_Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.2 + FarClipPlane: 500 + Dutch: 0 + LensShift: {x: 0, y: 0} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 8762286024517199038} +--- !u!1 &8762286024517199033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8762286024517199038} + - component: {fileID: 8762286024517199039} + - component: {fileID: 8762286024517199035} + - component: {fileID: 8762286024517199034} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8762286024517199038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286024517199033} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8762286023885395322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8762286024517199039 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286024517199033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8762286024517199035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286024517199033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3} + m_Name: + m_EditorClassIdentifier: + m_NoiseProfile: {fileID: 11400000, guid: 46965f9cbaf525742a6da4c2172a99cd, type: 2} + m_PivotOffset: {x: 0, y: 0, z: 1} + m_AmplitudeGain: 0.5 + m_FrequencyGain: 0.3 + mNoiseOffsets: {x: -451.37964, y: 684.7062, z: 648.0488} +--- !u!114 &8762286024517199034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762286024517199033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bd6043bde05a7fc4cba197d06915c1e3, type: 3} + m_Name: + m_EditorClassIdentifier: + Damping: {x: 0, y: 0, z: 0} + ShoulderOffset: {x: 0, y: 0, z: 0} + VerticalArmLength: 0 + CameraSide: 0.6 + CameraDistance: 0 + CameraCollisionFilter: + serializedVersion: 2 + m_Bits: 1 + IgnoreTag: Player + CameraRadius: 0.15 diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta new file mode 100644 index 0000000..8e3daa7 --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Prefabs/PlayerFollowCamera.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c489a8547f4d9e4387da15a4ff82c81 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta new file mode 100644 index 0000000..e22189e --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d945aebbdf256954aadf016c19fcea09 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs new file mode 100644 index 0000000..9f27dfb --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs @@ -0,0 +1,268 @@ +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace StarterAssets +{ + [RequireComponent(typeof(CharacterController))] +#if ENABLE_INPUT_SYSTEM + [RequireComponent(typeof(PlayerInput))] +#endif + public class FirstPersonController : MonoBehaviour + { + [Header("Player")] + [Tooltip("Move speed of the character in m/s")] + public float MoveSpeed = 4.0f; + [Tooltip("Sprint speed of the character in m/s")] + public float SprintSpeed = 6.0f; + [Tooltip("Rotation speed of the character")] + public float RotationSpeed = 1.0f; + [Tooltip("Acceleration and deceleration")] + public float SpeedChangeRate = 10.0f; + + [Space(10)] + [Tooltip("The height the player can jump")] + public float JumpHeight = 1.2f; + [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] + public float Gravity = -15.0f; + + [Space(10)] + [Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")] + public float JumpTimeout = 0.1f; + [Tooltip("Time required to pass before entering the fall state. Useful for walking down stairs")] + public float FallTimeout = 0.15f; + + [Header("Player Grounded")] + [Tooltip("If the character is grounded or not. Not part of the CharacterController built in grounded check")] + public bool Grounded = true; + [Tooltip("Useful for rough ground")] + public float GroundedOffset = -0.14f; + [Tooltip("The radius of the grounded check. Should match the radius of the CharacterController")] + public float GroundedRadius = 0.5f; + [Tooltip("What layers the character uses as ground")] + public LayerMask GroundLayers; + + [Header("Cinemachine")] + [Tooltip("The follow target set in the Cinemachine Virtual Camera that the camera will follow")] + public GameObject CinemachineCameraTarget; + [Tooltip("How far in degrees can you move the camera up")] + public float TopClamp = 90.0f; + [Tooltip("How far in degrees can you move the camera down")] + public float BottomClamp = -90.0f; + + // cinemachine + private float _cinemachineTargetPitch; + + // player + private float _speed; + private float _rotationVelocity; + private float _verticalVelocity; + private float _terminalVelocity = 53.0f; + + // timeout deltatime + private float _jumpTimeoutDelta; + private float _fallTimeoutDelta; + + +#if ENABLE_INPUT_SYSTEM + private PlayerInput _playerInput; +#endif + private CharacterController _controller; + private StarterAssetsInputs _input; + private GameObject _mainCamera; + + private const float _threshold = 0.01f; + + private bool IsCurrentDeviceMouse + { + get + { + #if ENABLE_INPUT_SYSTEM + return _playerInput.currentControlScheme == "KeyboardMouse"; + #else + return false; + #endif + } + } + + private void Awake() + { + // get a reference to our main camera + if (_mainCamera == null) + { + _mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); + } + } + + private void Start() + { + _controller = GetComponent(); + _input = GetComponent(); +#if ENABLE_INPUT_SYSTEM + _playerInput = GetComponent(); +#else + Debug.LogError( "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it"); +#endif + + // reset our timeouts on start + _jumpTimeoutDelta = JumpTimeout; + _fallTimeoutDelta = FallTimeout; + } + + private void Update() + { + JumpAndGravity(); + GroundedCheck(); + Move(); + } + + private void LateUpdate() + { + CameraRotation(); + } + + private void GroundedCheck() + { + // set sphere position, with offset + Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z); + Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers, QueryTriggerInteraction.Ignore); + } + + private void CameraRotation() + { + // if there is an input + if (_input.look.sqrMagnitude >= _threshold) + { + //Don't multiply mouse input by Time.deltaTime + float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime; + + _cinemachineTargetPitch += _input.look.y * RotationSpeed * deltaTimeMultiplier; + _rotationVelocity = _input.look.x * RotationSpeed * deltaTimeMultiplier; + + // clamp our pitch rotation + _cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, BottomClamp, TopClamp); + + // Update Cinemachine camera target pitch + CinemachineCameraTarget.transform.localRotation = Quaternion.Euler(_cinemachineTargetPitch, 0.0f, 0.0f); + + // rotate the player left and right + transform.Rotate(Vector3.up * _rotationVelocity); + } + } + + private void Move() + { + // set target speed based on move speed, sprint speed and if sprint is pressed + float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; + + // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon + + // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is no input, set the target speed to 0 + if (_input.move == Vector2.zero) targetSpeed = 0.0f; + + // a reference to the players current horizontal velocity + float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude; + + float speedOffset = 0.1f; + float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; + + // accelerate or decelerate to target speed + if (currentHorizontalSpeed < targetSpeed - speedOffset || currentHorizontalSpeed > targetSpeed + speedOffset) + { + // creates curved result rather than a linear one giving a more organic speed change + // note T in Lerp is clamped, so we don't need to clamp our speed + _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, Time.deltaTime * SpeedChangeRate); + + // round speed to 3 decimal places + _speed = Mathf.Round(_speed * 1000f) / 1000f; + } + else + { + _speed = targetSpeed; + } + + // normalise input direction + Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; + + // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is a move input rotate player when the player is moving + if (_input.move != Vector2.zero) + { + // move + inputDirection = transform.right * _input.move.x + transform.forward * _input.move.y; + } + + // move the player + _controller.Move(inputDirection.normalized * (_speed * Time.deltaTime) + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime); + } + + private void JumpAndGravity() + { + if (Grounded) + { + // reset the fall timeout timer + _fallTimeoutDelta = FallTimeout; + + // stop our velocity dropping infinitely when grounded + if (_verticalVelocity < 0.0f) + { + _verticalVelocity = -2f; + } + + // Jump + if (_input.jump && _jumpTimeoutDelta <= 0.0f) + { + // the square root of H * -2 * G = how much velocity needed to reach desired height + _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); + } + + // jump timeout + if (_jumpTimeoutDelta >= 0.0f) + { + _jumpTimeoutDelta -= Time.deltaTime; + } + } + else + { + // reset the jump timeout timer + _jumpTimeoutDelta = JumpTimeout; + + // fall timeout + if (_fallTimeoutDelta >= 0.0f) + { + _fallTimeoutDelta -= Time.deltaTime; + } + + // if we are not grounded, do not jump + _input.jump = false; + } + + // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) + if (_verticalVelocity < _terminalVelocity) + { + _verticalVelocity += Gravity * Time.deltaTime; + } + } + + private static float ClampAngle(float lfAngle, float lfMin, float lfMax) + { + if (lfAngle < -360f) lfAngle += 360f; + if (lfAngle > 360f) lfAngle -= 360f; + return Mathf.Clamp(lfAngle, lfMin, lfMax); + } + + private void OnDrawGizmosSelected() + { + Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f); + Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f); + + if (Grounded) Gizmos.color = transparentGreen; + else Gizmos.color = transparentRed; + + // when selected, draw a gizmo in the position of, and matching radius of, the grounded collider + Gizmos.DrawSphere(new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z), GroundedRadius); + } + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta new file mode 100644 index 0000000..bde0fdf --- /dev/null +++ b/Assets/Starter Assets/Runtime/FirstPersonController/Scripts/FirstPersonController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 55919ac34a26952479f3fc91f777b2fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/InputSystem.meta b/Assets/Starter Assets/Runtime/InputSystem.meta new file mode 100644 index 0000000..b720f6a --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8332b7ba9ad58d641bb71880befb7da1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions new file mode 100644 index 0000000..13307f4 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions @@ -0,0 +1,270 @@ +{ + "name": "StarterAssets", + "maps": [ + { + "name": "Player", + "id": "f62a4b92-ef5e-4175-8f4c-c9075429d32c", + "actions": [ + { + "name": "Move", + "type": "Value", + "id": "6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "" + }, + { + "name": "Look", + "type": "Value", + "id": "2690c379-f54d-45be-a724-414123833eb4", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "" + }, + { + "name": "Jump", + "type": "Button", + "id": "8c4abdf8-4099-493a-aa1a-129acec7c3df", + "expectedControlType": "Button", + "processors": "", + "interactions": "" + }, + { + "name": "Sprint", + "type": "PassThrough", + "id": "980e881e-182c-404c-8cbf-3d09fdb48fef", + "expectedControlType": "", + "processors": "", + "interactions": "" + } + ], + "bindings": [ + { + "name": "WASD", + "id": "b7594ddb-26c9-4ba2-bd5a-901468929edc", + "path": "2DVector(mode=1)", + "interactions": "", + "processors": "", + "groups": "", + "action": "Move", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "2063a8b5-6a45-43de-851b-65f3d46e7b58", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "64e4d037-32e1-4fb9-80e4-fc7330404dfe", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0fce8b11-5eab-4e4e-a741-b732e7b20873", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "7bdda0d6-57a8-47c8-8238-8aecf3110e47", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "bb94b405-58d3-4998-8535-d705c1218a98", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "929d9071-7dd0-4368-9743-6793bb98087e", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "28abadba-06ff-4d37-bb70-af2f1e35a3b9", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "45f115b6-9b4f-4ba8-b500-b94c93bf7d7e", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "e2f9aa65-db06-4c5b-a2e9-41bc8acb9517", + "path": "/leftStick", + "interactions": "", + "processors": "StickDeadzone", + "groups": "Gamepad", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ed66cbff-2900-4a62-8896-696503cfcd31", + "path": "/delta", + "interactions": "", + "processors": "InvertVector2(invertX=false),ScaleVector2(x=0.05,y=0.05)", + "groups": "KeyboardMouse", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d1d171b6-19d8-47a6-ba3a-71b6a8e7b3c0", + "path": "/rightStick", + "interactions": "", + "processors": "InvertVector2(invertX=false),StickDeadzone,ScaleVector2(x=300,y=300)", + "groups": "Gamepad", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1bd55a0b-761e-4ae4-89ae-8ec127e08a29", + "path": "/space", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "9f973413-5e27-4239-acee-38c4a63feeba", + "path": "/buttonSouth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "dc65b89f-9bd3-43fb-92af-d0d87ba5faa4", + "path": "/leftShift", + "interactions": "", + "processors": "", + "groups": "KeyboardMouse", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c8fcd86e-dcfd-4f88-8e93-b638cdbf3320", + "path": "/leftTrigger", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "KeyboardMouse", + "bindingGroup": "KeyboardMouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": true, + "isOR": false + }, + { + "devicePath": "", + "isOptional": true, + "isOR": false + }, + { + "devicePath": "", + "isOptional": true, + "isOR": false + } + ] + }, + { + "name": "Xbox Controller", + "bindingGroup": "Xbox Controller", + "devices": [] + }, + { + "name": "PS4 Controller", + "bindingGroup": "PS4 Controller", + "devices": [] + } + ] +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta new file mode 100644 index 0000000..7d4fb54 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 4419d82f33d36e848b3ed5af4c8da37e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset new file mode 100644 index 0000000..9a03d18 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c46f07b5ed07e4e92aa78254188d3d10, type: 3} + m_Name: StarterAssets.inputsettings + m_EditorClassIdentifier: + m_SupportedDevices: [] + m_UpdateMode: 1 + m_CompensateForScreenOrientation: 0 + m_FilterNoiseOnCurrent: 0 + m_DefaultDeadzoneMin: 0.125 + m_DefaultDeadzoneMax: 0.925 + m_DefaultButtonPressPoint: 0.5 + m_DefaultTapTime: 0.2 + m_DefaultSlowTapTime: 0.5 + m_DefaultHoldTime: 0.4 + m_TapRadius: 5 + m_MultiTapDelayTime: 0.75 diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta new file mode 100644 index 0000000..bb5f3dd --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssets.inputsettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e7be553448fa2546aea5752021cbcf7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs new file mode 100644 index 0000000..8a75632 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs @@ -0,0 +1,80 @@ +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace StarterAssets +{ + public class StarterAssetsInputs : MonoBehaviour + { + [Header("Character Input Values")] + public Vector2 move; + public Vector2 look; + public bool jump; + public bool sprint; + + [Header("Movement Settings")] + public bool analogMovement; + + [Header("Mouse Cursor Settings")] + public bool cursorLocked = true; + public bool cursorInputForLook = true; + +#if ENABLE_INPUT_SYSTEM + public void OnMove(InputValue value) + { + MoveInput(value.Get()); + } + + public void OnLook(InputValue value) + { + if(cursorInputForLook) + { + LookInput(value.Get()); + } + } + + public void OnJump(InputValue value) + { + JumpInput(value.isPressed); + } + + public void OnSprint(InputValue value) + { + SprintInput(value.isPressed); + } +#endif + + + public void MoveInput(Vector2 newMoveDirection) + { + move = newMoveDirection; + } + + public void LookInput(Vector2 newLookDirection) + { + look = newLookDirection; + } + + public void JumpInput(bool newJumpState) + { + jump = newJumpState; + } + + public void SprintInput(bool newSprintState) + { + sprint = newSprintState; + } + + private void OnApplicationFocus(bool hasFocus) + { + SetCursorState(cursorLocked); + } + + private void SetCursorState(bool newState) + { + Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None; + } + } + +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta new file mode 100644 index 0000000..796f375 --- /dev/null +++ b/Assets/Starter Assets/Runtime/InputSystem/StarterAssetsInputs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e087ecce43ebbff45a1b360637807d93 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile.meta b/Assets/Starter Assets/Runtime/Mobile.meta new file mode 100644 index 0000000..0306d5c --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2ea1ce5c438c7248934bf9294b1cd67 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta new file mode 100644 index 0000000..0d761da --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49852dd85b2de7b4997a61317937f2e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta new file mode 100644 index 0000000..8fb3ee2 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c89b887ca267db84f895ccd75713a923 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab new file mode 100644 index 0000000..9faec87 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1992104595683069851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8063073397250431797} + - component: {fileID: 5148107578835001787} + - component: {fileID: 8279798545678494202} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8063073397250431797 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -799.99994, y: -449.99997, z: 0} + m_LocalScale: {x: 0.83333325, y: 0.83333325, z: 0.83333325} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5148107578835001787 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!114 &8279798545678494202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1992104595683069851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta new file mode 100644 index 0000000..c5b4e5b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/EventSystem/UI_EventSystem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0271df749728104eac22c3d897fd8ce +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab new file mode 100644 index 0000000..e076196 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7137023482562969817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5052264629267279113} + - component: {fileID: 3990693672098548669} + - component: {fileID: 7140694399045626294} + - component: {fileID: 3004629566080465027} + - component: {fileID: 7921911991004155457} + m_Layer: 0 + m_Name: UI_TouchScreenInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5052264629267279113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.92999995, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3990693672098548669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: 6f80c07efbcffac4380910b5aac93c8d, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: ccd45339dc8ff154fbbe578856089eaf, + type: 3} + m_SortingOrder: 0 +--- !u!114 &7140694399045626294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6d7e4e4868ed5df4b928c22423c690a0, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveMagnitudeMultiplier: 1 + LookMagnitudeMultiplier: 80 + InvertLookY: 1 + MoveEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualMoveInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + LookEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualLookInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + JumpEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualJumpInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + SprintEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3004629566080465027} + m_TargetAssemblyTypeName: VirtualInput, Unity.StarterAssets + m_MethodName: VirtualSprintInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &3004629566080465027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed06e3b6fec5ecc4696004cedc31f0ac, type: 3} + m_Name: + m_EditorClassIdentifier: + StarterAssetsInputs: {fileID: 0} +--- !u!114 &7921911991004155457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7137023482562969817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 901182334643ba1438a25accc6bd0c79, type: 3} + m_Name: + m_EditorClassIdentifier: + playerInput: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta new file mode 100644 index 0000000..7adb0a4 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Prefabs/UI_TouchScreenInput.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d001cacf887eb14cbf269a09e3ec3ba +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts.meta new file mode 100644 index 0000000..fe0a26e --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b0e507958fc3a940b3afabb02fdb2cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs new file mode 100644 index 0000000..12acc11 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.InputSystem; +using UnityEngine.UIElements; + +public class TouchscreenInput : MonoBehaviour +{ + [Header("Settings")] + [Tooltip("Move joystick magnitude is in [-1;1] range, this multiply it before sending it to move event")] + public float MoveMagnitudeMultiplier = 1.0f; + [Tooltip("Look joystick magnitude is in [-1;1] range, this multiply it before sending it to move event")] + public float LookMagnitudeMultiplier = 1.0f; + public bool InvertLookY; + + [Header("Events")] + public UnityEvent MoveEvent; + public UnityEvent LookEvent; + public UnityEvent JumpEvent; + public UnityEvent SprintEvent; + + private UIDocument m_Document; + + private VirtualJoystick m_MoveJoystick; + private VirtualJoystick m_LookJoystick; + + private void Awake() + { + m_Document = GetComponent(); + + var safeArea = Screen.safeArea; + + var root = m_Document.rootVisualElement; + + root.style.position = Position.Absolute; + root.style.left = safeArea.xMin; + root.style.right = Screen.width - safeArea.xMax; + root.style.top = Screen.height - safeArea.yMax; + root.style.bottom = safeArea.yMin; + } + + private void Start() + { + var joystickMove = m_Document.rootVisualElement.Q("JoystickMove"); + var joystickLook = m_Document.rootVisualElement.Q("JoystickLook"); + + m_MoveJoystick = new VirtualJoystick(joystickMove); + m_MoveJoystick.JoystickEvent.AddListener(mov => + { + MoveEvent.Invoke(mov * MoveMagnitudeMultiplier); + });; + + m_LookJoystick = new VirtualJoystick(joystickLook); + m_LookJoystick.JoystickEvent.AddListener(mov => + { + if (InvertLookY) + mov.y *= -1; + + LookEvent.Invoke(mov * LookMagnitudeMultiplier); + }); + + var jumpButton = m_Document.rootVisualElement.Q("ButtonJump"); + jumpButton.RegisterCallback(evt => { JumpEvent.Invoke(true); }); + jumpButton.RegisterCallback(evt => { JumpEvent.Invoke(false); }); + + var sprintButton = m_Document.rootVisualElement.Q("ButtonSprint"); + sprintButton.RegisterCallback(evt => { SprintEvent.Invoke(true); }); + sprintButton.RegisterCallback(evt => { SprintEvent.Invoke(false); }); + } +} +public class VirtualJoystick +{ + public VisualElement BaseElement; + public VisualElement Thumbstick; + + public UnityEvent JoystickEvent = new(); + + public VirtualJoystick(VisualElement root) + { + BaseElement = root; + Thumbstick = root.Q("JoystickHandle"); + + BaseElement.RegisterCallback(HandlePress); + BaseElement.RegisterCallback(HandleDrag); + BaseElement.RegisterCallback(HandleRelease); + } + + void HandlePress(PointerDownEvent evt) + { + BaseElement.CapturePointer(evt.pointerId); + } + + void HandleRelease(PointerUpEvent evt) + { + BaseElement.ReleasePointer(evt.pointerId); + + Thumbstick.style.left = Length.Percent(50); + Thumbstick.style.top = Length.Percent(50); + + JoystickEvent.Invoke(Vector2.zero); + } + + void HandleDrag(PointerMoveEvent evt) + { + if (!BaseElement.HasPointerCapture(evt.pointerId)) return; + + var width = BaseElement.contentRect.width; + var center = new Vector3(width / 2, width / 2); + var centerToPosition = evt.localPosition - center; + + if (centerToPosition.magnitude > width/2) + { + centerToPosition = centerToPosition.normalized * width / 2; + } + + var newPos = center + centerToPosition; + + Thumbstick.style.left = newPos.x; + Thumbstick.style.top = newPos.y; + + centerToPosition /= (width / 2); + //we invert y as the y of UI goes down, but pushing the joystick up is expected to give a positive y value + centerToPosition.y *= -1; + + JoystickEvent.Invoke(centerToPosition); + } +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta new file mode 100644 index 0000000..b211864 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/TouchscreenInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d7e4e4868ed5df4b928c22423c690a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta new file mode 100644 index 0000000..0f5fd43 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a499c73a35b488449a6f9e9db9e88120 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs new file mode 100644 index 0000000..6604cc6 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs @@ -0,0 +1,41 @@ +/* +The PlayerInput component has an auto-switch control scheme action that allows automatic changing of connected devices. +IE: Switching from Keyboard to Gamepad in-game. +When built to a mobile phone; in most cases, there is no concept of switching connected devices as controls are typically driven through what is on the device's hardware (Screen, Tilt, etc) +In Input System 1.0.2, if the PlayerInput component has Auto Switch enabled, it will search the mobile device for connected devices; which is very costly and results in bad performance. +This is fixed in Input System 1.1. +For the time-being; this script will disable a PlayerInput's auto switch control schemes; when project is built to mobile. +*/ + +using System; +using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +public class MobileDisableAutoSwitchControls : MonoBehaviour +{ + +#if ENABLE_INPUT_SYSTEM && (UNITY_IOS || UNITY_ANDROID) + + [Header("Target")] + public PlayerInput playerInput; + + void Start() + { + DisableAutoSwitchControls(); + } + + void DisableAutoSwitchControls() + { + playerInput.neverAutoSwitchControlSchemes = true; + } + + private void Update() + { + Debug.Log(playerInput.currentControlScheme); + } + +#endif + +} diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta new file mode 100644 index 0000000..bbb08c4 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/Utilities/MobileDisableAutoSwitchControls.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 901182334643ba1438a25accc6bd0c79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs new file mode 100644 index 0000000..10762c3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs @@ -0,0 +1,28 @@ +using StarterAssets; +using UnityEngine; + +public class VirtualInput : MonoBehaviour +{ + [Header("Output")] + public StarterAssetsInputs StarterAssetsInputs; + + public void VirtualMoveInput(Vector2 virtualMoveDirection) + { + StarterAssetsInputs.MoveInput(virtualMoveDirection); + } + + public void VirtualLookInput(Vector2 virtualLookDirection) + { + StarterAssetsInputs.LookInput(virtualLookDirection); + } + + public void VirtualJumpInput(bool virtualJumpState) + { + StarterAssetsInputs.JumpInput(virtualJumpState); + } + + public void VirtualSprintInput(bool virtualSprintState) + { + StarterAssetsInputs.SprintInput(virtualSprintState); + } +} diff --git a/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta new file mode 100644 index 0000000..1008657 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/Scripts/VirtualInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed06e3b6fec5ecc4696004cedc31f0ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI.meta b/Assets/Starter Assets/Runtime/Mobile/UI.meta new file mode 100644 index 0000000..bece0ca --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7fdf9603bb47074a9b04a3eb60ffcd8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta new file mode 100644 index 0000000..e93d822 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d68d011be6097c342b084b74a7853323 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png new file mode 100644 index 0000000..a3c2539 Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta new file mode 100644 index 0000000..0c52f47 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Bevel_Base.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: b74c31d447d2f5d41a61081bdf5e7126 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png new file mode 100644 index 0000000..042ea91 Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta new file mode 100644 index 0000000..4d286c9 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Circle_Faded.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: 90ded0611e490aa4ba6961afbfc2280d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png new file mode 100644 index 0000000..bd7ef81 Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta new file mode 100644 index 0000000..d2f0bc3 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Jump.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: 751aa1b6637101946b2fdbb7aa27d6ad +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png new file mode 100644 index 0000000..1402f6c Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta new file mode 100644 index 0000000..5194ea2 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Look.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: af0ae2dbf3d1efb4f82af377950704a2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png new file mode 100644 index 0000000..5c9a835 Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta new file mode 100644 index 0000000..76b5e8f --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Move.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: ff7bfa7addf40784d86f62b8e4a034a6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png new file mode 100644 index 0000000..55a1698 Binary files /dev/null and b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png differ diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta new file mode 100644 index 0000000..7f85716 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/Images/UI_Icon_Sprint.png.meta @@ -0,0 +1,132 @@ +fileFormatVersion: 2 +guid: b0fa70abd2a79904cb00b175dfd8ec7e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss new file mode 100644 index 0000000..b74693b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss @@ -0,0 +1,93 @@ +.touchscreen-button { + margin: 0; + padding: 0; + + background-color: rgba(0,0,0,0); + background-image: url("./Images/UI_Circle_Bevel_Base.png#UI_Circle_Bevel_Base"); +} + +#JoystickMove { + position: absolute; + width: 330px; + height: 330px; + + left: 25px; + bottom: 15px; +} + +#JoystickLook { + position: absolute; + width: 240px; + height: 240px; + + right: 55px; + bottom: 245px; +} + +#JoystickBackground { + flex-grow: 1.0; + + background-image: url("./Images/UI_Circle_Faded.png#UI_Circle_Faded"); +} + +#JoystickHandle { + width: 130px; + height: 130px; + + position: absolute; + + top: 50%; + left: 50%; + + translate: -50%; +} + +.button-icon { + + position: absolute; + + top: 50%; + left: 50%; + + translate: -50%; + + width: 70px; + height: 70px; +} + +#JoystickMove #JoystickIcon { + background-image: url("./Images/UI_Icon_Move.png#UI_Icon_Move"); +} + +#JoystickLook #JoystickIcon { + background-image: url("./Images/UI_Icon_Look.png#UI_Icon_Look"); +} + +#ButtonJump { + width: 110px; + height: 110px; + + position: absolute; + + right : 45px; + bottom : 125px; +} + +#ButtonSprint { + width: 110px; + height: 110px; + + position: absolute; + + right : 130px; + bottom : 25px; +} + + +#ButtonJump #ButtonImage { + background-image: url("./Images/UI_Icon_Jump.png#UI_Icon_Jump"); +} + +#ButtonSprint #ButtonImage { + background-image: url("./Images/UI_Icon_Sprint.png#UI_Icon_Sprint"); +} \ No newline at end of file diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta new file mode 100644 index 0000000..fd75532 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/ToucScreenInputStyle.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65f131e357a5ced4b9f5d34f036bd440 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss new file mode 100644 index 0000000..c9d9776 --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss @@ -0,0 +1,5 @@ + +@import url("ToucScreenInputStyle.uss"); + + +VisualElement {} diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta new file mode 100644 index 0000000..e8b854b --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputDefaultStyle.tss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 271d0c8741016ff4eae1b9070589c571 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset new file mode 100644 index 0000000..7afcabd --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset @@ -0,0 +1,39 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19101, guid: 0000000000000000e000000000000000, type: 0} + m_Name: TouchScreenInputPanelSetting + m_EditorClassIdentifier: + themeUss: {fileID: -4733365628477956816, guid: 271d0c8741016ff4eae1b9070589c571, + type: 3} + m_TargetTexture: {fileID: 0} + m_ScaleMode: 2 + m_ReferenceSpritePixelsPerUnit: 100 + m_Scale: 1 + m_ReferenceDpi: 96 + m_FallbackDpi: 96 + m_ReferenceResolution: {x: 1600, y: 900} + m_ScreenMatchMode: 0 + m_Match: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 + m_ClearDepthStencil: 1 + m_ClearColor: 0 + m_ColorClearValue: {r: 0, g: 0, b: 0, a: 0} + m_DynamicAtlasSettings: + m_MinAtlasSize: 64 + m_MaxAtlasSize: 4096 + m_MaxSubTextureSize: 64 + m_ActiveFilters: -1 + m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0} + m_RuntimeShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0} + m_RuntimeWorldShader: {fileID: 9102, guid: 0000000000000000f000000000000000, type: 0} + textSettings: {fileID: 0} diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta new file mode 100644 index 0000000..8cf05ad --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputPanelSetting.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f80c07efbcffac4380910b5aac93c8d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml new file mode 100644 index 0000000..55649ac --- /dev/null +++ b/Assets/Starter Assets/Runtime/Mobile/UI/TouchScreenInputUI.uxml @@ -0,0 +1,25 @@ + +