[UE5] UI 바인딩

kkado·2024년 2월 26일
0

UE5

목록 보기
18/61
post-thumbnail

게임에서 UI에 메시지를 출력하는 기능은 필수적이다.
UMG에서 만든 위젯의 내용을 블루프린트를 이용해서 상황에 맞게 사용해 보고자 한다.

게임 시작 시 HUD를 출력하도록 설정

먼저 위 사진과 같은 단순한 'MyHUD' HUD를 만든다.

이후 MyCharacter 블루프린트 에디터를 열어서 게임 시작 시 MyHUD를 뷰포트에 보여주도록 설정한다.

  • 'Create Widget' 노드를 생성 -> Class에 'MyHUD'를 선택 -> Return Value에서 'Promote to Variable' 선택 (후에 참조할 수 있도록 변수화 시켜준다)
  • 'Add to ViewPort' 노드 연결. Target 핀에 My HUD를 연결

컴파일 후 실행해보면 뷰포트에 MyHUD가 나오고 있는 것을 확인할 수 있다.


Text Block에 바인딩 생성

이제 캐릭터가 특정 동작을 수행함에 따라 텍스트를 변경해 보자.
먼저 화면에 출력할 텍스트 변수를 만든다. 이름은 'ScreenMessage' 로 만든다.


그리고 MyHUD에서 우측 상단의 'Graph' 탭으로 전환하여 MyCharacter 변수를 만든다.
MyCharacter 클래스에서 선언한 ScreenMessage에 접근할 수 있게 하기 위함이다.

'Get player Character' 노드와 'Cast to MyCharacter' 노드를 거쳐, Promote to Variable 해 준 후 'MyCharacter' 라는 이름으로 설정한다.

이제 MyHUD에서 MyCharacter라는 변수로 접근할 수 있다.
Text Block의 'Text' 프로퍼티에서 Bind 버튼을 클릭하고, 'Create Binding'을 클릭한다. 이것은 텍스트 상자의 텍스트 값을 특정 변수에 연결함으로써, 변수를 변경시키면 텍스트가 변경될 수 있도록 하는 것이다.

MyCharacter에서 만들어둔 Screen Message 변수를 연결해 준다.
이제 Screen Message의 값이 화면에 연결되었다.


마지막으로 UseObject 이벤트가 발생하면 어떤 식으로 텍스트를 바꿀 것인지 설정해 준다.

UseObject 이벤트 트리거 노드에서 Triggered 이벤트가 발생하면 (즉 키를 누르고 있는 동안) ScreenMessage를 Hello 로 바꾸고, Completed 이벤트가 발생하면 (즉 키를 떼면) 다시 공백으로 설정해서 텍스트를 지우도록 설정했다.

이제 컴파일 후 실행해보면, F 키를 누르는 동안에는 Hello가 표시되고 떼면 사라진다.

profile
울면안돼 쫄면안돼 냉면됩니다

0개의 댓글