1. 벡터 사이의 거리 구하기에서 이 기능은 함수로 구현되어 있을 것 같아서 찾아보았다.
this->Distance = FVector::Distance(CurrentLocation, AfterLocation);
위 함수가 벡터 CurrentLocation와 벡터 AfterLocation의 사이 거리를 구하는 함수이다.
2. count가 10의 배수일 때마다 이벤트 출력을 해야되는데, 저는 이때 조건으로 a % 10 == 0으로 걸었더니,
언리얼에서는 0도 나눠지는걸로 취급을 해서 프로그램을 시작하면 바로 이벤트가 발생한다.
이를 방지하기 위해, 조건문에 count가 0보다 크다는 조건을 추가하는걸로 해결했다.
3. 이벤트가 발생을 Tick에서 실행해서, 카운트의 숫자가 10의 배수가 되면 count값이 1이 증가하기 전까지 몇십개의 오류가 연속으로 실행되게 된다.
이를 해결하기 위해, 이벤트 발생 후 this->lock = 1;으로 락을 걸어서 이를 방지하였다.
4.

10회 이동시 마다 50%의 확률로 이벤트를 실행하게 하는 기능을 구현할 때,
랜덤값을 반환하는 함수가 매초 60프레임으로 호출하고 있어서, 그 중 한번이라도 1이 나오면 이벤트가 발생하기 때문에, 100%는 아니지만 100%에 가까운 확률로 이벤트가 발생하게 되었다.
이 오류를 해결하기 위해, 랜덤값을 반환하는 함수의 위치를 Tick이 아닌 BeginPlay()에서 실행하게 만드니까 오류를 해결할 수 있었다. (해결 방법은 간단했지만 왜 오류가 나는지 이유를 찾는데 시간이 가장 많이 소모되었다.)
'TIL' 카테고리의 다른 글
| 25.12.29_TIL (0) | 2025.12.29 |
|---|---|
| 25.12.26_TIL (0) | 2025.12.26 |
| 25.12.23_TIL (0) | 2025.12.23 |
| 25.12.22_TIL (0) | 2025.12.22 |
| 25.12.19_TIL (0) | 2025.12.19 |
