[WP] 이벤트 시스템 구현

혀니앤·2022년 9월 27일
1
post-thumbnail

💬 이벤트 시스템 아이디어

이런 방식으로 이벤트를 관리하고자한다

원래는 그냥 스크립트 자체를 컴포넌트로 추가하는 방식으로 하려고했지만

스크립트를 이벤트 오브젝트에서 참조하는 방법을 찾지 못해서 프리팹으로 처리하기로 했다

싱글톤 관리

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hana100494&logNo=221338017656

팁 글을 보고 프리팹을 사용하기로 했다

프리팹을 이용해서 이 오브젝트들이 한번에 수정되게 할 수 있다

🐞 스크립트를 추가할 수 없음 에러

보통은 네이밍 오류라고하는데, 그건 아니었다..
껐다 켰더니 괜찮아졌다..

🔔 이벤트 제작

우선 입장 시에 발생하는 이벤트까지는 제작이 끝났다

단순 대화만 발생하는 이벤트를 위해 좀더 간략하게 만들어야하나 싶긴하지만,, 일단 확장성을 위해 거창하게 만들어보자

현재 다음으로 이동하는 코드가 제대로 작동하지 않는다

대화 중 이벤트 진행 불가하게 수정

private void Update()
    {
        if(EventQueue.Count>0 && EventQueue.Peek() != null && !IsInEvent && 
					CurrenEvent.IsRunable() && !FindObjectOfType<DialogueManager>().inConversation)
        { //계속해서 제일 앞의 이벤트 Listen
            Debug.Log("이벤트 시작 , " + CurrenEvent.name);
            IsInEvent = true;
            CurrenEvent.RunEventAction();
        }
    }

대화중일 때에 이벤트를 진행할 수 없도록 수정했다.

👀 이벤트 진행상황

대화중 옐로우 출력되는 것 완성

출력됨과 동시에 BGM도 Yellow로 변경되게 했다

대화에 따라 표정도 바뀌도록 설정을 끝냈다

❗ 최종 이벤트 시스템 도식화

Sciprtable Object와 Prefab들을 사용해서 구현했다
SceneManager가 전반적인 이벤트를 담당해서,DialogueManager 등의 외부 시스템을 사용하는 경우 이벤트가 끝나면 콜백함수로 SceneManager의 함수를 호출한다.

profile
일단 시작하기

2개의 댓글

comment-user-thumbnail
2022년 9월 28일

이벤트 시스템 구현 아이디어 멋지네요 ^^ 많은 도움 얻고 갑니다!

1개의 답글