강의, 책/[Unity] C#과 유니티로 만드는 MMORPG 게임 개발 시리즈

Section 6. Animation - State 패턴

hye3193 2024. 1. 24. 20:30

여러가지 상태들을 bool 변수로 두고 관리하다 보면 스파게티 코드가 되어버려 점점 요소를 추가하거나 관리하기가 힘들어진다

따라서 이들을 state 패턴으로 관리하면 편하다

 

PlayerController 스크립트에서 다음과 같은 열거형을 만들어준다

public enum PlayerState
{
    Die,
    Moving,
    Idle,
}

PlayerState _state = PlayerState.Idle;

 

그리고 Update함수에서 switch 문을 활용하여 분기를 만들어주고, 각 함수에 기존 동작들을 넣어준다

void Update()
{
    switch (_state)
    {
        case PlayerState.Die:
            UpdateDie();
            break;
        case PlayerState.Moving:
            UpdateMoving();
            break;
        case PlayerState.Idle:
            UpdateIdle();
            break;
    }

이렇게 코드를 작성하게 되면, 각 동작들이 서로 꼬이지 않고 동작할 수 있다