프로퍼티 바인딩

UMG 에서의 프로퍼티 바인딩 안내서입니다.

Windows
MacOS
Linux

UMG 내부에서 가장 유용한 측면 중 하나는, 블루프린트 안에서 함수프로퍼티 에 위젯의 프로퍼티를 바인딩하는 기능입니다. 프로퍼티를 블루프린트 에 있는 함수나 프로퍼티 변수에 바인딩하면, 그 함수가 호출되거나 프로퍼티가 업데이트될 때마다 위젯에 반영됩니다.

함수 바인딩

예를 들어 Progress Bar 위젯이 플레이어의 헬쓰를 항상 반영하도록 업데이트하고 싶다고 쳐 봅시다. Progress BarAppearance 아래 보면 Percent 옵션이 보이며, 그 Percent 값을 함수나 프로퍼티에 바인드 하는 것이 가능합니다 (아래 노랑 박스 부분입니다).

Apperance.png

바인드 버튼을 클릭한 다음 바인딩 생성 옵션을 선택하면, 새로운 함수가 생성되어 열릴 것입니다.

NewFunction.png

Return Value 는 Percent 의 값에 묶여 있어, 값을 넣어 Progress Bar 데이터를 물려줄 수 있습니다.

PlayerHealth.png

위에서 함수는 우리 캐릭터 블루프린트에서 Player Health 라는 변수를 구합니다. Player Health 변수가 업데이트될 때마다 자동으로 Progress Bar 의 Percent Value 에 전달되어 반영됩니다.

프로퍼티 바인딩

프로퍼티 바인딩 은 위젯의 프로퍼티에 묶여있는 프로퍼티 변수를 지정하는 것으로 이루어집니다. 프로퍼티 변수가 업데이트되면, 거기에 묶여있는 세팅은 자동으로 업데이트되어 위젯에 반영됩니다.

버튼에 대한 프로퍼티 변수를 바인딩하는 예제는 아래와 같습니다.

Property1.png

위 그림에서, 메인 메뉴에 버튼이 셋 있습니다: Continue, Start, Quit 인데, Continue 의 경우 플레이어가 세이브 게임이 있는 경우에만 가능했으면 합니다. Continue 버튼의 Behavior 섹션 아래, IsEnabled 체크를 해제(하면 버튼 기본적으로 비활성화)한 다음 바인드 버튼을 누르면 됩니다.

Property2.png

이 위젯 블루프린트에 대한 그래프 탭에서 부울 변수를 만들 수 있으며, 생성된 이후에는 바인드 버튼을 통해 할당 가능합니다 (아래에 DoesSaveExist? 라는 부울을 만들었습니다).

Property3.png

이 변수를 IsEnabled 작동방식에 묶어 두면, 게임이 시작될 때마다 세이브 파일이 존재하는지 검사하여 그 변수를 설정할 수 있으며, 존재하면 이 위젯 블루프린트로 형변환한 다음 DoesSaveExist 변수에 접근하여 True 로 설정하는 것으로써 버튼이 활성화되게 됩니다.

위젯의 프로퍼티를 바인딩한 다음 그 위젯에서 바로 Set 함수를 호출하면 바인딩이 깨집니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼