[내일배움캠프/언리얼] Blueprint Communication 실습

김세희·2025년 5월 20일

1. 오늘 배운 개념 요약

에픽 게임즈에 올라와 있는 공식 강의를 듣고 따라 해보았다.
강의: https://dev.epicgames.com/community/learning/courses/D2r/unreal-engine-791723/pjw8/unreal-engine-4c2497

  1. 재사용 가능한 블루프린트 생성
    부모 클래스의 블루프린트 함수 재사용하여 간단하게 자식 클래스 함수 구현
    부모 클래스: BP_Door
    문을 열고 닫는 부분 구현

    자식 클래스: BP_Coor_Trigger
    트리거 박스에 플레이어가 오버랩 되는 것만 체크하여 부모 클래스의 커스텀 함수를 불러 옴
  1. 블루프린트 인터페이스
    이름만 있고 구현은 없는 함수 하나 이상으로 된 집합으로, 이를 다른 블루프린트에 추가할 수 있다. 어떠한 기능이 있는지 우선적으로 적어놓은 다음, 인터페이스를 상속 받은 클래스가 해당 기능을 구현하여 사용한다.
    BPI_Inventory
    함수명과 입출력 변수에 대한 정의만 있다.

    플레이어 캐릭터 블루프린트
    HasItem 구현

    BPI_LearningKit_PlayerInteractions의 InteractWith 함수 실행

    다른 블루프린트에서 InteractWith 이벤트가 실행됐을 때 HasItem 함수를 실행한다.
  1. 이벤트 디스패처
    하나 이상의 이벤트를 이벤트 디스패처에 바인딩하면 이벤트 디스패처 호출시 모든 이벤트를 발동시킬 수 있다.
    BP_GameMode에 이벤트 디스패처 추가: CollectibleCountUpdated
    게임모드에서 모아야하는 아이템 갯수를 저장하는 커스텀 함수가 실행되면 이벤트 디스패처를 콜

    모으는 아이템의 블루프린트에서 게임모드의 커스텀 함수 실행

    플레이가 시작되면 아이템의 갯수를 위젯에 출력하고 카운트가 0이 되면 마지막 문을 여는 함수를 바인딩 함

2. 느낀 점 & 개선하고 싶은 점

이전에는 오버랩시 일어나는 이벤트들을 객체별로 판단하느라 블루프린트가 지저분했는데 인터페이스와 이벤트 디스패처로 깔끔하게 만들 수 있을 것 같다. 하지만 제대로 쓰려면 좀 더 공부가 필요하다.

0개의 댓글