개인 프로젝트/ProjectA

[개인 프로젝트] ProjectA - 인터페이스, 클래스

RꞮbble 2026. 6. 8. 22:28

 

IState

더보기

public interface IState
{
    public void Enter();
    public void Update();
    public void Exit();
}

  • 모든 상태들의 인터페이스 
  • 모든 상태는 진입 시점과 탈출 시점이 있으므로, Enter()와 Exit()를 추가했다.
  • 모든 상태는 매 프레임마다 체크할 로직이 필요할 수 있으므로, Update()를 추가했다. 

 

BaseState

더보기

public class BaseState : IState

{

    // 공통 기능 컴포넌트 

    protected AnimationController animationController;

 

    public virtual void Enter() { }

    public virtual void Update() { }

    public virtual void Exit() { }

}

  • 모든 상태들의 최상위 부모가 되는 클래스
  • IState 인터페이스를 상속받아 Enter(), Update(), Exit()를 강제로 구현하도록 했다.
  • 모든 상태들의 최상위 부모이므로, 공통적으로 사용되는 컴포넌트를 가지고 있으면 되겠다. 

 

PlayerState

더보기

public class PlayerState : BaseState

{

    // 플레이어 공통 기능 컴포넌트

    protected InputReader inputReader;

    protected PlayerMovement playerMovement;

    protected VerticalVelocity verticalVelocity;

 

    public override void Enter()

    {

         base.Enter();

    }

 

    public override void Update()

    {

         base.Update();

    }

 

    public override void Exit()

    {

         base.Exit();

    }

}

  • 플레이어 상태들의 부모 상태 클래스
  • BaseState를 상속받아 Enter(), Update(), Exit()를 재정의 하도록 했고,
  • 플레이어 상태들의 부모이므로, 플레이어 상태들에서 공통적으로 사용되는 컴포넌트를 가지고 있으면 되겠다. 

 

PlayerGroundState

더보기

public class PlayerGroundState : PlayerState

{

    // 플레이어가 땅에 있을 때 사용되는 기능 컴포넌트 

    

    public override void Enter()

    {

         base.Enter();

    }

 

    public override void Update()

    {

         base.Update();

    }

 

    public override void Exit()

    {

         base.Exit();

    }

}

  • 플레이어가 땅에 있을 때 상태 클래스
  • PlayerState를 상속받아 Enter(), Update(), Exit()를 재정의 하도록 했다.
  • 대기/걷기/뛰기 상태들의 부모이므로, 땅에 있을 때 공통적으로 사용되는 컴포넌트를 가지고 있으면 되겠다. 

 

PlayerAirState

더보기

public class PlayerAirState : PlayerState

{

    // 플레이어가 공중에 있을 때 사용되는 기능 컴포넌트 

    

    public override void Enter()

    {

         base.Enter();

    }

 

    public override void Update()

    {

         base.Update();

    }

 

    public override void Exit()

    {

         base.Exit();

    }

}

  • 플레이어가 공중에 있을 때 상태 클래스
  • PlayerState를 상속받아 Enter(), Update(), Exit()를 재정의 하도록 했다.
  • 점프 시작/중/착지 상태들의 부모이므로, 공중에 있을 때 공통적으로 사용되는 컴포넌트를 가지고 있으면 되겠다.