본문 바로가기

Finite State Machines

유한 상태 기계(Finite State Machines, FSM) #1 (3/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. (2편에 이어서 계속) 우리의 첫번째 실용적인 유한 상태 기계 enemy에 대해서 더 주의깊게 생각하고, 상태를 정의한 다음, enemy들을 한 번에(at a time) 하나의 상태에 넣어보자. enemy는 다음 중 하나의 상태에 있을 수 있다 : sleeping, following, attacking, being hit, dying. 우리는 실제 다음과 같이 작동하기를 바란다: Part 1/Scene 2우리는 FiniteStateMachine1.cs파일을 만든 다음, 파일안에서 가장 먼저 해야할 일은 상태를 정의하는 열거형을 만드는 것이다: 0102030405060708091011public enum EnemyStates{.. 더보기
유한 상태 기계(Finite State Machines, FSM) #1 (2/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. *번역을 하면서 이해가 잘되지 않은 부분은 원문과 같이 배치하였습니다. (1편에 이어서 계속) 유한 상태 기계의 타입 많은 사람들이 알다시피, 유한 상태 기계를 만드는 것을 도와주는 많은 그래픽 툴이 있다. - 이 튜토리얼은 코드 기반의 FSM에 대한 것이다. 만약 그래픽 툴을 사용하고 싶다면, PlayMaker 또는 그외 경쟁사 제품을 확인해봐라. - 하지만 그래픽 툴을 이용하는 것은 스스로 코드를 작성하는 것보다 훨씬 더 많은 제약이 존재한다. 여기에는 2가지 형태의 코드 기반 FSM이 있다. Discoverable FSM/On Demand FSM 가끔씩, 특별한 목적으로 특정 시간에, 어떤 대상의 상태만 알면 되는 경우.. 더보기
유한 상태 기계(Finite State Machines, FSM) #1 (1/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. 튜토리얼의 첫 부분에서, 우리는 유한 상태 기계를 사용하는 이유를 파헤치고, switch문을 사용하여 이를 구현하는 가장 간단한 방법을 보여줄 것이다. Getting in a State? 당신이 작성하는 모든 프로그램은 상태 기계이다. if문을 작성하는 순간에도, 적어도 2개의 상태중 하나를 만든 것이다. - 코드를 작성할수록, 프로그램에는 더 많은 상태가 들어갈 것이다. switch와 if문의 과도한 사용은, 겉으로 이해하기 힘든 이상한 버그들과 함께, 해결방법의 복잡성은 증가하고 컴포넌트간의 상호작용은 예기치 않은 결과를 초래하면서, 감당할 수 없게 될 것이다. 당신의 프로젝트는 확장하기 어려워 지게 되고, 심지어 개념화.. 더보기