Files
Infratest/Assets/Code/Infrastructure/Camera/CameraStates/BaseCameraState.cs
T

28 lines
1.2 KiB
C#

using Code.Infrastructure.StateMachine;
using UnityEngine;
namespace Code.Infrastructure.Camera.CameraStates
{
// [State(typeof(CameraMode),typeof(CameraStateMachineContext))]
public abstract class BaseCameraState : BaseState<CameraMode, CameraStateMachineContext>
{
protected BaseCameraState(CameraStateMachineContext context, EventBus.EventBus eventBus) : base(context, eventBus)
{
EventBus = eventBus;
}
// Основной метод обновления камеры, вызываемый извне каждый кадр
protected void UpdateWithInput(float deltaTime, Vector3 rotationInput)
{
// Обработка ввода и позиционирования
HandleRotationInput(deltaTime, rotationInput, out var targetRotation);
HandlePosition(deltaTime , targetRotation);
}
protected abstract void HandlePosition(float deltaTime, object o);
protected abstract void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion q);
public abstract void Update();
public abstract void LateUpdate();
}
}