턴제 게임에서 플레이어 캐릭터의 차례가 오면 크게 4가지 행동을 취할 수가 있다.

 

1. 공격 하기 

2. 자리 교체(이동하기)

3. 아이템 사용

4. 가만히 있기 (할 수 있는게 없을 때)

 

이렇게 행동 상태를 저장해서 마우스 클릭 시 선택된 행동을 실행할 수 있게 해보자!


1. 먼저 행동 상태를 저장하는 변수들을 선언한다.

    // 필요한 정보
    private enum PlayerAction { None, Attack, Move, Item }
    private PlayerAction currentAction = PlayerAction.None; // 기본상태는 일단 None;

2. 행동 상태에 따라 실행하는 코드 틀을 잡는다.

switch (currentAction)
{
    case PlayerAction.Attack:
        break;
    case PlayerAction.Move:
        break;
    case PlayerAction.Item:
        break;
    default:
        Debug.Log("행동을 선택해주세요");
        break;
}

2-2. 현재 만들고 있는 게임 프로젝트에 적용한다면 이렇게 적용시킬 수 있다.

// 마우스 클릭 -> 정보 넘기기
private void MouseClick()
{
    if (Input.GetMouseButtonDown(0) && selectArea != null)
    {
        switch (currentAction)
        {
            case PlayerAction.Attack:
                if (!isFriend) {
                    DirectPlayer_AttackToEnemy(selectArea);    // 적군 공격 명령
                    currentAction = PlayerAction.None;         // 행동 후 초기화
                }
                break;
            case PlayerAction.Move:
                if (isFriend)
                {
                    DirectPlayer_Move(selectArea);      // 아군 지형 이동 명령
                    currentAction = PlayerAction.None;  // 행동 후 초기화
                }
                break;
            case PlayerAction.Item:	// 아직 아이템은 미구현
                break;
            default:
                Debug.Log("행동을 선택해주세요");
                break;
        }
    }
}

 

마우스를 클릭했을 때 행동 상태에 따라서 PlayerController가 명령을 내릴 수 있다

+ Recent posts