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

문경민님의 프로필 이미지
문경민

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

기획적인 질문!

작성

·

292

0

안녕하세요 강사님!

최근에 수강신청하고 정말 열심히 듣고 있습니다. 강의 감사합니다!

저희가 배우는 주제와 조금 다른 질문일 수는 있지만 너무 궁금해서 질문 남깁니다!

제가 Coffee Talk 와 va-11 hall-a 같은 비주얼노벨 형식으로

중간중간 선택지와 간단한 게임 이벤트가 있는 쪽으로 개발 방향을 잡고 싶은데

짜인 텍스트를 계속 불러오면서 게임이 진행되기 위해서는 어떻게 해야 할까요?

자세한 방법을 알고 싶다기보다는 대략적인 설명만 들어도 충분할 것 같습니다!

답변 1

0

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

유니티 에셋스토어에 적절한 플러그인이 있는지 찾아보시고,
마땅한게 없다면 직접 구현을 해야하는데..

1)
게임 규모가 크지 않고 정말 정말 무식하게 한다면,
state 패턴과 비슷하게 현재 상태와 매핑되는 코드를 하드코딩으로 관리할 수 있습니다.

void Update_State1()
{
   // Text 설정 ...
   // 기타 Sprite 설정 ...    

   if (Input.MouseButton(0))
      _state = State.State_2;
}

2)
게임 규모가 더 크고 우아하게 처리한다면,
일종의 자체 제작 EventSystem을 만들고 Event 데이터를 xml이나 json으로 빼서 관리를 할 수 있겠습니다.

<Event id="10" name="PrayTalk">
    <SpriteEvent name="bar" type="background" spritePath="UI/Sprite/bar"/>
    <TextEvent title="프레이" context="맞아요. 흥미로운 작업이지만..."/>
    <SpriteEvent ... > 
    <WaitMouseButtonEvent />
    <TextEvent title="프레이" context="뭐라고요?"/>
    <SpriteEvent ... > 
</Event>

실제 RPG 게임에서 던전 이벤트도 비슷한 방식으로 만들어집니다.
(영상 뜨다가 뭘 누르면 보스가 등장하는 등)

대신 초기 프레임워크를 만드는데 조금 고생을 해야 합니다.
예를 들어 위의 WaitMouseButtonEvent를 만나기 전까진 쭉 실행되다가,
해당 부분에선 실제 마우스 클릭 이벤트가 발생해야 다음으로 넘어가는 등의 처리를 해야겠죠.

문경민님의 프로필 이미지
문경민

작성한 질문수

질문하기