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 CameraFovSubmodule cameraFovSm; public CameraRotationSubmodule cameraRotationSm; public OcclusionFadeSubmodule occlusionFadeSm; public LockTargetSubmodule lockTargetModule; public LerpFloat cameraFOV; public override void Initialize() { base.Initialize(); cameraFovSm = new CameraFovSubmodule(this, 30f, 30f, 40f, 0.1f, 10f, 5f, true); cameraRotationSm = new CameraRotationSubmodule(this, player.transform.eulerAngles.y); occlusionFadeSm = new OcclusionFadeSubmodule(this); lockTargetModule = new LockTargetSubmodule(this); cameraFOV = new LerpFloat(30f, 2f); player.operationSc.OnLockonTarget += lockTargetModule.SwitchLockState; player.operationSc.OnSelectLockonTarget += lockTargetModule.SwitchTarget; } private void Start() { currentCamera = freeLookCamera; } private void Update() { /*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(); } } }