🎮Unreal4/Basic

[UE4] 부모 함수 호출, 블루프린트 매크로 라이브러리(함수 라이브러리), Get 함수(사본/참조)

공대 컴린이 2023. 1. 27. 22:22
728x90

📕 오버라이딩 - 부모 함수 호출

부모의 함수를 자식이 상속받아 오버라이딩하는 경우 부모의 함수를 먼저 호출한 뒤 자식의 함수를 호출하는것이 올바른 프로그램 순서이다.

따라서 언리얼을 통해 오버라이딩을 구현할 때에도 부모의 함수를 꼭!! 먼저 호출하는 습관을 들이자

📒 블루프린트 매크로 라이브러리 (Blueprint Macro Library)

매크로는 클래스에 노드접기 기능들을 별도로 모아둔 것이라고 이해하면 좋다. 

다른 블루프린트에 넣어 사용할 수 있도록 매크로 또는 독립된 그래프 모음을 블루프린트 매크로 라이브러리에 담아둘 수 있다. 자주 사용되는 노드 시퀀스를 실행과 데이터 전송을 위한 입력과 출력까지 그대로 포함하여 저장할 수 있기 때문에 프로그램을 구현하는데 시간을 절약할 수 있다.

매크로는 자신을 참조하는 모든 그래프에 공유되지만, 컴파일 도중에는 마치 노드접기 기능인것처럼 원래 그래프로 자동 펼쳐진다. 

 

* 블루프린트 함수 라이브러리 간단 설명

C언어로 치면 static 함수(전역함수)들을 모아둔 것으로 이해하면 좋다.

매크로 사용예시)

매크로 클래스 (M_Weapon)

나는 플레이어가 수행해야할 콤보 동작들을 담은 배열 (Do Action Datas)을 호출해서 안에 저장된 몽타주를 순서대로 실행시키기 위해 매크로를 사용했다. 

해당 매크로를 사용하여 실행시키고 싶은 배열의 인덱스를 파라미터로 넘겨주면 Play Anim Montage가 실행되는 매크로를 제작하였다.

📔 Get 함수 (사본 or 참조)

배열을 사용할 때 배열의 원소를 가져오기 위해 Get 함수를 종종 사용한다. 이때 Get 사본과 참조가 나뉘는데는 데이터의 종류에 따라 다르다.

  • 사본
    사본은 어떤 데이터가 들어올지 예상되지 않는 상황에서 사용한다.
    액터같은 객체는 실제로 게임이 플레이되고 배치되어야 생성되므로, 미리 등장하지 않아 원본값을 확인할 수 없다.
    따라서 사본으로 데이터를 Get 할때는 객체를 복사하여 사용하기 때문에 참조보다 속도가 느리다.
  • 참조
    참조는 구조체처럼 어떤 데이터가 들어올지 예상이 되는 상황에서 사용한다. 
    참조는 이미 데이터가 명확하기 때문에 복사하여 가져오지 않고 원본값을 말 그대로 참조하여 쓰기때문에 원본값의 수정이 가능하다.
    또한 참조는 복사하는 시간이 없으므로 사본보다 사용 속도가 빠르다.

이처럼 데이터를 알 수 없는 객체를 Get할때는 (참조)는 뜨지않고 (사본)만 뜨는 경우가 존재한다.


참조

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/Blueprints/UserGuide/Types/MacroLibrary/

 

블루프린트 매크로 라이브러리

다른 블루프린트에서 재사용할 매크로를 선언하고 정의하는 블루프린트 입니다.

docs.unrealengine.com

 

728x90