[STARs] STAR, AnimatorOverrideController, EventBus
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
S - 상황
공부한 내용을 블로그에 포스팅 하는 빈도가 점점 느려지는 것을 느꼈다. 또 기록에 소요되는 시간이 많아 지속이 어렵다.
T - 임무
취업 준비를 위해 지속적인 경험 정리가 필요하므로, 새로운 방법을 강구할 필요성이 생겼다.
A - 행동
노션에 STAR 기법을 적용한 템플릿을 만들고, 그 양식에 맞추어 개별 문제 상황에 대해 기록했다. STAR의 각 항목은 최대한 간결하게 작성하여 나중에 참고하기 쉽도록 한다.
R - 결과
이 템플릿으로 총 [Field: NumOfPost]개의 주제에 대한 글이 작성되었고, 이 중 [Field: Subject] 에 대한 글이 이력서 작성에 활용되었다.
S - 상황
RPG 캐릭터 AnimatorController에서 사용한 StateMachineBehavior의 Serialized 필드 값을 수정할 때마다, 다른 캐릭터의 값도 동일하게 수정해야하는 번거로움을 인지했다.
T - 임무
컨트롤러 구성 요소들의 상태를 공유하여 다수의 캐릭터가 있더라도 AnimationClip만 교체하면 각 캐릭터의 컨트롤러로 사용할 수 있도록 하고 싶었다.
A - 행동
Prefab Variant를 배웠다는 사실을 기억해내어 AnimatorOverrideController기능을 찾았다. 플레이어 캐릭터의 베이스 컨트롤러로부터 각 캐릭터의 AnimatorOverrideController를 만들었다.
R - 결과
유니티의 Variant 개념이 다양한 컴포넌트에서 통용되고 있음을 알았다. 하나의 컨트롤러로 다수의 개체를 일관적으로 제어할 수 있게 되었다.
S - 상황
퀘스트, 인벤토리, 시나리오, 전투 등 RPG의 피쳐들끼리 의존성이 증가하여 코드가 읽기 어려워지고 확장이 어려워졌다. EventBus를 사용하였지만 각 이벤트의 호출 순서를 보장할 수 없었다.
T - 임무
이벤트를 안전하게 사용할 수 있는 환경을 구축하고, 호출 순서에 대해 보장한다. 예를들어, 퀘스트 수락시 Invoke되는 이벤트에서는 데이터 업데이트 이후에 UI업데이트가 이루어져야한다.
A - 행동
이벤트를 연쇄적으로 발생시켜 호출 순서를 보장한다. 구독시 리스너의 래퍼를 포함한 Token객체를 반환하고, 구독 해제시에 인자로 전달받아 래퍼를 안전하게 해제하여 누수를 방지했다.
R - 결과
이후 EventBus로 발생할 문제에 대해 고민하지 않을 수 있게 되어, 의존성 문제에 적극적으로 대처할 수 있게 되었다.
STAR - 오류 삼켜짐 현상
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

우리들의 게임 발매 이야기
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

