오늘은 Attach Puzzle의 남은 기능을 개발하고, Master에 Merge하였습니다.

 

첫번째로, Attach시 Index 로그를 찍어 Piece Exchange가 되는지 확인하였습니다.

 

확인 결과 정상적으로 Exchange가 되는 것을 확인하였습니다.

 

두번째로, Latch에 Piece가 Submit 될 때 정답 여부를 체크하는 기능을 적용하였습니다.

 

이는 간단한 함수를 통해 확인 할 수 있었습니다.

 

세번째로, Latch에 정답 Piece가 모두 적용이 되면 벽이 내려가는 기능을 적용하였습니다.

 

이는 이번의 Destroy Puzzle과 구현이 조금 달랐습니다.

 

Destroy Puzzle은 Event 주체가 Piece라서 관련 Event Dispatch를 Puzzle에서 적용할 수 있었습니다.

 

하지만 Attach Puzzle은 Event 주체가 Character라서 이 작업이 Character에서 이루어졌어야 했습니다.

 

그래서 C++ 코드상에서 Attach Puzzle Base에 Event를 선언하고, BP에서 Dispatch를 하였습니다.

 

그리고 Character에서 Piece를 Submit 한 직후, 정답 여부를 확인합니다.

 

만약 해당 Submit이 올바르면, 모든 Latch의 정답을 확인합니다.

 

이 때 모든 값이 정답이면, Dispatch 된 함수가 선언 되면서 벽이 올라오게 됩니다.

 

코드상 구현은 이것이 전부였습니다.

 

하지만 가장 큰 문제가 있었습니다.

 

PR 과정에서 conflict가 발생한 것이었습니다.

 

이를 수정하기 위해 1시간 가량 시도하였지만, 점점 더 꼬이는 것을 느꼈습니다.

 

그래서 Reset-hard를 통해 문제를 해결하였습니다.

 

이로서 한달 넘게 진행되던 Trap/Puzzle 마일스톤이 종료되었습니다.

 

정확히는 일주일이 넘은 기한이었는데, 그 연장된 기한 중 하루가 남았습니다.

 

이 하루동안 이슈를 정리할 예정입니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.04.06 개발일지  (0) 2020.04.06
20.04.04 개발일지  (0) 2020.04.04
20.04.01 개발일지  (0) 2020.04.01
20.03.30 개발일지  (0) 2020.03.30
20.03.28 개발일지  (0) 2020.03.28

오늘은 Piece와 Latch들간의 Interaction 부분의 문제를 수정하였습니다.

 

처음 한 2시간은 디버그를 돌려보면서 트리거가 문제가 생기는 부분을 체크해보았습니다.

 

그런데 버그 여부를 떠나서 정확히 어느 상황에서 버그가 나는지를 인지할 수 없었습니다.

 

그래서 다시 종이와 펜을 들고 순서도를 다시 그리기 시작했습니다.

 

주요 골자는 다음 두가지입니다.

 

1. Front Trigger와 Overlap을 통해 저장되는 Piece를 OverlappedPiece와 AttachedPiece로 분리

2. AttachPiece와 Latch의 Area에 OverlapEvent를 제거

 

1번은 Front Trigger가 여러개였기에 특히 의도치 않은 Trigger 값의 변화를 야기했습니다.

 

이를 캐릭터가 소지중인 Piece와 앞에 놓여진 Piece로 분류를 하였습니다.

 

이와 동시에 조건을 조금 더 세세하게 나누어 오류가 발생하는 것을 줄였습니다.

 

2번은 개발 하는 도중에 깨달은 점이었습니다.

 

어차피 상호작용이 일어나기 전에는 Piece나 Latch의 범위 안에 들어오든 말든 아무 의미가 없었습니다.

 

그리고 Front Trigger가 존재함으로서 필요한 Trigger 값의 변화는 오히려 이 쪽에서 발생하는 것이 자연스러웠습니다.

 

그래서 Piece, Latch에서 발생하는 모든 Trigger 변화와 overlap event를 제거하였습니다.

 

대신 OnInteractionPressed와 OnInteractionReleased 함수에서 기존의 InteractionType 변화를 넣어주었습니다.

 

이로써 Character의 Interaction에 필요한 정보는 Front Trigger의 overlap 이벤트에서, 

 

Interaction의 구분과 그에 대한 동작은 OnInteractionPressed/Released 함수에서 담당합니다.

 

그럼에도 아직 한가지 오류가 있습니다.

 

Latch에 Attached 되어 있던 Piece를 Detach 하고 있으면 Character가 이상한 곳으로 튀어버립니다.

 

내일은 이 오류를 중점적으로 수정하고, Piece Switch 기능을 검수할 예정입니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.04.04 개발일지  (0) 2020.04.04
20.04.02 개발일지  (0) 2020.04.02
20.03.30 개발일지  (0) 2020.03.30
20.03.28 개발일지  (0) 2020.03.28
20.03.26 개발일지  (0) 2020.03.26

오늘은 Refactoring 과정에서 작동하지 않았던 Component 값 읽어오는 기능을 적용하였습니다.

 

Json에 저장되어 있던 Data들을 읽어서 UI에 적용하는 기능입니다.

 

이전 개발 때 예상 했던 것과 마찬가지로, File을 읽어오는 기능보다 읽어온 Data를 가져오는 기능이 먼저 호출되어서 nullreference가 발생하였습니다.

 

우선은 호출 때마다 새로 읽어오는 방향으로 구현을 해놓고 차안을 나중에 적용할 생각이었습니다.

 

하지만 그 시기가 지금 당장으로 당겨졌습니다.

 

게임을 실행 시 Component 정보를 초기화 하는 기능은 위 방법으로 구현이 불가능하기 때문입니다.

 

이를 해결하는 방법으로 다음을 생각하고 있습니다.

 

1. 특정 함수가 완전히 작동될 때까지 다른 함수를 정지시킨다.

 

2. 특정 함수가 작업을 마무리하면 정지된 함수들을 작동시킨다.

 

고려해야 할 점은 이 과정에 Start 함수가 엮여 있다는 점입니다.

 

금요일에는 coroutine을 살펴보고, 이를 적용해볼 생각입니다.

 

 

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.04.07 개발일지  (0) 2020.04.07
20.04.03 개발일지  (0) 2020.04.03
20.03.27 개발일지  (0) 2020.03.27
20.03.24 개발일지  (0) 2020.03.24
20.03.20 개발일지  (0) 2020.03.20

+ Recent posts