본문 바로가기
공부/Unreal Engine 5

[언리얼5] 위젯에서 인터넷주소(URL)열기

by MY블로그 2024. 5. 30.

위젯에서 특정 인터넷주소(URL)을 연결하는 방법입니다.
C++에서 연결하는 방법과 BluePrint에서 연결하는 방법을 모두 정리 합니다.

BP에서 실행하기

우선 위젯 블루프린트에서 버튼을 생성하는 부분은 생략하도록 하겠습니다.
위젯 블루프린트에 클릭할 수 있는 Button을 통하여 클릭시 이벤트를 생성 합니다.

위젯블루프린트의 캔버스에 버튼과 텍스트 생성

생성된 버튼을 클릭하고 디테일 메뉴에서 이벤트 > 클릭시 이벤트 추가

이후 우측상단의 그래프 모드로 변경후 생성된 클릭시 이벤트의 노드와 Launch URL 함수를 연결합니다.

블루프린트만으로 구현할경우 매우 간단하게 연결이 가능 합니다.

 

CPP에서 실행하기

CPP에서 URL을 설정하고 버튼을 클릭시 연결되는 방법은 블루프린트에서 연결하는 방법보다는 조금 까다롭습니다.

우선 UserWidget 클래스를 상속받은 커스텀메뉴 클래스가 있다는 가정하에 진행하도록 하겠습니다.

UserWidget 클래스를 상속받는 Menu 클래스

블루프린트에서 생성한 Button과 동일한 이름으로 UButton클래스의 포인터를 만들고 프로퍼티를 통하여 위젯과 바인드 합니다. 이때 포인터의 이름은 꼭! 블루프린트에서 생성한 이름과 일치해야합니다.

 

추가적으로 Button의 클릭이벤트발생시 실행될 바인딩 함수도 만들어 주도록 합니다. URLButtonClicked().

헤더

이후 만들어진 함수를 정의 해주도록 합니다.

함수의 내용은 단순히 URL을 연결하기 위한 함수를 실행하는 기능만 구현합니다.
FPlatformProcess::LaunchURL() 함수를 실행하기 위해서는 헤더 파일을 추가해야 합니다.

추가해야할 헤더는 아래의 2가지 헤더 입니다.

#include "Runtime/Core/Public/Misc/Paths.h"
#include "Runtime/Core/Public/HAL/PlatformProcess.h"

*Tip*

파라미터의 예시로는 인터넷 실행브라우저를 시크릿모드로 실행할 수 있도록 지정이 가능합니다.

// 파라미터의 값을 아러처럼 할경우 시크릿모드 실행
FString Parameters = TEXT("--incognito");

함수가 완성되었다면 버튼의 클릭이벤트와 함수를 바인딩 합니다.

함수의 바인딩은 해당 클래스(위젯)의 초기화 함수 내에서 진행하도록 합니다.(Beginplay(X) / Initialize(O))

 

테스트

테스트로 개인 블로그 URL을 연결하도록 하였습니다.
실행한 컴퓨터에서 기본설정된 웹 브라우저로 실행됩니다!

 

댓글