프로젝트를 빌드하고 컴파일까지는 문제가 없었는데
Play하고 종료하기만 하면 위와 같이 'blueprint runtime error accessed none trying to read property '컴포넌트명''이라는 로그가 잔뜩 떴다.
정확한 이유는 파악하지 못했는데 검색해본 결과 UPROPERTY를 변경하면 파생되는 문제같았다.
변수명을 변경해주면 해결된다. (fsm -> fsm2로 변경해주었다.)
변수명을 변경해주고 블루프린트에서 새로 생성된 fsm2를 사용해 연결해주었더니 오류가 뜨지 않았다.
그 다음에 다시 기존 변수명인 fsm으로 변경해주면 해결완료다.
Header
// 적 AI 관리 컴포넌트 클래스
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = FSMComponent)
class UEnemyFSM* fsm;
cpp
// EnemyFSM 컴포넌트 추가
fsm = CreateDefaultSubobject<UEnemyFSM>(TEXT("FSM"));
Header
// 적 AI 관리 컴포넌트 클래스
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = FSMComponent)
class UEnemyFSM* fsm2;
cpp
// EnemyFSM 컴포넌트 추가
fsm2 = CreateDefaultSubobject<UEnemyFSM>(TEXT("FSM"));
(참고로 동일한 클래스를 상속받아 새 블루프린트를 생성해도 문제가 해결된 경우도 있다고 한다.)
출처 : https://forums.unrealengine.com/t/c-uproperty-actor-component-variable-being-set-to-null/413170