언어:
페이지 정보
태그:
수준별:
엔진 버전:
언리얼 엔진

프로퍼티 바인딩

언리얼 엔진
이 페이지의 내용:

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 함수를 호출하면 바인딩이 깨집니다.