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