native 코드에서 블루프린터에 함수를 호출 하고 싶을때 사용하는 플래그.


사용방법은


UFUNCTION(BlueprintImplementableEvent)

Func() 설정



으로 사용하면 되는데 주의점이 있다.


함수 반환형이 void일때는 블루프린트의 이벤

트 그래프에 바로 사용이 가능하며 설정이 customevent형식으로 노출된다.


함수형을 void Test()로 설정하면 이벤트 그래프에 다음과 같이 보인다.



그러나 함수에 반환값이 있으면 이벤트 그래프에 생성되지 않으며


함수를 오버라이드 해줘야 된다.


bool Test()라고 했을 경우에 이벤트 그래프에서 보이지 않는다.



왜 나눠놨는지는 모르겠슴....


추가적으로 매개변수를 어떻게 넣느냐에 따라 블루프린터의 함수 형태가 바뀐다.


ex) void Test(int arg1);




ex) void Test(const int arg1);




'프로그래밍 > Unreal' 카테고리의 다른 글

RunTime에 StreamingLevel 생성하기  (0) 2018.03.30

기본적으로 UE4의 레벨 시스템은 퍼시스턴트 레벨에서 Volume처리를 해서 해당 영역에 들어오면 SubLevel을 나눠서 Streaming처리를 하여 메모리에 Load/Unload 하는 방식으로 되어 있는데...

SubLevel이 너무 많으면 퍼시스턴트 레벨에 모두 포함 시켜서 관리를 하면 관리에 용이하지 않고 힘들지 않을까 해서 RunTime시에 Streaming Level을 이용하여 퍼시스턴트레벨에 붙이는 방법이 없을까라는 미션이 발생하였는데 결과부터 말하면 가능하다.




관건은 ULevelStreaming을 받아서 패키지 명을 셋팅해주는건데 ULevelStreaming옵션이 UCLASS(abstract, editinlinenew,MinimalAPI,BlueprintType, Within=World) 로 되어 있어서 그냥 사용하면 Debug모드에서 깔끔하게 터트려준다. 

새롭게 본인의 입맛에 맞는 Custom Class로 만들던가 아니면 Kismet을 사용하면 된다.


문제는 LevelTransform인데.... 이게 해당 Location으로 이동이 가능한데 이게 내부적으로는 해당 Level에 배치되어 있는 Actor들을 죄다 접근해서 일일이 Offset 적용을 해주기 때문에 부하가 있어 보인다.


방법은 게임 첫 진입시에 필요한 부분을 죄다 로딩하 하는 식으로 하거나 다른 방법을 사용하면 되지 않을까 싶다.


핵심은 저렇게 사용하여 Runtime시에 SubLevel을 조합하여 원하는 Level을 조립할 수 있는것이다.

'프로그래밍 > Unreal' 카테고리의 다른 글

BlueprintImplementableEvent  (0) 2018.08.02

+ Recent posts