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

이벤트 디스패처

언리얼 엔진

하나 이상의 이벤트를 Event Dispatcher (이벤트 디스패처)에 바인딩하면, 이벤트 디스패처 호출시 그 모든 이벤트가 발동되도록 할 수 있습니다. 이러한 이벤트는 블루프린트 클래스 안에서 바인딩해도 되지만, 이벤트 디스패처를 통해 레벨 블루프린트 안에서 이벤트가 발동되도록 할 수도 있습니다.

이벤트 디스패처 만들기

이벤트 디스패처의 생성은 블루프린트 에디터의 내 블루프린트 탭에서 이루어집니다.

이벤트 디스패처를 새로 만들려면:

  1. 내 블루프린트 창에서 Event Dispatcher (이벤트 디스패처) 카테고리의 plus_Button.png 버튼을 클릭합니다: myblueprint_eventdispatcher.png.

  2. 내 블루프린트 탭의 목록 끝에 나타나는 이름 칸에 이벤트 디스패처 이름을 입력합니다.

    name_event_Dispatcher.png

프로퍼티 세팅

내 블루프린트 탭에서 이벤트 디스패처를 선택하면, 디테일 패널에서 그 프로퍼티를 편집할 수 있습니다. 이벤트 디스패처에 대한 툴팁과 카테고리를 설정할 수도 있고, 입력을 추가할 수도 있습니다.

이벤트 디스패처에 입력을 추가하면, 이벤트 디스패처에 바인딩된 각각의 이벤트에 변수를 전송하는 것이 가능해 집니다. 이를 통해 데이터가 블루프린트 클래스 안에서만 흘러다니는 것이 아니라, 블루프린트 클래스와 레벨 블루프린트를 오가도록 할 수도 있습니다.

이벤트 디스패처에 입력을 추가하는 프로세스는 함수, 커스텀 이벤트, 매크로에 입력과 출력을 추가하는 방식과 비슷합니다. 다른 이벤트와 똑같은 입력을 사용하고자 한다면, Copy Signature from (다음에서 시그너처 복사) 드롭다운을 사용하여 이벤트를 지정하면 됩니다. 이벤트 디스패처에 별도의 입력을 추가하려면:

  1. 디테일 패널의 Inputs (인풋) 섹션에서 New (새) 버튼을 클릭합니다.

    new_input_Dispatcher.png

  2. 새 입력의 이름을 지어주고 드롭다운 메뉴를 사용해서 유형을 설정합니다. 이 예제에서는 String 입력 파라미터 이름은 MyStringParam 입니다.

    named_new_Dispatcher.png

  3. 파라미터에 대한 항목을 펼치는 것으로 기본값을 설정하거나 파라미터를 참조 전달할 것인지도 설정할 수 있습니다.

    expanded_input_Dispatcher.png

    노드 종단에서 이 파라미터에 대한 핀의 위치를 바꾸려면, 펼쳐진 디테일 패널 항목에서 위 아래 화살표를 사용하면 됩니다.

이벤트 디스패처 사용하기

이벤트 디스패처를 만들고 나면 이벤트 노드 추가, 노드 바인딩, 거기에 연결된 노드 언바인딩 등이 가능합니다. 내 블루프린트 탭의 이벤트 디스패처 항목을 더블클릭하여 이벤트 디스패처의 그래프를 여는 것이 가능은 하지만, 그래프가 잠겨있어 이벤트 디스패처를 바로 수정하는 것은 불가능합니다. 바인드, 언바인드, 어사인 메서드 모두 이벤트 디스패처의 이벤트 리스트에 이벤트를 추가해 주는 반면, 콜 메서드는 그 이벤트 리스트에 저장된 모든 이벤트를 실행시킵니다.

아래 설명된 노드는 전부 블루프린트 클래스와 레벨 블루프린트 양쪽에 추가시킬 수 있습니다. 이벤트 노드를 제외하면 각 노드에는 타깃 입력 핀이 있습니다:

  • 블루프린트 클래스에서 이 핀은 셀프 로 자동 설정됩니다. 즉 이벤트 리스트가 클래스로 변경되어, 모든 클래스 인스턴스가 변경된다는 뜻입니다.

  • 레벨 블루프린트에서 이 핀에는 레벨 내 클래스의 인스턴스에 대한 레퍼런스를 연결해 줘야 합니다. 즉 이벤트 리스트가 해당 클래스 인스턴스에 대해서만으로 변경된다는 뜻입니다. 액터 레퍼런스를 만드는 법에 대해서는 레벨 블루프린트 문서 를 참고하시기 바랍니다.

태그