언리얼엔진

언리얼 엔진 4 C++ (표준 코드)

대니스 2023. 1. 31. 16:25

표준 코드

표준 코드

어떤 클래스를 만들어도 아래와(액터 클래스로 생성하였다.) 같은 헤더 파일이 만들어진다. 

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

#pragma once

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

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

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

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

};

paragma once : 반복적으로 참조돼 발생하는 에러들을 방지하는 코드 조각으로 언리얼이 포함 방지를 하는 방법이다.

#UCLASS() : 매크로의 일종으로, 클래스가 언리얼 리플렉션 시스템에 노출돼 있음을 나타낸다. 리플렉션은 가비지 컬랙션되는 객체들의, 참조가 관리되는 실행 시간 동안 객체의 속성을 바꾸고 열거해준다.

#class UE4COOKBOOK_API AMyFirstActor : public AActor : 실제적인 클래스 선언이다. UE4COOKBOOK_API 매크로는 UHT에 의해 생성되고, 프로젝트 모듈의 클래스들이 DLL 안에서 노출돼,  프로젝트가 윈도우에서 제대로 적당하게 컴파일되도록 돕는다. 

#GENERATED_BODY() : 언리얼의 타입 시스템이 요구하는 자동으로 생성된 함수들이 포함돼 확정되도록 하는 또 다른 UHT 매크로다.

#PrimaryActorTick.bCanEverTick = true; : 생성자 내부 구현에서, 이 라인은 액터가 매틱마다 업데이트되도록 한다. 모든 액터는 Tick 함수가 있고, 이 부울값은 액터가 한 프레임마다 액터들을 수행할 때 프레임마다 호출될지 여부를 의미한다. 성능 최적화를 위해서 기본값은 비활성화돼 있다.