using _Project.Scripts.PlayerUtils; using _Project.Scripts.Utilities; using UnityEngine; namespace _Project.Scripts { public class Player : MonoSingleton { public PlayerControls Controls { get; private set; } public PlayerMovement Movement { get; private set; } public PlayerCamera CameraController { get; private set; } public PlayerCombat Combat { get; private set; } public PlayerSound Sound { get; private set; } public PlayerUI UI { get; private set; } public PlayerPossession Possession { get; private set; } protected override void Awake() { base.Awake(); Controls = new PlayerControls(); Movement = GetComponent(); CameraController = GetComponent(); Combat = GetComponent(); Sound = GetComponent(); UI = GetComponent(); Possession = GetComponent(); if (Possession == null) Possession = gameObject.AddComponent(); Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; } private void OnEnable() => Controls.Player.Enable(); private void OnDisable() => Controls.Player.Disable(); } }