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