63 lines
2.1 KiB
C#
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();
|
|
}
|
|
}
|
|
} |