작성
·
292
답변 1
0
유니티 에셋스토어에 적절한 플러그인이 있는지 찾아보시고,
마땅한게 없다면 직접 구현을 해야하는데..
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를 만나기 전까진 쭉 실행되다가,
해당 부분에선 실제 마우스 클릭 이벤트가 발생해야 다음으로 넘어가는 등의 처리를 해야겠죠.