From 074eb510848672c7444c89924e52e26339fc016f Mon Sep 17 00:00:00 2001 From: Alexandre Coirier Date: Wed, 30 Sep 2026 18:39:14 +0200 Subject: [PATCH] wip: PlayerMover --- Assets/_Content/Prefabs/Player.prefab | 124 ++++++++++++++++++ Assets/_Content/Prefabs/Player.prefab.meta | 7 + Assets/_Content/Scenes/SampleScene.unity | 4 +- Assets/_Content/Scripts/CameraFollower.cs | 13 ++ .../_Content/Scripts/CameraFollower.cs.meta | 2 + Assets/_Content/Scripts/PlayerMover.cs | 53 ++++++++ Assets/_Content/Scripts/PlayerMover.cs.meta | 2 + Assets/_Content/Settings/Mobile_RPAsset.asset | 14 +- ProjectSettings/EditorBuildSettings.asset | 2 +- ProjectSettings/SceneTemplateSettings.json | 121 +++++++++++++++++ ProjectSettings/TimelineSettings.asset | 16 +++ 11 files changed, 352 insertions(+), 6 deletions(-) create mode 100644 Assets/_Content/Prefabs/Player.prefab create mode 100644 Assets/_Content/Prefabs/Player.prefab.meta create mode 100644 Assets/_Content/Scripts/CameraFollower.cs create mode 100644 Assets/_Content/Scripts/CameraFollower.cs.meta create mode 100644 Assets/_Content/Scripts/PlayerMover.cs create mode 100644 Assets/_Content/Scripts/PlayerMover.cs.meta create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/TimelineSettings.asset diff --git a/Assets/_Content/Prefabs/Player.prefab b/Assets/_Content/Prefabs/Player.prefab new file mode 100644 index 0000000..4bd8c74 --- /dev/null +++ b/Assets/_Content/Prefabs/Player.prefab @@ -0,0 +1,124 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5701756709460610233 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1336261255310037562} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1336261255310037562 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5701756709460610233} + 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: 8656262745496025766} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7176853314782784158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8656262745496025766} + - component: {fileID: 179238054112632900} + - component: {fileID: 8072051991269871080} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8656262745496025766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176853314782784158} + 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: 1336261255310037562} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &179238054112632900 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176853314782784158} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8072051991269871080 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176853314782784158} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/_Content/Prefabs/Player.prefab.meta b/Assets/_Content/Prefabs/Player.prefab.meta new file mode 100644 index 0000000..4651c0a --- /dev/null +++ b/Assets/_Content/Prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3dd23c379331ec24baf9cfc7e4c79be4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Content/Scenes/SampleScene.unity b/Assets/_Content/Scenes/SampleScene.unity index 5b772c5..f2ceb8c 100644 --- a/Assets/_Content/Scenes/SampleScene.unity +++ b/Assets/_Content/Scenes/SampleScene.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:07fce8b04804ddccb3026db5b43d8dc41ba138e49d50d36a5c24877081eacdca -size 11413 +oid sha256:d7308cb7ab832f786810414a0de37ddafc469ca50dc16d5af2d312d79df4d2a5 +size 21305 diff --git a/Assets/_Content/Scripts/CameraFollower.cs b/Assets/_Content/Scripts/CameraFollower.cs new file mode 100644 index 0000000..2c0c22a --- /dev/null +++ b/Assets/_Content/Scripts/CameraFollower.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +[ExecuteAlways] +public class CameraFollower : MonoBehaviour +{ + public GameObject Player; + + void Update() + { + if (Player) + transform.position = Player.transform.position; + } +} diff --git a/Assets/_Content/Scripts/CameraFollower.cs.meta b/Assets/_Content/Scripts/CameraFollower.cs.meta new file mode 100644 index 0000000..a54b07e --- /dev/null +++ b/Assets/_Content/Scripts/CameraFollower.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4ae4fbdc595247448b3d604825bd07fe \ No newline at end of file diff --git a/Assets/_Content/Scripts/PlayerMover.cs b/Assets/_Content/Scripts/PlayerMover.cs new file mode 100644 index 0000000..0a4cd08 --- /dev/null +++ b/Assets/_Content/Scripts/PlayerMover.cs @@ -0,0 +1,53 @@ +using System.ComponentModel; +using UnityEngine; + +public class PlayerMover : MonoBehaviour +{ + [System.Serializable] + private class Settings + { + public float Speed = 5; + } + + [System.Serializable] + private struct References + { + public CharacterController Controller; + } + + [System.Serializable] + public class StateContainer + { + public bool IsJumping = false; + } + +#region FIELDS + + const float MS_TO_KMH = 1 / 3.6f; + + [SerializeField] private Settings _settings; + [SerializeField] private References _references; + [SerializeField] private StateContainer _state; + + public StateContainer State => _state; + +#endregion + +#region UNITY LIFECYCLES + + void Update() + { + float t = Time.deltaTime; + + Move(t); + } + + private void Move(float t) + { + transform.position += Vector3.forward * t * MS_TO_KMH * _settings.Speed; + } + +#endregion + + +} \ No newline at end of file diff --git a/Assets/_Content/Scripts/PlayerMover.cs.meta b/Assets/_Content/Scripts/PlayerMover.cs.meta new file mode 100644 index 0000000..6f1e354 --- /dev/null +++ b/Assets/_Content/Scripts/PlayerMover.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 502392351c6ed7e4c9a3a895792f5b68 \ No newline at end of file diff --git a/Assets/_Content/Settings/Mobile_RPAsset.asset b/Assets/_Content/Settings/Mobile_RPAsset.asset index 7ceffe7..fedee07 100644 --- a/Assets/_Content/Settings/Mobile_RPAsset.asset +++ b/Assets/_Content/Settings/Mobile_RPAsset.asset @@ -12,8 +12,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} m_Name: Mobile_RPAsset m_EditorClassIdentifier: - k_AssetVersion: 12 - k_AssetPreviousVersion: 12 + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 m_RendererType: 1 m_RendererData: {fileID: 0} m_RendererDataList: @@ -53,6 +53,7 @@ MonoBehaviour: m_AdditionalLightsShadowResolutionTierHigh: 1024 m_ReflectionProbeBlending: 1 m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 m_ShadowDistance: 50 m_ShadowCascadeCount: 1 m_Cascade2Split: 0.25 @@ -78,11 +79,11 @@ MonoBehaviour: m_UseAdaptivePerformance: 1 m_ColorGradingMode: 0 m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 m_UseFastSRGBLinearConversion: 1 m_SupportDataDrivenLensFlare: 1 m_SupportScreenSpaceLensFlare: 1 m_GPUResidentDrawerMode: 0 - m_UseLegacyLightmaps: 0 m_SmallMeshScreenPercentage: 0 m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 m_ShadowType: 1 @@ -109,6 +110,7 @@ MonoBehaviour: m_PrefilterDebugKeywords: 1 m_PrefilterWriteRenderingLayers: 1 m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 m_PrefilterSSAODepthNormals: 1 m_PrefilterSSAOSourceDepthLow: 1 m_PrefilterSSAOSourceDepthMedium: 0 @@ -126,8 +128,14 @@ MonoBehaviour: m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadows: 0 m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 m_PrefilterNativeRenderPass: 1 m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 m_Textures: diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index d057ba3..92334bc 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -6,7 +6,7 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/Scenes/SampleScene.unity + path: Assets/_Content/Scenes/SampleScene.unity guid: 99c9720ab356a0642a771bea13969a05 m_configObjects: com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/TimelineSettings.asset b/ProjectSettings/TimelineSettings.asset new file mode 100644 index 0000000..42ff6bc --- /dev/null +++ b/ProjectSettings/TimelineSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Timeline.Editor::TimelineProjectSettings + assetDefaultFramerate: 60 + m_DefaultFrameRate: 60