UDN
Search public documentation:

UIOverlayWidgetsKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Unreal UI 오버레이 위젯

문서 요약: 툴팁과 콘텍스 메뉴와 같은 오버레이 위젯에 대한 설명

문서 변경 내역: Preston Thorne 이 UI Overlay Widgets 정보를 추가함

툴팁

UIObject 는 이제 ToolTip 데이터 저장 바인딩을 갖습니다. 이 바인딩은 마우스를 위젯 위로(일반적으로 로컬라이즈된 문자열에 바인딩 시킴) 위치할 경우 위젯의 툴팁에 무엇이 표시되는지를 제어합니다. 기본 행동으로 각 장면(한 번에 1개의 툴팁만이 보여져야 하기 때문에)에 1개의 툴팁 위젯이 있습니다. 위젯 위로 마우스를 이동하면 위젯은 ToolTip 데이터 저장 바인딩 장면의 글로벌 툴팁 객체로 복사하고 툴팁의 지연 타이머를 시작시킵니다. OnQueryTooltip 대리자를 처리하여 사용자 지정 툴팁 객제를 제공할 수 있지만, 만약 그렇게 하면 UIObject::ActivateToolTip내의 모든 단계를 직접 실행해야 합니다.

관련 메서드:

  • GameUISceneClient.CanShowToolTips - 이것이 False를 반환하면 툴팁이 표시되지 않습니다.
  • UIObject::ActivateToolTip - 장면의 기본 툴팁으로 위젯의 ToolTip 바인딩을 전달합니다.
  • UIObject.delegateOnQueryToolTip - 자신의 위젯에 사용자 지정 툴팁 객체를 제공할 수 있게 합니다.
  • UIToolTip.delegateActivateToolTip() - 윗젯의 경계에 들어가자마자 호출됩니다. 원하는 경우 툴팁이 표시되는 것을 방지할 수 있습니다. 기본적으로 약간의 지연 후에 툴팁을 표시하는 타이머를 시작시키도록 되어있습니다. 원하는 경우 여기서 툴팁의 데이터 바인딩을 동적으로 설정합니다.
  • UIToolTip.delegateDeactivateToolTip() - 장면의 ActiveControl이 변경될 때 호출됩니다. 원하는 경우 툴팁이 감춰지는 것을 방지합니다. 기본적으로 툴팁을 감추도록 되어있습니다.

관련 변수

  • GameUISceneClient.bDisableToolTips - 글로벌적으로 툴팁을 사용 불가시킵니다. 이 값은 =CanShowToolTips=에 의해 확인됩니다.
  • UIInteraction.ToolTipInitialDealySeconds - 마우스가 위젯의 경계에 들어선 후 툴팁이 나타날 전까지 몇 초가 경과되는 가를 제어합니다.
  • UIInteraction.ToolTipExpirationSeconds - 툴팁이 자체적으로 사라지기 전에 (예: 마우스를 위젯으로 위로 이동시킨 후 움직이지 않는 경우) 몇 초가 걸리는가를 제어합니다.

흐름

장면의 ActiveControlSetActiveControl() 에서 변경되면 새 ActiveControl 에서 ActivateToolTip 이 호출됩니다. 스크립트가 기본 동작을 재정의할 수 있도록 하기 위해 UIObject.ActivateToolTip() 은 먼저 OnQueryToolTip 대리자를 호출합니다. OnQueryToolTipFALSE 를 반환하고 위젯의 ToolTip 바인딩이 유효한 경우 장면의 글로벌 툴팁 위젯이 활성화되고(예: 이것의 초기 지연 시간(초) 타이머가 활성화됩니다) ActiveControlToolTip 바인딩을 장면의 기본 툴팁 위젯으로 연결시키기 위해 UIToolTip::LinkBinding 이 호출됩니다. 각 프레임에서 툴팁 위젯은 UGameUISceneClient::Tick() 에 의해 틱됩니다. 일단 ToolTipInitialDelaySeconds 가 전달되면 툴팁은 자신을 형식 설정하고, 위치 배정하고, 표시합니다. 장면 클라이언트는 각 프레임에서 계속해서 툴팁을 틱합니다. 일단 ToolTipExpirationSeconds 가 전달되면 툴팁은 자신을 감춥니다.

콘텍스 메뉴

UIObject 는 이제 콘텍스 메뉴 데이터 바인딩을 갖습니다. 이 바인딩을 어디서 콘텍스 메뉴의 항목이 유래하는지를 정의합니다. 또한 콘텍스 메뉴가 표시되기 전에 UnrealScript를 통해 콘텍스 메뉴에 수동으로 항목을 추가 및 제거할 수 있습니다. 활성 컨트롤이 콘텍스 메뉴를 지원하지 않는 경우, 부모 체인에 있는 각 위젯에 콘텍스 메뉴를 제공할 수 있는 기회가 주어집니다.

관련 메서드

  • UIObject::ActivateContextMenu 위젯의 ContextMenu 데이터 바인딩을 장면의 글로벌 콘텍스 메뉴 위젯으로 전달하고 콘텍스 메뉴를 엽니다.
  • UIObject.delegateOnOpenContextMenu - 위젯에 사용자 지정 콘텍스 메뉴를 제공할 수 있게 합니다. 여기서 UnrealScript에 있는 항목을 추가/제거/등을 합니다.
  • UIObject.delegateOnCloseContextMenu - UI 시스템이 현재 활성 상태인 콘텍스 메뉴를 종료하고 싶을 때 호출됩니다. 재정의하거나 콘텍스 메뉴가 닫히는 것을 방지할 수 있도록 합니다.
  • UIObject.delegateOnContextMenuSelected - 사용자가 콘텍스 메뉴에 있는 항목을 클릭하거나 선택할 때 호출됩니다. 여기서 선택한 액션에 대한 논리를 실행합니다.
  • UIContextMenu::Open - 콘텍스 메뉴를 표시하는데 필요한 모든 단계를 실행합니다(콘텍스 메뉴가 표시되야 할 위치를 계산하고, 콘텍스 메뉴의 목록을 채우고, 메뉴에 포커스를 설정하는 등).
  • UIContextMenu::Close - 콘텍스 메뉴를 닫는데 필요한 모든 단계를 실행하고, 장면을 일반 모드로 반환합니다(이전에 포커스된 컨트롤로 포커스를 복원시키고, 콘텍스 메뉴를 감추고, 등). * UIContextMenu 스크립트 메서드 - 수동으로 추가하기, 제거하기, UnrealScript 또는 C++에서 콘텍스 메뉴 항목 가져오기를 허용하는 메서드.

관련 변수

  • UIObject.ContextMenu - 콘텍스 메뉴 항목을 제공하는 데이터 바인딩 속성. 스크립트에서 동적으로 콘텍스 메뉴를 빌드하는 경우에는 필요가 없습니다.

흐름

UIObject::ProcessInputKey 가 마우스 오른쪽 버튼 릴리스 이벤트를 수신하면 유효한 콘텍스 메뉴 참조를 얻기 위해 ActivateContextMenu 를 호출합니다. 위젯이 콘텍스 메뉴를 지원하지 않는 경우, 호출은 부모 계층으로 전달되어 부모 위젯이 콘텍스 메뉴를 제공할 수 있도록 합니다. 먼저 ActivateContextMenu 가 스크립트로 하여금 콘텍스 메뉴를 제공할 수 있도록 하기 위해 OnOpenContextMenu 대리자를 호출합니다(또한 스크립트에는 장면의 기본 콘텍스 메뉴를 사용하는 옵션이 있지만 스크립트에서 항목을 수동으로 콘텍스 메뉴에 추가합니다. 이에 대한 예제는 UIButton 을 참조해 주십시오). 유효한 콘텍스 메뉴가 반환되면 ActivateContextMenu 는 콘텍스 메뉴의 Open 을 호출합니다. UIContextMenu::Open 은 현재의 마우스 위치와 그때의 콘텍스 메뉴의 위치를 가져옵니다. 그런 다음 목록을 채우고 수동으로 콘텍스 메뉴가 2번째 렌더 프레임인 다른 위치로 갑자기 움직이지 않도록 목록의 렌더링 경계를 처리합니다. 사용자가 선택하면 UnrealScript에게 알리기 위해 OnContextMenuSelected 대리자가 호출되고, 그런 다음 콘텍스 메뉴를 숨기고 포커스/입력 컨트롤을 보통으로 반환시키기 위해 Close() 가 호출됩니다.