Files
Cielonos/Assets/Scripts/MainGame/Characters/Player/View/PlayerViewSubcontroller.cs
SoulliesOfficial 0902ca8a9e Bezi回来了
2026-04-28 15:46:32 -04:00

63 lines
2.1 KiB
C#

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