[Unreal Engine 5] Obstacle Assault 04

갬미·2025년 4월 7일
post-thumbnail

🎮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() 함수
  • 결과 화면 ▼

0개의 댓글