viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e4935a2fe2e7c222c4064df6


이번엔 퀘스트를 구현해봤어


기본 알고리즘부터 설명해볼게


모든 퀘스트 n개와 진행할 수 있는 최대 퀘스트 3개.


그리고 퀘스트의 상태는 0 1 2 3으로 나눠서


0은 비활성화상태(퀘스트진행가능)

1은 진행상태(현재 진행중이고 퀘스트3개값에 포함)

2는 완료가능상태

3은 퀘스트비활성화상태.(다시 퀘스트 진행이 불가능)


이렇게 정했어


그럼 일단 모든 퀘스트 n개의 대한 배열과 각 퀘스트 n개에 대한 상태체크용 배열이 필요해


퀘스트 n개에다가 그대로 사용하면 되는거 아니냐 라고 생각했는데.


그러기에는 퀘스트도 각각의 구분이 가능하기위해 중복되지 않는 숫자를 사용해야 되서 따로 배열을 추가했어.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0b25b4fa26e312d559ba410ca76fcf4b56673d7922c61b2a1

request는 내가 아무생각없이 만들고 사용을 안했어 나중에 지울거야

quest 1 2 3은 quest에 키값들을 집어넣어서 진행 때 엇갈리지않도록 진행할 퀘스트창같은거야. 배열 써도 될거같긴한데 난 5개이상 아니면 그냥하는게 좋더라.




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e4c40329b6eec028ab8524ab

대화창이 좀 많이 많은데.

평소에 대화할 때 대사.

퀘스트를 진행할 때 대사.

퀘스트를 받아줬을 때와 안받아줬을 때의 대사.

퀘스트 진행중일 때 조언을 해주는 대사.

퀘스트 완료했을 때의 대사.

이렇게 정했고.

각 각 하나씩만 있는건 너무 조잡해보여서

두개 이상 집어넣고 랜덤출력을 하는 식으로 만들려고해.


아직 구현은 안했어.


questNumber는 배열 구분을 해주기 위해서 만들었어.

예를 들어서 이 NPC는 4번 째 퀘스트를 진행시켜주는거야 라고 하면. NPC의 questNumber는 4가 되는거지.


dialogueCount는 위에 랜덤출력을 하거나 아니면 여러번 대화했을 때 카운트가 올라서 대화가 바뀌는걸 해보고싶어서 집어넣었어


물론 구현은 안했어 아직.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e4c75428b6eb9228779e7efe

퀘스트창에 해당 퀘스트를 넣거나 빼는 함수를 만들었어.

순서대로 1 2 3 안에서 꽉찼을 경우에는 따로 대사를 만들건데 그건 아직 구현 못했어


지금 보니 구현을 대부분 못했네ㅅㅂ



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e694017ab0bc9725de7f9d6a

내가 질문하면서 적었던 코드가 이 코드야.


이프문을 3중으로 쓸까 말까 하다가 코드보기좋게 2중으로 하고 함수를 따로 만들어서 실행하라는 걸 보고 해봤어.


전체적으로 보기에는 정말 간단한데 구체적으로 세밀하게 조작하려니까 정말 어렵더라.


생각도 잘 안굴러가고 멍청하다는걸 좀 많ㅇ ㅣ깨달았어.


배열에 questNumber값을 넣어서 퀘스트를 확인하고 그 상태에 따라서 나눴어.


0일경우에는 일반적인 진행을 하고 1일 때는 조언을 해주며. 2일 때(완료시)의 대사와 3일 때(완료 이후)의 대사로 나눴어.


솔직히 이건 대사 하나하나 작성하는게 더 귀찮더라. 뭔가.., 뭔가 그래 나만 그래?


코루틴들까지는 전부 쓰기에는 대화창 자체를 다 찍는거라서


내가 귀찮아


그러니까 이정도까지만 설명할게




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f08fa186df5d4ea76bc6688925b77eda6e36368908802426


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f08fa186df5d4ea76bc6688922b17d886d61358d08802426


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f08fa186df5d4ea76bc6688922e42c89636534da08802426


대충 이런식으로 굴러가더라


따로 스크립트를 더만들어서



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e797542ae1bf92231227b617


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e1c15221b6ee9c26e4c84f38


이렇게 완료로 변환 가능하도록 만들었어.


박스컬라이더 잡아다가 ㅋㅋ



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7b7c1512cb6e890250f64a88b


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e6960379b6e6c121bcd8af2e


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7e1ca537eebbc952775d86cbf


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f0caf4d0df364da668eb5f3962adbacff7b6c0547aebef9573d56bd821


이게 인스팩터 내용



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f08fa186df5d4ea76bc6688925e67a8a6963308e08802426


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc8eae38388b589ceb1746f08fa186df5d4ea76bc6688922b72a8f3d60348808802426

퀘스트 인스펙터 변화까지.


다음은 전부 완성하면 그떄 말해줄게


혹시 좀 더 좋은 방법이나 간편해지거나 최적화하는 방법이 있다면 알려줬으면해


내가 유니티를 만져보는것도 C#을 만져보는것도 이번이 처음이라서 이런방식 왜 안하노 병신아 해봤자 내가 그걸 아예 모르니까ㅠ