문제 인식

서버와 클라이언트 통신간 플레이어 상태에 따른 애니메이션 변경 처리에 문제가 발생했습니다.

🚫 문제점

원인 파악

SetState 메서드

public void SetState(PlayerState state)
{
    if (currentState == PlayerState.Die)
        return;

    if (state == PlayerState.Die)
    {
        currentState = state;
        SetAnim((int)state);
        myCollider.enabled = false;
        IsDie = true;
        DieStart();
        return;
    }

    C_AnimationPlayer enterPacket = new C_AnimationPlayer { AnimCode = (int)state, MonsterIdx = -1 };
    GameManager.Network.Send(enterPacket);
}

🔍 분석

해결 과정

메서드 오버로딩을 통한 다형성 구현

SetState(PlayerState state)
SetState(PlayerState state, int monsterIndex)
SetState(PlayerState state, TransformInfo tr)

플레이어 애니메이션 상태별 변경 처리 개선

public void ReceiveState(PlayerState state, int monsterIndex)
{
    if (state == PlayerState.Die)
        return;

    playerAttack.targetMonster = DungeonManager.Instance.activeMonsters[monsterIndex];
    currentState = state;
    SetAnim((int)state);
    transform.LookAt(DungeonManager.Instance.activeMonsters[monsterIndex].transform);
    Move(transform.position, Quaternion.identity);
}

유지보수성 개선