1️⃣ Object (UObject)의 개념
- UObject는 언리얼 엔진에서 모든 클래스의 최상위 부모 클래스.
- 스스로 월드(레벨)에 배치될 수 없다. 주로 데이터나 로직만 담당한다.
- 예: 플레이어 능력치(HP, 경험치), AI 정보, 게임 설정 값, 임시 계산 로직 등
- 주로 화면에 보이지 않는 데이터나 로직을 처리한다.
2️⃣ Actor (AActor)의 개념
- AActor는 UObject를 상속한 클래스로, 월드에 배치(Spawn) 할 수 있다.
- 위치, 회전, 크기 등 공간적 정보를 가지고 있고, 여러 컴포넌트 (Component)를 추가로 붙일 수 있다.)
- 실제 게임 세계에서 보이고 상호작용하는 캐릭터, 적 몬스터, 무기, 조명, 파티클 효과 등은 주로 AActor를 기반으로 제작한다.
언리얼에서 public으로 C++ 액터 클래스를 만들면, Private과 Public 폴더가 생성되고 각각 cpp 파일과 Item 파일이 저장된다.

모듈별로 Character, UI 등의 폴더를 추가로 생성해서 사용하면 된다.
public에 헤더파일이 있으면 다른 모듈에서도 이를 참조할 수 있다.


C++ 파일 삭제하기


에디터에서는 파일 삭제가 안 되므로, VS에서 파일 두 가지를 다 삭제해준다.
VS에서는 가상 구조에서 삭제를 한 것이고, 이 단계에서 물리적으로는 파일이 아직 남아있다.

Source 하위 폴더에서 물리적 파일도 다 삭제해준다.
그리고 에디터를 끄고, 빌드를 다시 한다. 빌드 후 F5를 눌러 에디터를 다시 켠다.
이 프로세스를 생략하면 오류가 날 수 있다.

빌드를 안 하고 F5부터 눌렀더니 이러한 오류가 났다. 에디터 끄고, VS에서 솔루션 다시 빌드를 선택해주었다.
그러고 실행했더니...


여전히 에러나길래 프로젝트 삭제하고 재생성했더니 해결되었다...
클로드의 답변:
당신이 Content, Source, Config만 남기고 다 지웠는데도 안 된 것을 봤을 때:
- Source 폴더 내의 .Build.cs 또는 다른 .cpp/.h 파일들이 삭제한 클래스를 여전히 #include하고 있었을 가능성
- 완전히 제거되지 않은 include 문장
- Config 폴더의 설정 파일들이 삭제된 클래스를 참조
- DefaultEngine.ini 등이 클래스 정보를 캐시하고 있었을 수 있음
Config를 봤는데 Nav에 관한 것은 없었고, Build.cs가 문제였을 수 있겠다는 생각이 든다.
'게임 개발 > 학습 일지' 카테고리의 다른 글
| 언리얼 C++ - Tick 함수로 Actor의 Transform 조정하기 (0) | 2026.04.11 |
|---|---|
| 언리얼 C++ - Actor의 라이프 사이클 (0) | 2026.04.11 |
| 언리얼 엔진 심화 1주차 - 리플렉션/UHT/UBT/CDO (0) | 2026.04.10 |
| TA 코스 1주차 정리 (0) | 2026.04.09 |
| 언리얼 C++ - 빌드 프로세스 이해하기 (0) | 2026.04.09 |