using System; using DG.Tweening; using SLSUtilities.General; using Unity.Cinemachine; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Serialization; using Ease = DG.Tweening.Ease; namespace Cielonos.MainGame.Characters { public class PlayerViewSubcontroller : SubcontrollerBase { public Player player => owner; public Camera playerCamera; public Transform cameraRoot; public CinemachineStateDrivenCamera stateDrivenCamera; public CinemachineCamera currentCamera; public CinemachineCamera freeLookCamera; public CinemachineCamera lockingTargetCamera; public CharacterBase testEnemy; public CameraRotationSubmodule cameraRotationSm; public OcclusionFadeSubmodule occlusionFadeSm; public LockTargetSubmodule lockTargetModule; public LerpFloat cameraFOV; public override void Initialize() { base.Initialize(); cameraRotationSm = new CameraRotationSubmodule(this, player.transform.eulerAngles.y); occlusionFadeSm = new OcclusionFadeSubmodule(this); lockTargetModule = new LockTargetSubmodule(this); cameraFOV = new LerpFloat(30f, 2f); } private void Start() { currentCamera = freeLookCamera; } private void Update() { if (Keyboard.current.tabKey.wasPressedThisFrame) { lockTargetModule.SwitchLockState(); } /*cameraFOV.targetValue = owner.landMovementSc.isSprinting ? 40f : 30f; cameraFOV.Update(owner.selfTimeSm.DeltaTime); freeLookCamera.Lens.FieldOfView = cameraFOV.currentValue;*/ } private void LateUpdate() { //cameraRotationSm.Update(); lockTargetModule.Update(); occlusionFadeSm.Update(); } } }