게임 스테이트 만드는 부분에서 에러가 너무 많이 뜨고 크래쉬 계속 나서 원인 찾는데 하루종일 걸리긴했다.
일단 에러가 났던 부분이 플레이하면은 크래쉬 나면서 바로 꺼지는 부분과
충돌판정 안 일어나는 부분, ItemBox에 닿으면 크래쉬 나는 부분
세가지 정도 였는데.
먼저 플레이하면 충돌나는 부분부터 해결하기 위해서 이전에 작업했던 부분 다 삭제하고 저장한 뒤에 다시 컴퓨터 껏다 키고 언리얼 솔루션파일, Data파일 등등 캐시같은거 다 삭제한뒤 책의 코드 그대로 다시 작성하니까 일단 플레이는 됨.
이후에 충돌이 안 일어나는 부분은 내가
GetMesh()->SetCollisionProfileName(TEXT("ABCharacter"))
이런식으로 해버려서 안되었었다. 현재 RootComponent가 CapsuleComponent이기 때문에
GetCapsuleComponent()->SetCollisionProfileName(TEXT("ABCharacter"));
위와 같이 AbCharacter의 생성자 부분에서 설정을 해주어야한다.
그리고 ItemBox Overlap발생할 경우 크래쉬 나는 부분은 ItemBox의 코드와 ABCharacter의 코드를 살펴보니까
ABCharacter의 SetWeapon에서
이런식으로 먼저 CurrentWeapon을 Destroy해버림. 현재 무기를 가지고있는 상태에서 시작하는게 아니라서 이 코드가 있다면 ItemBox와 충돌이 발생할 때 크래쉬가 난다. (없는 Weapon을 Destroy해버리니까)
지금 다른건 다 문제가 없는데 c++폴더 들어가면 바로 크래쉬 난다.
구글링 해보아도 비슷한게 안나옴...
딱 들어가면