// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "MyGameInstance.generated.h"
/**
*
*/
UCLASS()
class HELLOU_API UMyGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
virtual void Init() override;
};
public: 은 왜 들여쓰기를 안하지?
UCLASS(), GENERATED_BODY 등)와의 일관성 유지virtual은 뭐야?
override 키워드와 함께 사용하는 것이 권장됨 (예: virtual void Init() override)GENERATED_BODY() 는 또 뭐고?
.h와 .generated.h의 연결을 담당오버라이드(Override)
override 키워드를 붙이면 컴파일러가 함수 시그니처 검사를 강화해 줌 (잘못된 오버라이드 시 컴파일 에러 발생)// Fill out your copyright notice in the Description page of Project Settings.
#include "MyGameInstance.h"
void UMyGameInstance::Init()
{
Super::Init(); //Super 부모클래스
UE_LOG(LogTemp, Log, TEXT("%s"), TEXT("Hello")); //문자열 다룰때는 언리얼 포멧인 TEXT("")를 사용할 것
}
void UMyGameInstance::Init()
Init() 함수는 UGameInstance의 초기화 과정에서 호출Super::Init();를 호출하여 부모 클래스(UGameInstance)의 Init()실행
UE_LOG(LogTemp, Log, TEXT("%s"), TEXT("Hello Unreal!"));
LogTemp: 임시 로그 카테고리 (필요하면 별도로 로그 카테고리를 정의할 수 있음)Log: 로그의 심각도 수준(Log, Warning, Error 중 선택 가능)TEXT(""): 언리얼 엔진에서 문자열을 다룰 때 사용하는 포멧 또는 매크로(멀티바이트 지원)