언리얼

[언리얼,C++] 언리얼 C++ 프로그래밍 입문(베르 유튜브 0)

Esunn 2022. 8. 5. 23:43

언리얼에서 C++ 프로그래밍을 공부한 것을 정리해놓은 글이다.

https://www.youtube.com/channel/UC9j37A2ACL9ooSbsT4mtGww

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

베르라는 한국 유튜브중 언리얼 강좌가 있어 이걸 입문용으로 공부하려 한다.

이분 강좌를 쭉 한번 봐보고 그 뒤 배터리 콜렉터 강좌를 봐봐야겠다.

 

언리얼 엔진은 공식 문서들은 다양한 버전으로 정리가 잘 안 되어 있는데 이걸 정리한 강좌이다.

언리얼 4와 5강의 둘다 있어서 서로 비교하면서 봐야겠다.

 

https://youtu.be/DkJqLIpSvik

 

액터를 상속받은 C++ 클래스 생성 ( MyActor01 )

액터 : 레벨에 배치할 수 있는 오브젝트

 

콘텐츠 브라우저에서 

C++ 클래스 - 프로젝트 이름 폴더내의 존재

 

MyActor01.cpp 파일과 MyActor01.h파일이 생성됨

//MyActor01.cpp
// Fill out your copyright notice in the Description page of Project Settings.


#include "MyActor01.h"

// Sets default values
AMyActor01::AMyActor01()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void AMyActor01::BeginPlay()
{
	Super::BeginPlay();
	
}

// Called every frame
void AMyActor01::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

 

헤더파일

헤더파일 : 클래스를 선언하고 클래스에 속하는 변수와 함수의 원형을 선언하는 용도.

 

//MyActor01.h
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor01.generated.h"

UCLASS()
class BERL02_API AMyActor01 : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor01(); // 생성자

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

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

};

생성자는 클래스의 이름과 같다.

헤더파일에는 생성자와 BeginPlay()함수와 Tick() 함수가 존재.

 

BeginPlay() : 엑터가 배치된 월드에서 게임이 시작되거나 액터가 월드에 스폰되었을 때 한번 호출됨

 

Tick() : 매 프레임마다 호출됨. 매개변수 DeltaTime을 이용하여 Tick 함수가 지난 번에 호출된 이후로

얼마의 시간이 경과한 뒤에 다시 Tick 함수가 호출되었느지에 대한 시간을 전달받을 수 있음.

 

틱 함수는 엑터가 존재하는한 계속 실행됨

틱함수를 줄여서 최적화 가능.

 

틱 함수 비활성화

헤더파일과 소스파일에서 Tick함수를 제거하고 

PrimaryActorTick.bCanEverTick = true;

소스파일의 생성자에 있는 이 코드를 삭제해줌.

 

UE_LOG(LogTemp, Log, TEXT() ) : 로그를 출력해줌.

 

컴파일

언리얼 5부터는 메인툴에서 컴파일 버튼이 사라지게 됨.

콘솔 명령창에 

 

LiveCoding.Compile 명령어를 입력하거나

 

Ctrl + Alt + F11 단축키를 이용

 

비주얼 스튜디오에서 빌드 - 솔루션 다시 빌드 이용