🎮GameMode
- 'Play From Here' 메뉴 항목을 활용해 레벨 어디에서나 플레이 세션 시작 방법 알아보기
- 일반적으로 언리얼에서는 시작할 때 캐릭터를 월드에 배치하지 않음
🖨블루프린트 작업🖨
- 레벨 플레이 테스트를 절벽에서부터 시작하고 싶으면,
절벽을 우클릭하여 'Play From Here'를 실행할 수 있음
→ 그러나 제대로 작동 X
- 툴바 ▶ 블루프린트 메뉴
▶ 프로젝트 세팅과 월드 오버라이드 아래에 게임 모드라는 메뉴 항목 존재
- 새로운 Game Mode, "BP_ObstacleAssaultGameMode" 생성
→ Default Pawn Class를 BPThirdPersonCharacter로 바꾸기
→ 그러나 여전히 제대로 작동 X_
- 뷰포트 상에 있는 BP_ThirdPersonCharacter 삭제 후, 플레이어 스타트 액터 배치하기
∴ 잘 작동되는 것을 볼 수 있음
📚용어 정리
- 게임 모드
: 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 액터
: 게임 작동 방식을 정의하는 수많은 클래스 사용법 알려줌
📜추가 정리
- 프로젝트 세팅 - 게임 모드
: 프로젝트에서 생성한 모든 레벨에 대한 기본 게임 모드를 알려줌
- 월드 오버라이드 - 게임 모드
: 특정 레벨에 대한 게임 모드를 알려줌
📑출력 로그에 기록하기
- 블루프린트 → 정보를 빠르게 표시하거나 향후 디버깅을 위해 화면에 출력 가능
- C++ → 로그 문으로 출력 가능
- UE_LOG(LogTemp, Display, TEXT("Your message"));
→ 첫 번째 인수 = 로그 카테고리 유형이 무엇인지
→ 두 번째 인수 = 얼마나 시급한지를 나타냄
→ 세 번째 인수 = 함수 안의 함수로 출력해야 할 텍스트를 알려줌
- LogTemp를 주로 사용할 예정 → 디버그 메시지를 로깅하기 위한 임시 공간
🖨C++ 작업🖨
- 두 번째 인수를 다른 것으로 바꾸고 실행한 결과 ▼

// 실행 코드 ▼
UE_LOG(LogTemp, Display, TEXT("Your message"));
UE_LOG(LogTemp, Warning, TEXT("Your message"));
UE_LOG(LogTemp, Error, TEXT("Your message"));
- 로그 출력하기 ▼

if (DistanceMoved > MoveDistance)
{
float OverShoot = DistanceMoved - MoveDistance;
UE_LOG(LogTemp, Display, TEXT("Platform overshot by %f"), OverShoot);
...
}
📓FString
- C++의 문자열을 사용해, 로그 메시지에 동적 문자열 추가하는 방법 알아보기
FString MyString = "My String Value";
UE_LOG(LogTemp, Display, TEXT("Here's My String: %s"), MyString);
- 위의 방식대로 하면 출력되지 않음
→→ 변환 연산자 필요
: MyString 앞에 *을 붙여 FString을 UE_LOG 내부에서 받아들일 수 있는 형식으로 변환
UE_LOG(LogTemp, Display, TEXT("Here's My String: %s"), *MyString);
- FString을 사용하여 출력한 화면 ▼

float OverShoot = DistanceMoved - MoveDistance;
FString Name = GetName();
UE_LOG(LogTemp, Display, TEXT("%s Platform overshot by %f"), *Name, OverShoot);
👥멤버 함수
- 고유한 함수를 만들어 코드 간결하게 정리하고 가독성 있게 만들기
- MovePlatform() 함수
전 ▼
후 ▼
- RotatePlatform() 함수

- 결과 화면 ▼
