[UE5/C++] 새 Game Instance 만들기

    목차

Game Instance 클래스는 게임의 기본적인 뼈대가 되는 클래스라고 보면 된다.

나도 처음에는 이해가 잘 안갔는데, 유니티의 Gam Manager와 비슷하다고 보면 될 것 같다.

Game Instance 클래스는 싱글톤으로, 게임 하나당 하나만 존재해야한다.

 

디폴트 Game Instance가 아닌 새로운 Game Instance를 만들어 적용시켜보기까지가 이번 글에서 할 일이다.

 

새 Game Instance 클래스 만드는 방법

Tools → New C++ Class → All Classes → Game Instance 검색 후 선택

 

이름을 입력하고 Create를 누르면 된다.

그 후 자동으로 상속받은 클래스에 대한 정보들을 파악해서 컴파일이 되고,

에디터에서 솔루션 구조도 이에 맞춰서 자동으로 바뀐다.

비주얼 스튜디오에서 뜨는 팝업창의 Reload All을 눌러주면 알아서 바뀐다.

 

 

기존의 GameInstance 클래스가 가지고있는 함수 중 중요한 함수가 Init()이다.

Init()은 게임을 시작하기 전 초기화해주는 함수이다.

이 Init()을 오버라이딩해서 재구성을 한다.

 

이때, 언리얼엔진의 부모클래스를 상속 받아서 재구성을 하는 경우 언리얼엔진에 있는 코드를 한번 실행해주는 것이 좋다.

이미 그 코드들은 전체 플로우가 동작할 수 있게 짜여져 있기 때문에, 이것을 무시하고 오버라이딩 해버리면 엔진 전체적인 플로우에 어떤 에러가 발생할지 모른다.

 

언리얼엔진에서는 부모 클래스 이름을 다 칠 필요 없이  Super로 호출 할 수 있다.

Super::Init();

 

그 후 추가할 로직을 적어주면 된다.

 

 

[게임모드 vs 게임인스턴스]

https://www.youtube.com/watch?v=0pAhqA2Sgto