본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 실습

언리얼엔진5 메모리최적화(캐스팅 대신 인터페이스사용)

by MRG 2024. 2. 13.
728x90
반응형

 

▣ 메모리를 확인하고 싶은 블루프린트에서 오른쪽마우스를 클릭하고 Size Map을 클릭합니다. 

 

 

▣ 그리고 오른쪽 상단에 있는 메뉴에서 Memory Size를 누르면 어떤 부분에서 메모리가 많이 사용되는지를 표시합니다. 

그중에 BP_Player 캐스팅하는 부분이 메모리가 많이 사용되는 걸 확인할 수 있습니다. 

 

 

▣ 해당 블루프린트를 확인을 해보면 이렇게 BP_Player를 캐스팅하는 걸 확인할 수 있습니다. 

 

 

▣ 캐스팅을 대신할 때 인터페이스를 사용합니다. 

 

https://docs.unrealengine.com/5.0/en-US/blueprint-interface-in-unreal-engine/

 

Blueprint Interface

Blueprints that declare functions to define an interface between Blueprints.

docs.unrealengine.com

 

블루 프린트 인터페이스는 다른 블루프린트에 추가할 수 있는 하나 이상의 함수(이름만 있고 구현은 없음)의 모음입니다. 인터페이스가 추가된 모든 블루프린트에는 해당 기능이 보장됩니다. 인터페이스의 기능은 인터페이스를 추가한 각 블루프린트에 기능을 부여할 수 있습니다. 이는 본질적으로 일반 프로그래밍의 인터페이스 개념과 유사하며, 이를 통해 여러 가지 유형의 객체를 모두 공유하고 공통 인터페이스를 통해 액세스 할 수 있습니다. 간단히 말해서, 블루프린트 인터페이스를 사용하면 서로 다른 블루프린트가 서로 데이터를 공유하고 보낼 수 있습니다.

 

 

▣ 블루프린트 인터페이스를 생성합니다. 

 

 

▣ 블루프린트 인터페이스 이름을 변경하고 inputs에 hp에 관한 변수를 생성합니다. 

 

 

▣ BP_Player 블루프린트로 가서 Class Settings를 클릭하고 Interfaces에서 Add를 눌러 아까 생성한 BPI로 시작하는 인터페이스를 추가합니다. 

 

 

▣ 그럼 인터페이스탭에 인터페이스가 추가되고 Event Custom처럼 Event가 추가되는데 여기서 Player Hp를 추가하는 노드를 완성합니다. 

 

 

▣  아이템 블루프린트로 돌아가서 BP_Player를 캐스팅했던 노드를 삭제하고 아까 완성한 인터페이스를 검색해서 가져옵니다.

 

 

▣ 이렇게 노드를 완성하고 컴파일 저장 후

 

 

▣ 아이템에 닿으면 Hp가 늘어나는 걸 확인할 수 있습니다. 

 

 

▣ 또한 메모리사이즈를 다시 확인해 보면 이렇게 kB로 메모리가 줄어든 걸 확인할 수 있습니다. 

728x90
반응형

댓글