TIL - Today I Learned : 뭔가 연결이 잘못되거나 코드에 문제가 있다면 크래쉬가 난다. 개복치같아.
잘못되었음을 느끼면 차분히 처음부터 다시 해보자..그리고 컴퓨터도 좀 하룻밤 자고 나면 괜찮아지나보다..ㅋ
오늘의 진도: Section 4: Crypt Raider 110. Level Polish & 섹션 완료 후 회고
Level Polish
Actor에 Component를 추가하고 Level Blueprint로 연결해주었는데 계속 크래쉬가 났다.
왜일까?... 차분히 한숨 자고 오늘 다시 프로젝트를 열고 어제 작업한 모든 컴포넌트를 제거 후
레벨 블루프린트의 이벤트 그래프도 깨끗하게 지우고 다시 연결해보니 잘 된다..
아쉽게도 어제 떴던 Crash Reporter의 내용을 저장하는 거였는데..
하면서 어제 크래쉬 났던 로그를 찾아보기로 했다.
일단 다시 크래쉬가 나는 상황을 만들어 보았다. 레벨 블루프린트를 잘못 연결했다는 가정이다.
생각했을 때는 Trigger Component를 가지고 있는 Statue_Stand에서 Mover Component를 찾으려고 하고
Mover Component를 가지고 있는 Cell_Side에서 Trigger Component를 찾으려고 했을 경우이다.
아래와 같이 서로에게 없는 Component를 Get하려고 한다. 이때 레벨 블루프린트는 컴파일이 되지만
실제로 플레이할 때 오류가 발생한다.
그리고 다음과 같은 에러를 밷어냄.
프로젝트 폴더 -> Saved -> Crashes에서 어제 마지막 로그를 확인 해보자
EXCEPTION_ACCESS_VIOLATION writing address~ 라는 에러 메세지가 나왔다.
내가 임의로 만들어본 오류와 같은 메세지이고
여기엔 Mover에서만 문제가 발생했다고 한다.
SetMover의 parameter가 Mover Object이기 때문에 Get Component by Class에서
가져오는 class가 Trigger Component일 시 컴파일이 되지 않기 때문에 플레이를 하지 않아도 알았을 것이다.
어제 밤에 나온 오류는 Mover에서 발생했던 것이어서 비슷한 상황을 만들고 싶어서
이것저것 하다가 비슷하게 오류를 만들어 보았다.
오류는 Trigger Component에서 Mover도 제대로 가져오고 Mover의 SetShouldMove 함수도 호출 했지만
Mover에서 SetSholudMove 함수에서 발생한 것이니까
처음엔 UPROPERTY를 추석 처리하니 오류가 발생했는데
생각해보면 UPROPERTY로 선언하지 않아도 문제가 없어야하는 코드이다.
프로젝트 종료하고 빌드를 다시 하는 걸 반복하다보니 오류가 사라졌다.
무언가가 꼬여서 순간적으로 생기는 오류인가보다...
그 외에도 자잘한 실수와 오류로 시간을 많이 소비했다..
섹션 완료 후 회고
Crypt Raider 섹션은 약 6시간 정도이고 강의 하나가 평균적으로 10분 내외이다.
하루에 5강 정도 진도를 나가야지 하면 실제로 따라해 보고 실수하고, 오류가 나고
또 잘 이해하지 못한 부분이나 궁금한 부분을 블로그에 정리해 가면서 하면
강의는 1시간이지만 실제로는 4시간 정도 쓰게 되는 거 같다.
그것도 큰 문제 없이 지나가면 다행이지만 어제나 오늘처럼 이상한 곳에 빠지면
시간이 한없이 흘러간다...
중간에 정보처리기사 실기 시험도 준비하고 또 맵을 만드는데 매너리즘이 오기도 하고
여러 채용 공고에 지원하면서 필기시험을 보고 내가 부족한 점을 알게 되니
좀 더 기초를 다져야 하지 않을까 하는 생각에 언리얼 강의에 소홀해진 부분이 있었다.
취준생의 고민과 걱정은 많겠지만 그래도 사람의 고민의 90%는 쓸데없는 거라고 하니
지금 내가 할 수 있는 일을 꾸준히 하려고 한다.
Section 4. Crypt Raider
강의 수 : 43강
강의 시간 : 5시간 47분
Section 4 시작일 : 2024.04.16
Section 4 완료일 : 2024.06.26
'Unreal Engine > Udemy:UE5 C++ 학습하고 게임 만들기' 카테고리의 다른 글
Unreal Day - 32 - Default & Instance of Blueprint (0) | 2024.06.30 |
---|---|
Unreal Day - 31 - Start Toon Tank! (0) | 2024.06.27 |
Unreal Day - 29 - Dependency Injection (0) | 2024.06.26 |
Unreal Day - 28 - GetOverlappingActors() (2) | 2024.06.21 |
Unreal Day - 27 - Physics Handle (0) | 2024.06.21 |