[UE5] "deprecated" 특성, 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의 하지 않습니다. 등등의 오류
2023. 2. 5. 17:34ㆍTrouble 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
반응형