using System; using DG.Tweening; using SLSFramework.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, IPlayerSubcontroller { 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 override void Initialize() { base.Initialize(); cameraRotationSm = new CameraRotationSubmodule(this, player.transform.eulerAngles.y); occlusionFadeSm = new OcclusionFadeSubmodule(this); lockTargetModule = new LockTargetSubmodule(this); } private void Start() { currentCamera = freeLookCamera; } private void Update() { if (Keyboard.current.tabKey.wasPressedThisFrame) { lockTargetModule.SwitchLockState(); } } private void LateUpdate() { cameraRotationSm.Update(); lockTargetModule.Update(); occlusionFadeSm.Update(); } } }