이벤트를 만들때
408
작성한 질문수 13
퀘스트를 응용해서 이벤트를 만들려고합니다.
이벤트는 단순히 퀘스트를 상속받아서 하면될거같은데 문제는 이벤트 발생시 각 발생 프로세스를 어떻게 구현할지가 고민입니다.
예를들어 어떤 이벤트는 공간 이동후 적이 몰려오는 이벤트가있고 또 어떤 이벤트는 공간 이동 후 인질을 구출하라는 이벤트가 발생 하는식인데
이벤트를 스크립터블 오브젝트로 만들고 거기에 변수로 이벤트 액션이라는 스크립터블오브젝트를 만들어서 해당 이벤트 액션에 각 기능 프로세스를 구현 하려고했는데 변수 세팅하기가 힘들고 먼가 하드 코딩이 될거같아요..
혹시 저런식에 이벤트를 어떻게 만드는게 깔끔한가요??
답변 1
0
안녕하세요.
정확히 만들려고하시는 것이 어떤 것인지 정보가 부족하여 답변이 부정확할 수 있는 점 양해부탁드립니다.
제가 이해한바에 따르면 Quest를 상속받는 Event를 만들고, Event Action으로 몬스터 웨이브, 인질 구출을 구현하시겠다는 얘기 같은데요, Event Action으로 통일 시키는 것보다는 각 기능을 따로 구현하는게 나을 것 같습니다.
예를 들어, 몬스터 웨이브는 EnemyRaidSytem을 만들어서, 공간 이동 로직이 실행된 후 코드나 Trigger를 통해서 EnemyRaidSystem을 Start하여(EnemyRaidSystem.Start()) 적이 몰려오게하고(만약 몬스터 웨이브를 모두 막아내야 공간에서 탈출할 수 있는 Event라면 몬스터 웨이브를 막아내는 Quest도 주면 될 것 같습니다.),
마찬가지로 인질 구출은 공간 이동 로직이 실행된 후 코드나 Trigger를 통해 인질을 특정 위치로 데려가거나 인질 주변의 적을 모두 제거하면 완료되는 Quest를 부여하는 방식으로 구현할 수 있을 겁니다.
몬스터 웨이브, 인질 구출은 객관적으로 봤을 때 구조적 통일성이 없기 때문에, 로직을 억지로 통일 시킬려고하면 반대로 통일 시키지 않은 것보다 못하게 코드가 꼬일 수가 있습니다. 스스로 판단했을 때 '규모가 크다' 싶은 시스템과 '통일성이 없다' 여겨지는 시스템은 따로 구현하고, 필요한 곳에서 그 시스템을 실행하는 방식으로 구현할 필요가 있습니다.
감사합니다.
Task 구현 28:36 Equals 에서 잘 모르는 부분이 있습니다.
0
31
2
Quest System의 확장성에 대한 질문
0
109
1
공부 방향에 대해 궁금한 점이 있습니다.
0
147
2
End()와 Complete() 함수를 따로 구현한 의도
0
171
2
Target의 value에 Object 자료형 관련 질문입니다!
0
153
2
TaskGroupState에 대하여 질문이 있습니다
0
115
2
Elite와 Normal Germ의 IsTarget()질문입니다.
0
102
2
퀘스트 시스템을 확장하면서 생긴 의문점 입니다.
0
169
2
퀘스트 클리어해도 동일 퀘스트가 노출됩니다
1
133
3
퀘스트 누적 클리어 횟수에 대해 여쭤보고싶습니다.
0
89
1
프로퍼티 사용 질문입니다.
0
123
1
Task 에서 Object 타입 사용
0
124
2
파일 저장방식, 퀘스트 실패에 관하여 여쭤보고싶습니다.
0
222
1
Destroy() 지연 파괴에 관하여
0
143
1
Action & Delegate
0
183
2
강의에서 리워드 관련 언급은 없으셔서 질문드립니다.
0
282
1
궁금한게있습니다
0
298
1
스크립터블 오브젝트 Instantiate?
0
443
1
원하는 타이밍에 퀘스트를 등록하고 싶다면 어떻게 해야할까요
0
344
1
Quest Cancel() 메소드
0
269
2
Task의 IsEqual
0
232
1
실전예제 UI 자료
0
200
1
스크립터블 오브젝트
1
333
1
Task 예시
1
173
1





