Files
Cielonos/Assets/Scripts/MainGame/Characters/Player/View/PlayerViewSubcontroller.cs
SoulliesOfficial 33b1795c1f 更新
2026-01-03 18:19:39 -05:00

63 lines
1.9 KiB
C#

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<Player>, 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 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();
}
}
}