2024. 8. 1. 02:05ㆍUnreal Engine
블루프린트로 만들었던 슈팅 게임 C++ 사용으로 변경하기
Player 스크립트 생성
[Tools] - [New C++ Class...] 선택
[Pawn] 선택
[Class Type] - [Public]으로 설정하고 "CPlayer" 이름으로 생성한다.
Visual Studio Installer 설정이 되어있지 않아서 오류가 발생했다. 설정은 아래와 같다.
잘 되었다면 .cpp 파일이 열릴 것이다. .h는 헤더파일이다.
Hello World 출력하기
아래의 코드를 추가한다.
UE_LOG(LogTemp, Warning, TEXT("Hello World"));
전체 코드
// Fill out your copyright notice in the Description page of Project Settings.
#include "CPlayer.h"
// Sets default values
ACPlayer::ACPlayer()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
UE_LOG(LogTemp, Warning, TEXT("Hello World"));
}
// Called when the game starts or when spawned
void ACPlayer::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void ACPlayer::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
// Called to bind functionality to input
void ACPlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
}
오른쪽 솔루션 탐색기에서, Shooting에 우클릭하고 빌드를 누른다.
잘 되었다면 출력 창에 성공이 뜨게 된다.
에디터를 끄고 파일 경로로 가서 Shooting 언리얼 프로젝트 파일을 연다.
[Output Log]에서 "logtemp" 검색하면 "Hello World"가 출력되어 있는 것을 볼 수 있다.
헤더 파일은 Public에, .cpp 파일은 Private 폴더로 옮긴다.
변경된 프로젝트 구조에 맞게 다시 프로젝트 파일을 만들기 위해서 언리얼 프로젝트 파일에 우클릭 후 [Generate Visual Studio project files] 클릭
.sln 솔루션 파일을 더블클릭하여 다시 Visual Studio를 열 수 있다.
C++ 자료형
int8 : -128 ~ 127
unit8 : 0 ~ 127
int16, int32, int64
블루프린트에서는 int32를 사용했다.
BeginPlay() 하위에 코드 입력
int32 number1 = 205;
UE_LOG(LogTemp, Warning, TEXT("%d"), number1);
에디터에서 조각모음 모양 아이콘을 선택하면 Compile할 수 있다.
아직 해당 C++ 파일이 Viewport에 인스턴스가 되지 않아서 값이 출력되지 않았다.
새 Level을 만들기 위해 Ctrl+N으로 [Empty Level] 선택
Level 저장
C++ Pawn을 드래그 앤 드랍으로 올려놓는다. Transform 컴포넌트가 없기 때문에 이동은 되지 않는다.
실행을 해보면 출력되는 것을 볼 수 있다.
Visual Studio에서 Ctrl+B로 빌드하면 Live Coding이 활성화 되어 있어서 오류가 뜬다고 나온다.
언리얼 에디터에서 [Enable Live Coding]을 체크해제하면 된다.