- Создан интерфейс IPlayerController, абстрагирующий состояние и действия игрока. - JumpPlayerController изменен для реализации интерфейса IPlayerController. - GameplaySession и VerticalCameraFollow переведены на использование IPlayerController для ослабления связей. - В GameplayInstaller добавлена регистрация зависимости IPlayerController в Zenject.
24 lines
703 B
C#
24 lines
703 B
C#
using UnityEngine;
|
|
|
|
namespace DanroJump.Gameplay
|
|
{
|
|
/// <summary>
|
|
/// Интерфейс управления игроком для ослабления связей и переиспользования логики сессий/камеры.
|
|
/// </summary>
|
|
public interface IPlayerController
|
|
{
|
|
event System.Action<IPlayerController> Died;
|
|
event System.Action<IPlayerController> Respawned;
|
|
|
|
Transform Transform { get; }
|
|
float HighestY { get; }
|
|
float DeathRespawnDelay { get; }
|
|
|
|
void ResetRun();
|
|
void BlockPendingRespawn();
|
|
void AllowRespawn();
|
|
void Respawn();
|
|
void ScheduleRespawn(float delay);
|
|
}
|
|
}
|