240220-TIL

2024. 2. 20. 21:39내일배움캠프

2월 20일

 

오늘도 열심히 유니티 공부중이다.

 

공부하다보니 성향이 약간 바뀌었는데 예전엔 오류만 뜨면 머리부터 부여잡고 고통스러워 했지만....

 

이젠 오류를 해결하기 위해 머리를 쓰다보면 뇌가 피에 살포시 절여지는 그 느낌을 즐기고있다.

 

어제에 이어서 FSM에 대해 TIL에 정리해 보도록 하자

 

FSM

더보기

어제 우리는 FSM이 도대체 무엇인가 어떤 장점이 있는가에 대해서 알아보았다.

 

강의에서 다루는 FSM은 한번에 정리하기도 볼륨이 너무 클 뿐더러 아직 전체적인 코드의 흐름을

 

머리속에 정리하지 못하였기 때문에 오늘은 다른 예제 코드와 함께 

 

기본적인 방법으로 FSM을 구현하는 방법에 대해서 알아보도록 하자.

 

우리는 플레이어의 동작을 구현하는데에 3가지를 생각해볼수 있다

 

기본상태에서 -> 어떠한 키 입력을 통해 -> Move 상태로

Move상태에서 -> 어떠한 키 입력이 종료되면 -> IDle 상태로

..... 

FSM의 핵심은 단 하나의 상태만을 가진다는 점 내 상태를 기준으로 어떤 동작을 수행할지 결정한다.

 

using UnityEngine;

public class Player : MonoBehaviour
{
	private enum State
    {
    	Idle,
        Move,
        Attack
    }
    
    private State _state;
    
    void Start()
    {
    	_state = State.Idle;
    }
    
    void Update()
    {
    	switch(_state)
        {
        	case State.Idle;
            	break;
            case State.Move;
            	break;
            case State.Attack;
            	break;
        }
    }
}

 가장 간단한 방법으로 FSM을 구현하는 방식이다 enum으로 각 상태의 State을 만들어 놓고

 

swtich - case 문에서 각 상태별로 행동을 구현해 주면 된다.

 

오늘은 간단히 FSM을 구현하는 방법에 대해서 알아보았다.

 

하지만 이런 방법은 플레이어의 캐릭터가 다양해지고 여러 종류의 캐릭터를 구현한다고 하면 적합한 방식은 아니다.

 

최대한 간단히 내가 이해한 범주의 FSM에 대한 내용이고 좀더 학습이 되면 다시 TIL에 정리 해보도록 하겠다.

 

2월 20일 TIL은 여기서 마치도록 하겠다.

 

 

 

'내일배움캠프' 카테고리의 다른 글

240223-TIL  (0) 2024.02.23
240221-TIL  (0) 2024.02.21
240219-TIL  (0) 2024.02.19
240216-TIL  (0) 2024.02.16
240215-TIL  (0) 2024.02.15