인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

강한님의 프로필 이미지

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

MonoStateMachine을 만든 이유가 잘 이해가 가지 않습니다.

해결된 질문

작성

·

65

·

수정됨

0

StateMachine을 순수 C# 클래스가 아니라 MonoBehavior를 상속시켜서 구현하면 Wrapping 과정을 할 필요 없이 MonoStateMachine의 역할을 그대로 할 수 있지 않나요?

StateMachine자체가 유니티와 독립적으로 돌아가는 순수 로직 클래스라 분리하신건지 만약 그렇다면 분리했을 때 추후에 어떤 장점이 있는건지, 아니면 다른 의도가 있으신건지 궁금해서 질문 올렸습니다.

답변 1

1

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다.

 

StateMachime을 MonoBehaviour를 상속 받아 만들면 비 GameObject 객체에 사용할 수 없습니다. 예를 들어, 강의의 Skill은 SO 객체이므로 Mono가 아닌 일반 클래스로 만들어진 StateMachine이 필요합니다. 개발을 하다보면 비 GameObject에 대한 Logic 제어가 필요한 부분이 꽤 많기 때문에 우선적으로 모든 class에 범용적으로 사용할 수 있도록 일반 class의 StateMachine을 만들어준 뒤, GameObject일 경우 쉽게 StateMachine을 갈아낄 수 있도록 MonoStateMachine을 만들어준 것입니다. 굳이 얘기드리자면 MonoStateMachine을 만들 필요는 없는데 편의성을 위해서 만들어준 것입니다.

 

감사합니다.

강한님의 프로필 이미지

작성한 질문수

질문하기