Files
FallBotsB3/Assets/_Content/Scripts/PlayerCamera.cs
2026-05-27 13:11:06 +02:00

92 lines
1.8 KiB
C#

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()
{
}
}