1. 과제 개요
언리얼 엔진 5 환경에서 C++ 클래스를 생성하고, 3차원 공간 내에서 액터(Actor)의 위치와 회전을 제어하는 기초 로직을 설계하는 과제였다. 단순히 수치를 바꾸는 것에 그치지 않고, 랜덤 라이브러리와 수학 함수를 활용해 매 스텝 변화하는 위치 정보를 실시간 로그로 출력하는 것이 핵심이다.
2. 프로젝트 구성 및 주요 기능과 과정
프로젝트 구조
- 부모 클래스: AActor
- 주요 데이터: FVector를 활용한 현재 좌표 저장, 누적 이동 거리(float), 이벤트 발생 횟수(int32) 관리
구현 로직
- 초기화: 생성자에서 시작 위치를 (0, 50, 0)으로 설정하고, 게임 시작 시(BeginPlay) 로직이 실행되도록 구성했다.
- 랜덤 이동 (Move): FMath::RandRange를 사용하여 X, Y축으로 0~2 사이의 무작위 스텝만큼 이동하게 했다.
- 거리 계산: FVector::Dist 함수를 활용해 이동 전후의 직선거리를 구하고 이를 누적하여 총 이동 거리를 산출했다.
- 확률 이벤트 (TriggerEvent): 50%의 확률로 "이벤트 발생" 로그를 띄우는 별도의 메서드를 분리하여 구현했다.
- 디버그 로그: AddOnScreenDebugMessage를 통해 게임 화면에 실시간으로 좌표와 리포트를 출력했다.
액터 생성→ 코드 작성 → 블루프린트 클래스로 상속받기→ staticmesh Cube추가 → 결과 출력

로그 출력

3. 주요 문제 발생 및 해결 과정 (Troubleshooting)
한글 경로 문제
- 문제: 프로젝트 생성 및 컴파일 시 Invalid argument 에러가 발생하며 빌드가 되지 않았다.

- 원인: 윈도우 사용자 계정명이나 폴더 경로에 포함된 '한글'을 컴파일러가 인식하지 못했다.
- 해결: 프로젝트 폴더를 C:\\ 드라이브 직하의 영문 경로로 옮기며 해결했다.
라이브 코딩 링크 에러 (LNK2001)
- 문제: 코드 수정 후 라이브 코딩(Ctrl + Alt + F11) 진행 시 unresolved external symbol 에러가 발생했다.
C:\\Users\\markp\\OneDrive\\Desktop\\Documents\\Unreal Projects\\Assignment5\\Binaries\\Win64\\UnrealEditor-Assignment5.patch_0.exe : fatal error LNK1120: 1 unresolved externals Failed to link patch (0.000s) (Exit code: 0x460)
- 원인: 엔진의 리플렉션 시스템(gen.cpp) 파일과 실제 바이너리 파일 간의 연결이 꼬인 것이 원인이었다.
- 해결: 에디터를 종료한 뒤 Binaries와 Intermediate 폴더를 수동으로 삭제하고,. uproject 우클릭을 통해 비주얼 스튜디오 프로젝트 파일을 재생성(Generate) 한 후 재빌드하여 해결했다.
4. 배운 점
기술적 성장
- C++ 클래스 설계: 단순히 코드를 나열하는 것이 아니라 기능을 Move, Rotate, TriggerEvent 등으로 함수화(Modularization)하여 유지보수하기 좋은 코드의 중요성을 깨달았다.
- 엔진 수학 라이브러리: FVector와 FMath 등 언리얼이 제공하는 강력한 라이브러리를 사용하면 복잡한 3D 수학 계산을 안전하고 빠르게 처리할 수 있음을 배웠다.
- 디버깅 환경: UE_LOG와 AddOnScreenDebugMessage의 차이를 이해하고, 런타임 중에 데이터를 확인하는 효율적인 방법을 익혔다.
개발 태도
- 에러 메시지에 답이 있다는 것을 다시금 확인했다. 특히 언리얼 엔진은 경로 설정 하나가 전체 빌드를 좌우할 만큼 환경 설정이 중요하다는 점을 명심하게 되었다.
'언리얼' 카테고리의 다른 글
| C++ 알고리즘) 동적 계획법 (0) | 2026.03.19 |
|---|---|
| C++ 알고리즘) 해시 테이블 (0) | 2026.03.18 |
| C++ 알고리즘) 최단 경로 알고리즘(다익스트라, 벨만-포드) (0) | 2026.03.16 |
| C++ 알고리즘) 트리, 그래프 및 백트래킹 (0) | 2026.03.13 |
| C++ 알고리즘) 스택 및 큐 (0) | 2026.03.12 |