사다리 타는 기능에서 트리거 값을 체크하던 도중 한 가지 놓치고 있던 현상을 발견했습니다.

 

클라이언트에서도 상호작용 키를 누르고 있으면 replicated 되지는 않지만 사다리를 타는 것이 가능했습니다.

 

정확히는 트리거 중 MovementMode가 상호작용 중일 때에만 사다리를 타고 올라갈 수 있었습니다.

 

로그로 추측컨데 현재 등반 오브젝트의 collision area에 의한 문제라 예상됩니다.

 

현재의 등반 오브젝트는 bottom, top, middle area로 나뉘어져 있습니다.

 

각 area에 닿을 때마다 EnterDirection이 바뀌고, 사다리에서 내릴 때 ExitDirection이 바뀝니다.

 

그리고 사다리를 타기 위해서는 위 아래로 움직여야 하는데 일반 MovementMode에서는 이것이 불가능합니다.

 

때문에 각 area에 대해 Enter 할 때마다 MovementMode를 Flying으로, Exit 할 때마다 Walk로 변경을 합니다.

 

문제는 여기서 발생합니다.

 

캐릭터가 사다리에 탈 때 bottom area와 middle area에 동시에 collision 하면서 Enter과 Exit이 각각 2번, 1번 발생합니다.

 

아마 여기서 두번째 Enter가 Exit보다 먼저 일어나서 문제가 발생하는 것으로 예상됩니다.

 

여기서 이 작업을 그만둬야겠다는 생각을 굳혔습니다.

 

문제를 해결하고 가기에는 너무 난잡하였습니다.

 

각 area들이 동시에 collision 하지 않게 하면서 exit 조건을 변경해야 했습니다.

 

조건 변경은 넘어가더라도 area 배치는 상당히 손이 가고 반복적인 작업이라 계속 진행 하는 것은 낭비라고 생각되었습니다.

 

조금 이르지만, 우선 작업한 부분들을 PR 처리하고 다음 작업으로 넘어가고자 합니다.

 

새로 개발하는 등반 오브젝트는 예전에 적었던대로 Character에 collision area를 두고 MovementMode를 이용해 사다리 이벤트를 적용 할 예정입니다.

 

이에 따라 Ledge 기능 구현이 불가피하기에 Ledge 기능도 구현을 하고자 합니다.

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

20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20
20.02.17 개발일지  (0) 2020.02.17
20.02.15 개발일지  (0) 2020.02.15
20.02.13 개발일지  (0) 2020.02.13

+ Recent posts