From c5bd57e91cb39d0891bc44b7a63e01f3ed7d2657 Mon Sep 17 00:00:00 2001 From: Alexandre Coirier Date: Wed, 27 May 2026 13:11:06 +0200 Subject: [PATCH] wip: PlayerCamera --- Assets/_Content/Scripts/PlayerCamera.cs | 91 ++++++++++++++++++++ Assets/_Content/Scripts/PlayerCamera.cs.meta | 2 + 2 files changed, 93 insertions(+) create mode 100644 Assets/_Content/Scripts/PlayerCamera.cs create mode 100644 Assets/_Content/Scripts/PlayerCamera.cs.meta diff --git a/Assets/_Content/Scripts/PlayerCamera.cs b/Assets/_Content/Scripts/PlayerCamera.cs new file mode 100644 index 0000000..ea704af --- /dev/null +++ b/Assets/_Content/Scripts/PlayerCamera.cs @@ -0,0 +1,91 @@ +using UnityEngine; +using UnityEngine.InputSystem; + +public class PlayerCamera : MonoBehaviour +{ + [System.Serializable] + private class Settings + { + [Header("Sensivity")] + + [Tooltip("Camera follow smoothness (0 = instant, 1 = smooth)")] + [Range(0, 1)] + public float FollowSmoothness = .1f; + + [Tooltip("Camera rotation sensitivity")] + public float LookSensitivity = 20; + + [Header("Position")] + + [Tooltip("Camera distance from player")] + public float Distance = 5; + + [Tooltip("Vertical offset from player")] + public float VerticalOffset = 2; + + [Header("Pitch")] + + [Tooltip("Default pitch angle")] + public float DefaultPitch = 20; + + [Tooltip("Min pitch angle")] + public float MinPitch = -30; + + [Tooltip("Max pitch angle")] + public float MaxPitch = 60; + } + + [System.Serializable] + public class References + { + public InputActionAsset InputActions; + public Transform Target; + } + + [SerializeField] + private Settings _settings; + + [SerializeField] + private References _references; + + private float _yaw; + private float _pitch; + + private Vector3 _playerPosition; + private InputAction _lookAction; + + void OnEnable() + { + _lookAction = _references.InputActions.FindActionMap("Player").FindAction("Look"); + _lookAction?.Enable(); + } + + void OnDisable() + { + _lookAction?.Disable(); + } + + void LateUpdate() + { + float t = Time.deltaTime; + + SetCursor(); + SetYawAndPitch(t); + SetPosition(); + } + + private void SetCursor() + { + + } + + private void SetYawAndPitch(float deltaTime) + { + + } + + private void SetPosition() + { + + } +} diff --git a/Assets/_Content/Scripts/PlayerCamera.cs.meta b/Assets/_Content/Scripts/PlayerCamera.cs.meta new file mode 100644 index 0000000..972c13e --- /dev/null +++ b/Assets/_Content/Scripts/PlayerCamera.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6cb6e5c86d8e1a743824a5571d11cddb \ No newline at end of file