C++ 클래스 추가하기
이 절에서는 언리얼 엔진에서 C++ 프로젝트를 생성하고 새로운 C++ 클래스를 추가하는 전체 과정을 단계별로 살펴보겠습니다.
C++ 프로젝트 생성
1. 언리얼 엔진 런처를 실행합니다.
2. "새 프로젝트 만들기" 버튼을 클릭합니다.
3. 프로젝트 유형으로 "C++"를 선택합니다.
4. 템플릿을 선택합니다. (예 : Blank, First Person, Third Person 등)
5. 프로젝트 설정을 구성합니다.
- 프로젝트 이름 입력
- 저장 위치 선택
- 시작 콘텐츠 포함 여부 선택
- 대상 플랫폼 및 그래픽 품질 선택
6. "프로젝트 생성" 버튼을 클릭합니다.
프로젝트 생성이 완료되면 언리얼 에디터와 Visual Studio(또는 선택한 IDE)가 자동으로 열립니다.
C++ 클래스 추가하기
- 언리얼 에디터에서 "파일" > "새 C++ 클래스" 메뉴를 선택합니다.
- 부모 클래스를 선택합니다. (예 : Actor, Pawn, Character 등)
- 새 클래스의 이름을 입력합니다. (예 : MyCharacter)
- 클래스 파일이 저장될 위치를 확인하고 "클래스 생성" 버튼을 클릭합니다.
Visual Studio에서 새로 생성된 클래스 파일이 자동으로 열립니다.
생성된 C++ 클래스 기본 구조
새로 생성된 C++ 클래스의 기본 구조는 다음과 같습니다.
클래스 컴파일 및 에디터 반영
- Visual Studio에서 코드를 수정한 후 저장합니다.
- Visual Studio에서 "빌드" > "솔루션 빌드" 메뉴를 선택하거나 F7 키를 눌러 프로젝트를 컴파일합니다.
- 컴파일이 완료되면 언리얼 에디터로 돌아갑니다.
- 언리얼 에디터에서 "파일" > "C++ 클래스 다시 로드" 메뉴를 선택하거나 Ctrl+Alt+F11 키를 눌러 변경사항을 반영합니다.
일반적인 문제와 해결 방법
1. 컴파일 오류
- 문제 : 구문 오류, 누락된 포함 파일 등
- 해결 : 오류 메시지를 주의 깊게 읽고 코드를 수정합니다. 필요한 헤더 파일을 포함했는지 확인합니다.
2. 링크 오류
- 문제 : 함수 정의 누락, 라이브러리 연결 문제 등
- 해결 : 모든 함수가 올바르게 정의되었는지 확인합니다. 프로젝트 설정에서 필요한 모듈이 포함되어 있는지 확인합니다.
3. 핫 리로드 실패
- 문제 : 에디터에서 변경사항이 반영되지 않음
- 해결 : 에디터를 닫고 다시 열어봅니다. 변경사항이 너무 큰 경우 전체 재컴파일이 필요할 수 있습니다.
C++ 클래스와 블루프린트 연동
- C++ 클래스를 블루프린트에서 상속받을 수 있게 만들기
- 블루프린트에서 접근 가능한 속성 만들기
- 블루프린트에서 호출 가능한 함수 만들기
에디터에서 C++ 클래스 사용하기
- 콘텐츠 브라우저에서 "C++ 클래스" 필터를 선택합니다.
- 생성한 C++ 클래스를 찾아 월드에 드래그 앤 드롭하거나, 블루프린트의 부모 클래스로 선택합니다.
- 클래스의 인스턴스를 선택하고 디테일 패널에서 노출된 속성을 편집합니다.
효율적인 C++ 클래스 구조 설계 팁
- 단일 책임 원칙을 따릅니다. 각 클래스는 하나의 주요 기능에 집중해야 합니다.
- 상속보다 구성을 선호합니다. 필요한 경우 컴포넌트를 사용하여 기능을 확장합니다.
- 인터페이스를 활용합니다. 공통 기능을 위해 UInterface를 사용합니다.
- 캡슐화를 유지합니다. 가능한 한 멤버 변수를 private으로 유지하고, 필요한 경우에만 public getter/setter를 제공합니다.
- 명확한 명명 규칙을 사용합니다. 언리얼 엔진의 명명 규칙을 따릅니다. (예 : 클래스 이름에 적절한 접두사 사용)
예시
이 예시에서는 캡슐화, 명확한 명명, 그리고 컴포넌트 사용을 보여줍니다.
Health
는 private이지만 에디터에서 편집 가능하며, getter 함수를 통해 안전하게 접근할 수 있습니다.
WeaponMesh
컴포넌트는 구성을 통해 기능을 확장하는 방법을 보여줍니다.
C++ 클래스를 언리얼 엔진 프로젝트에 추가하는 과정은 초기에는 복잡해 보일 수 있지만, 이 과정을 마스터하면 강력하고 유연한 게임 시스템을 구축할 수 있습니다