작성
·
693
0
강의에서는 구조체를 게임인스턴스 헤더에 바로 만들어서
상관없는데
나중에 따로 헤더파일을 만들어서 구조체를 관리하게 되면
이거도 다른 곳에서 쓸 때 전방선언을 해줘야 하는건가요?
그렇다면 TObjectPtr 을 써서 전방선언을 해야 하나요?
아니면 구조체는 간단하니까 바로 헤더파일을 인클루드 하면 되나요?
초보자라 이 질문이 맞는 질문인지도 모르겠네요
답변 1
0
안녕하세요. 언리얼 헤더툴(UHT) 분석을 거치는 USTRUCT 구조체는 별개 헤더로 선언 가능한데, 에디터에서 마법사를 제공해주지 않아서 작업이 좀 귀찮습니다. 실제로 에픽 소스코드를 봐도 USTRUCT 구조체만 별도로 파일을 분리하는 경우는 별로 없습니다. 그래서 보통은 마법사가 생성해주는 UOBJECT 헤더에 포함시켜서 선언합니다. 아니면 CLASS 내부에 Inner로 선언하기도 하고요.
USTRUCT가 아닌 일반 구조체는 그냥 C++ 쓰듯이 선언하고 사용해주면 됩니다.
전방선언은 조금은 다른 주제인데, 한 헤더 파일에서 다른 헤더파일의 참조를 최대한 없애기 위해 사용합니다.
C++ 문법에서 struct와 class의 동작은 거의 비슷하지만, 보통 언리얼 엔진에서 구조체는 동적할당 포인터로 사용하진 않습니다. 그럴 때는 class로 선언하시는게 좋을 것 같아요.
아하 쉽게 설명해 주셔서 감사합니다. 엔진에서는 구조체 파일을 따로 만들길래 궁금했었습니다. 감사합니다.