[UE5] "deprecated" 특성, 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의 하지 않습니다. 등등의 오류

2023. 2. 5. 17:34Trouble Shootings/Game

 

 

새 C++ 클래스를 만들어서 빌드했을 뿐인데...

 

언리얼 엔진 5.1 공부를 하기 위해, 새 C++ 클래스를 생성해서 실습해보고 있었습니다. Visual Studio 2022에서 코드를 다음과 같이 작성하고, Ctrl + Shift + B를 눌러 빌드를 했는데 오류가 뜨더군요.

// 헤더파일
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class CPPPRACTICE_API AMyActor : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

private:
	UPROPERTY()
	UStaticMeshComponent* Mesh;    // 언리얼 엔진 네이밍 컨벤션은 첫 앞글자가 대문자
};
// cpp 파일
// Fill out your copyright notice in the Description page of Project Settings.


#include "MyActor.h"

// Sets default values
AMyActor::AMyActor()
{
 	// Set this actor to call Tick() every frame.
    // You can turn this off to improve performance if you don't need it.
	// bCanEverTick을 켜 놓으면, 매 프레임마다 Tick() 함수가 호출된다.
	// 그럴 필요가 없을 경우에는 성능상 유리하게 꺼두도록 하자.
	PrimaryActorTick.bCanEverTick = true;

	// 언리얼 오브젝트는 다음과 같은 함수로 오브젝트를 생성한다.
	// TEXT()값은 해당 오브젝트를 구분할 해시값을 생성할 용도로, 겹치지 않게 작성하여 준다.
	Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MESH"));
}

// Called when the game starts or when spawned
// 게임이 시작될 때, 혹은 생성될 때 호출됩니다.
void AMyActor::BeginPlay()
{
	Super::BeginPlay();
	
}

// Called every frame : 매 프레임마다 호출되는 함수입니다.
void AMyActor::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

 

발생한 오류 메세지들

 

 

해당 오류들과 관련하여 구글링을 해보던 중, 🔗한 글에서 도움을 받게 되었는데 거기서 알려주는 권장 방식으로는

Build + IntelliSence 대신 Bulid Only를 사용하라고 하더군요. IntelliSence가 잘못된 경우도 간간히 있기 때문이라네요.

 

 

 

해당 설정을 하고 나니, 필요없는 부분들은 다 지워지고 실제 오류는 다음과 같았습니다.

MSB3073	""C:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat"
CppPracticeEditor Win64 Development -Project=
"C:\Users\82104\Documents\Unreal Projects\Practice_UnrealEngine\CppPractice.uproject" 
-WaitMutex -FromMsBuild" 명령이 종료되었습니다(코드: 6).

CppPractice	C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\
Microsoft\VC\v170\Microsoft.MakeFile.Targets

 

아무래도 언리얼 엔진 빌드와 관련된 부분에서 문제가 발생하는 것 같아 보입니다. 그래서 더 찾아보던 중, 라이브 코딩의 빌드 기능을 사용했더니 빌드 문제가 해결되어 버렸습니다. IDE나 언리얼 엔진 에디터 둘 중 하나에서 Ctrl + Alt + F11을 누르면 라이브 코딩 컴파일을 시작합니다.

 

라이브 코딩을 사용하여 컴파일 성공한 모습

 

아직 공부를 한 지 얼마 안 되어 다는 모르지만, 도움이 될까 싶어 공유하려고 이렇게 작성하게 되었습니다.

혹시 라이브 코딩 기능이 비활성화 되어 있다면, 편집 - 에디터 개인 설정 - 라이브 코딩 탭에서 활성화 하시면 됩니다.

 

 

728x90
반응형