Make Unreal REAL.
article thumbnail
멀티 플레이어 플러그인 제작: 위젯 바인딩 2

Unreal Engine 5 C++ Multiplayer Shooter 헤더를 포함한다. 세션 생성 시 사용할 설정은 나중에 다시 참고할 수도 있으니 멤버 변수로 선언한다. CreateSession() 세션 생성 함수를 구현한다. 만약 세션 생성에 실패하면, 저장해 둔 델리게이트 핸들을 이용해 델리게이트 리스트에서 델리게이트를 등록 해제한다. NULL 온라인 서브시스템이면 bIsLANMatch 옵션을 true로 설정해, LAN 매치로 세션을 생성한다. 세션 생성에 문제가 있을 경우 bUseLobbiesIfAvailable 옵션을 true로 설정해본다. UI를 띄우기 위해 초기화하는 MenuSetup() 함수에서 최대 참가 인원수와 매치 종류를 인자로 받도록 변경한다. 다른 레벨로 이동할 때 호출되는 UU..

article thumbnail
멀티 플레이어 플러그인 제작: 위젯 바인딩

Unreal Engine 5 C++ Multiplayer Shooter 현재 위젯 블루프린트에는 2개의 버튼이 있다. 부모 위젯 클래스인 Menu에서 버튼에 함수를 바인딩한다. 오버라이드한 Initialize() 함수에서는 각 버튼의 OnClicked 델리게이트에 함수를 등록할 것이다. NativeConstruct() 함수를 사용해도 된다. UPROPERTY(meta = (BindWidget)) 매크로를 지정해주고 변수 이름을 위젯 블루프린트 상의 이름과 똑같이 설정해주면, GetWidgetFromName() 함수로 위젯을 가져오지 않고도 자동으로 할당 된다. 단, 위젯 이름이 다를 경우 크래시가 날 수 있으니 주의해야 한다. 같은 플러그인에 포함된 UMultiplayerSessionsSubsystem을..

article thumbnail
멀티 플레이어 플러그인 제작: 메뉴 위젯

Unreal Engine 5 C++ Multiplayer Shooter 위젯 블루프린트의 부모로 지정할 새로운 위젯 클래스를 플러그인의 Source 폴더에 생성한다. 위젯 클래스의 내용을 수정하기 전에 플러그인의 모듈 빌드 설정에 다음을 추가해줘야 한다. 메뉴를 뷰포트에 띄울 MenuSetup() 함수를 선언하고 구현한다. AddToViewport() 함수 이외의 내용은 NativeConstruct() 함수에 구현해도 상관없다. 플러그인의 Content 폴더에 위젯 블루프린트를 생성한다. 만약 Menu 클래스가 부모 클래스에 뜨지 않으면, 에디터를 종료한 후 VS 파일을 재생성하고 다시 컴파일한다. 레벨 블루프린트를 열어 BeginPlay() 함수에서 위젯을 뷰포트에 추가해 테스트해본다.

article thumbnail
멀티 플레이어 플러그인 제작: 뼈대 구성

Unreal Engine 5 C++ Multiplayer Shooter 세션을 관리하기 위한 게임 인스턴스 서브시스템의 뼈대를 잡도록 한다. 세션의 생성, 검색, 참가, 파괴, 시작 함수를 public으로 제공해, 플러그인을 통해 간편하게 세션을 관리할 수 있도록 한다. AddOn____SessionCompleteDelegate_Handle() 함수는 FDelegateHandle 타입의 핸들을 반환하고, 나중에 이 핸들을 통해 ClearOn____SessionCompleteDelegate_Handle() 함수를 호출해 델리게이트 리스트에서 델리게이트를 등록 해제할 수 있다.

article thumbnail
멀티 플레이어 플러그인 제작: 프로그래밍 서브시스템

Unreal Engine 5 C++ Multiplayer Shooter Programming Subsystems An overview of programming subsystems in Unreal Engine 4. docs.unrealengine.com 언리얼 엔진의 서브시스템(Subsystem) 엔진 코드를 수정하지 않고도 제공하는 클래스의 하위 기능을 만들어 관리할 수 있도록 한다. 이미 많은 API를 제공하는 클래스를 더 복잡하게 만들지 않아도 된다. Engine, Editor, GameInstance, LocalPlayer 서브시스템이 있다. 서브시스템은 다음과 같이 관리된다. 주 시스템이 생성될 때, 서브시스템 객체도 함께 생성된다. 주 시스템이 초기화될 때, 서브시스템의 Initialize(..

article thumbnail
멀티 플레이어 플러그인 제작: 생성

Unreal Engine 5 C++ Multiplayer Shooter 언리얼 엔진의 모듈과 플러그인은 다음과 같은 종속성을 갖는다. 게임 모듈은 엔진 모듈을 사용할 수 있지만, 엔진 모듈은 게임 모듈을 사용할 수 없다. 추가적으로 플러그인을 활성화하면 uproject 파일에 추가된다. Plugins 설정 창에서 새 플러그인을 만들 수 있다. C++ 코드로만 이루어진 모듈과 달리, 플러그인은 메시 등의 uasset 콘텐츠도 포함할 수 있다. 플러그인 생성이 완료되면, 프로젝트의 Plugins 폴더에 플러그인 이름의 폴더와 파일들이 생성된다. 플러그인은 주 게임 모듈과 마찬가지로 프로젝트에서 독립적인 모듈로 컴파일되며, 하나의 플러그인도 여러 개의 모듈로 구성된다. uplugin 파일을 열어 플러그인의 정..

검색 태그