반응형

언리얼에서 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

+ Recent posts