오늘도 대부분의 시간을 Overlap Event와의 씨름으로 보냈습니다.

결론을 적자면, 함수 길이 축소나 Event에 부착하는 위치는 전혀 문제가 해결되지 않았습니다.

 

하지만 의외의 부분에서 해결의 실마리를 찾았습니다.

이전에 Log Category Customize를 하면서 새로 정리할 Category들을 선언해두었습니다.

나중에 할 일을 줄이기 위해, 이 이후에 호출하는 Log는 모두 새로 만든 Category들을 쓰고 있습니다.

혹시 이 부분이 문제인가 싶어서 이를 예전에 선언한 Category로 선언을 하였더니, Crash가 났습니다.

빌드상에 문제가 있나 싶어 프로젝트 재생성을 한 뒤 빌드를 하였으나, 여전히 crash가 났습니다.

 

때문에 아예 함수를 새로 작성하고 Event에 함수를 부착하는 작업을 초기화 함수 내부로 옮겼더니 정상 작동하였습니다.

함수 내부 내용은 거의 변하지 않았습니다.

그저 새로 생성 했을 뿐인데....

마가 꼈다고 밖에 설명이 되지 않은 것 같습니다.

 

오늘은 이 문제 해결에 너무 많은 정신력을 쏟아부었습니다.

각 함수 내에 구현해야 할 부분은 다 메모했으니, 토요일에는 그 부분을 우선적으로 구현 할 것입니다.

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

20.05.11 개발일지  (0) 2020.05.11
20.05.09 개발일지  (0) 2020.05.09
20.05.06 개발일지  (0) 2020.05.06
20.50.04 개발일지  (0) 2020.05.04
20.04.30 개발일지  (0) 2020.04.30

오늘은 ClimbTrigger에 이벤트를 적용하다가 하루가 다 지나갔습니다.

 

결론부터 말하자면, 뭐가 문제인지 모르겠습니다.

 

BP_THCharacter의 View

이것이 제가 지금 쓰는 예시 Character입니다.

THCharacterBase라는 C++ class를 생성하고, BP로 구현한 것으로, Overlap Event는 C++ 상으로 구현되어 있습니다.

3개가 나란히 배치되어 있는 것이 ClimbTrigger들이고, 이들과 겹쳐있는 세로로 긴 것이 InteractionTrigger입니다.

 

InteractionTrigger를 초기화 하는 함수

이 함수는 InteractionTrigger를 초기화 하는 함수로, 생성자에서 호출이 됩니다.

내부에는 사이즈, 기준 component, Collision 등이 설정됩니다.

 

ClimbTrigger를 초기화 하는 함수

이 함수는 ClimbTrigger를 초기화 하는 함수로, 역시 생성자 안에서 호출이 됩니다.

이 함수에는 OnComponentBegin/EndOverlap 이벤트에 함수가 할당되지 않는데,

ClimbTrigger별로 다르게 기능이 작동해야 해서 이 함수 호출 후 생성자 내에서 따로 할당하고 있습니다.

 

보시는 것과 같이 두 함수의 기능적인 큰 차이는 없습니다.

하지만 Interaction은 잘 작동하는 반면, Climb은 작동하지 않습니다.

 

이 문제를 해결하기 위해 다음과 같은 방법을 구현해 보았습니다.

1. BP에서 직접 함수를 할당한다. -> 정상적으로 함수가 실행 됨.

2. BP에서 직접 CPP상에서 할당했던 함수를 재할당한다. -> 재할당된 함수는 작동하지 않음.

3. ClimbTrigger와 InteractionTrigger가 서로 닿지 않도록 위치를 조절 -> 여전히 작동 안함

4. 초기화 함수 내부에서 Event에 함수를 할당함 -> 여전히 작동 안함.

 

처음에는 BP에서 하나하나 선언해줄까 했지만, 구현하는 기능이 특정 Character만 해당되는 것이 아니라
모든 Character들에게 공통적으로 구현되어야 하기에 CPP에서 구현되어야 할 것 같습니다.

 

BP에서 직접 할당하면 작동하는 것으로 보아 Trigger 선언에는 문제가 없는 것 같습니다.

 

내일은 할당을 BeginPlay나 PostInitialize에서 해보거나,
함수들의 이름을 더 짧게 줄여볼 생각입니다.

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

20.05.09 개발일지  (0) 2020.05.09
20.05.07 개발일지  (0) 2020.05.07
20.50.04 개발일지  (0) 2020.05.04
20.04.30 개발일지  (0) 2020.04.30
20.04.29 개발일지  (0) 2020.04.29

링크 : acmicpc.net/contest/view/116

 

2015 ACM-ICPC 연습

 

www.acmicpc.net

1. 첼시를 도와줘!(해결)

그룹 내 선수 가격과 이름들을 입력받고 가장 가격이 높은 선수 이름을 출력하는 문제.

입력 받으면서 이전 입력된 선수 가격보다 비쌀 경우 저장. 아닐 경우 제거.

최종적으로 저장된 선수 이름 출력.

 

2. Forgger(미해결)

다른 개구리를 밟고 넘어서야 이동 가능한 개구리가 있다.

발판이 된 개구리는 사라진다.

(X, 0)에 있는 파리를 잡아 먹기 위해 {(x, y) | x <= 0, y는 정수}에 배치되어야 하는 개구리의 수를 구하는 문제.

 

처음에는 지수함수 형태로 증가하는 줄 알았으나, 오류가 나서 X = 4일 때를 한번 구해보았습니다.

상당히 복잡했으나 그 결과 값을 구했고, 이는 복잡한 계차함수를 나타내고 있었습니다.

식은 대략 diff[index] = Sum[i = 1 to index](diff[index - i] * i)이며

주어진 예시가 0<=X<=31인데 X가 31이면 long long 범위를 넘어서버립니다.

 

현재 이 마지막 X = 31인 케이스 처리를 앞두고 구현을 멈췄습니다.

 

3. 꿍의 여자친구(미해결)

상대 여성의 이상형 매력 포인트의 조합으로 받고,

각 매력에 대한 코스트를 계산하여 이상형에 가까워지는데 필요한 최소한의 코스트를 계산하는 문제.

 

입력받는 데이터를 split으로 분리해야 하는데 이 과정에서 문제가 발생함.

 

하루에 시간을 정해놓고 문제를 푼 뒤 못 푼 문제는 넘어가는 것보다,
테스트를 하나 정해서 안에 있는 문제를 다 풀고 넘어가려 합니다.

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

20.06.02 2015 ACM-ICPC 연습  (0) 2020.06.02
20.05.26 - 2015 ACM-ICPC 연습  (0) 2020.05.26
20.05.19 - 2015 ACM-ICPC 연습  (0) 2020.05.19
20.05.12 - 2015 ACM-ICPC 연습  (0) 2020.05.12
알고리즘 일지입니다.  (0) 2020.05.01

+ Recent posts