Game Instance 란?

게임 인스턴스는 실행중 게임의 인스턴스에 대한 단 하나의 고급스런 관리 개체이다.

게임이 시작되고 게임이 끝날때 까지 존재한다. 단 하나만 존재하면 되는 게임이나 플레이어의 상태를 저장할 때 사용해도 좋다.

프로젝트 세팅 -> 맵 & 모드 에서 수정가능하다.

Singleton Class 란?

Singleton Class는 Game Instance가 나오기 전까지 Game Instance와 비슷한 맥락으로 쓰인 클래스이다. Game Instance와 비슷하게 시작할 때 생성되고 단 하나만 생성되는 클래스이다.

UE 4.4 버전까지 유효한 방식이었으나, 최근 추세는 점점 사용하지 않는 분위기이다. 만약 사용한다 하더라도 런타임에서 직접 구현해 사용하는 추세이다.

프로젝트 세팅 -> 일반 세팅 -> Default Classes 에서 수정 가능하다.

UE4에서 GameInstance와 Singleton Class의 차이

스탠드 얼론 게임 (Shipping Build)으로 실행하면 UE4 에서 제공되는 Singleton 클래스와 비슷한 생명 주기를 갖고 있지만, 에디터 상에서는 게임 인스턴스는 PIE (Play In Editor) 상태에서만 존재하고, PIE 세션 하나당 하나씩 존재한다. 그리고, PIE 상의 게임이 종료하면 사라진다.

반면에 Singleton Class는 에디터가 시작되고 에디터가 종료될 때까지 살아있는다. 만약 에디터 상에서 여러개의 PIE 에디터를 띄워도, PIE 세션에 각각 있는 것이 아니라. 게임 속에 단 하나만 존재한다.