0. 언리얼 오브젝트의 이해
더보기
- 게임이 대형화되면서 성능과 유지보수 두 가지가 모두 중요해짐
- 언리얼 엔진은 C++ 언어를 확장한 언리얼 오브젝트라는 객체 구조를 고안함
- 지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조를 가짐
- 언리얼 오브젝트를 사용해 대규모 게임 제작을 안정적으로 설계하고 구현할 수 있음
1. 소스 코드
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
// 언리얼 오브젝트가 되기 위해 필요한 헤더 2개
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
// 다른 폴더에 들어있음
// 헤더파일의 수정사항과 함께 build 하면 언리얼 엔진의 Build 시스템이 알아서 MyObject.generated.h 파일을 자동으로 생성해준다.
// 아래의 헤더파일을 삭제해도 빌드하면 다시 생성된다.
#include "MyObject.generated.h"
/**
*
*/
UCLASS() // 언리얼 오브젝트 선언임을 명시하기 위한 UCLASS 매크로
// UNREALOBJECT_API 는 언리얼 오브젝트라는 프로젝트 이름_API 임.
// 다른 곳에서도 이 MyObject 를 사용할 수 있게 개방해준다는 의미. 얘를 없애면 다른 모듈에서 참조 불가.
// 언리얼 오브젝트라는 모듈 내에서만 사용할 수 있게됨
class UNREALOBJECT_API UMyObject : public UObject
{
GENERATED_BODY() // 얘도 매크로임
};