언리얼에서 UI를 사용하려면 먼저 모듈을 추가해야한다.
/** Project.Build.cs - before **/
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore"});
/** Project.Build.cs - after **/
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine, "InputCore", "UMG""});
위와 같이 Project.build.cs 파일을 열어 'UMG' 를 추가해주면 UI를 사용할 준비가 완료다.
모듈을 추가해 준 후, ProjectGameModeBase.h/.cpp 파일을 열어 다음과 같은 코드를 사용한다.
코드를 간단히 설명하면,
ChangeMenuWidget -> UI를 변경할 함수
CurrentWidget -> 현재 보여지고 있는 UI
위와 같다.
이제 스크립트를 만지는 시간은 끝이 났다.
다음으로는 Unreal Engine의 Content Browser로 가서 Blueprint를 2개 만들어야한다.
Widget Blueprint로 Main Widget과 또 다른 Widget을 만든다.
Main Widget을 들어가서 버튼을 하나 만든다.
Widget에서 Button이나 Image, Text 등 추가하고 싶은 것은 좌측의 Palette에서 검색하여 드래그하면 된다.
버튼을 추가하였으면, 원하는 위치 및 크기로 지정해두고 Events 메뉴의 OnClicked를 눌러 클릭하였을 때의 이벤트를 추가해보자.
기본 설정은 Anchors를 중앙에 두고 버튼이 잘 보일수 있게 해두었다.
OnClicked를 추가하면 Event Graph로 넘어가면서 클릭 이벤트가 추가되는 것을 확인할 수 있다.
버튼을 누르면 다른 Widget으로 넘어갈 수 있게 노드를 생성하면 된다.
Game Mode를 얻어와 ChangeMenuWidget 함수를 실행하기 위해 ProjectGameModeBase로 형변환을 해준 후 함수를 연결해주면 된다.
그리고 새로 바꿀 Widget으로 New Widget Class에 설정하면, 원하는 Widget으로 넘어갈 수 있도록 이벤트를 만든 것이다.
그리고 게임을 실행하면 마우스를 보이게 하기 위하여 Player Controller를 기반으로 한 블루프린트를 생성한 후 열어준다.
Details 탭의 Mouse Interface 중, Show Mouse Cursor와 Enable Click Events를 체크해주고 Compile & Save를 한다.
마지막으로 ProjectGameModeBase를 블루프린트로 생성한 후, 창을 열어준다.
이제 이전의 스크립트에서 선언했던 Stating Widget Class의 기본 변수를 Main Widget으로 설정해주고,
Player Controller Class를 방금 생성한 컨트롤러로 바꾸어 준 후 Compile & Save를 하고 실행하면 된다.
버튼을 클릭하면 바꾸어 준 페이지로 변경되는 것을 확인할 수 있다.
'게임 개발 끄적 > Unreal (Blueprint)' 카테고리의 다른 글
[UE4] Mirror (0) | 2017.12.21 |
---|---|
[UE4] Save Game (0) | 2017.12.06 |
[UE4] Drag & Drop (0) | 2017.12.04 |
[UE4] Scroll Box (0) | 2017.12.01 |
[UE4] Flow Controll (0) | 2017.11.24 |