Unreal

Unreal_8기 본 캠프 5일차_인벤토리 만들기(1)

story98138 2026. 2. 27. 17:38

1. 인벤토리 시스템 만들기 (부분 캡쳐)

"Tab" Key를 눌렀을 때, 인벤토리가 나오고 한번 더 누르면 꺼진다.

 

"T" key를 눌렀을 때, 기본 아이템이 인벤토리에 추가된다.

 

WB_ItamSlotMaster 블루프린트(EventGragh)

 

"WB_SlotContainer" 블루프린트(EventGragh)
BP_ThirdPersonCharacter 블루프린트 (EventGragh)
BPC_Inventory (1)
BPC_Inventory (2)
BPC_Inventory (3)

 

2. 추가적인 인사이트

오늘은 "AvarisAkaDu" 의 유튜브를 따라해보면서 인벤토리 시스템 중 일부를 만들어보았습니다.

위젯 블루프린트를 디자인하고 각 블루프린트마다 함수와 변수를 지정, 불러오기하며 클래스마다 상호작용이 어떤 식으로 이루어지는지 깊은 고민을 하게 된 시간이 됐습니다.

 

<FUNCTIONS Public / Private>

 

-  Public (공개)

  • 의미: 외부에서 자유롭게 접근할 수 있는 상태입니다.
  • 특징: 다른 블루프린트(예: 캐릭터, 게임모드, 다른 위젯 등)에서 이 블루프린트를 참조(Reference)하고 있다면, 그 안에 있는 퍼블릭 함수를 직접 호출하거나 변수 값을 바꿀 수 있습니다.
  • 용도: "다른 물체와 상호작용할 때 필요한 기능"에 사용합니다.
    • 예: 인벤토리 슬롯의 IsSlotNotEmpty 함수를 퍼블릭으로 두면, 캐릭터가 아이템을 주웠을 때 인벤토리에 "이 슬롯 비었니?"라고 물어볼 수 있습니다.

 

- Private (비공개)

 

 

  • 의미: 오직 **자기 자신(이 블루프린트 내부)**에서만 사용할 수 있는 상태입니다.
  • 특징: 외부 블루프린트에서는 이 함수나 변수가 아예 보이지 않습니다. 검색해도 나오지 않으며, 강제로 호출할 수도 없습니다.
  • 용도: "외부에 노출할 필요가 없는 내부적인 계산이나 로직"에 사용합니다.
    • 예: 슬롯 안에서 텍스트 색상을 계산하는 내부 로직이나, 데이터 정렬용 임시 함수 등.

왜?

 모든 함수를 Public으로 만들면 다른 블루프린트에서 노드를 검색할 때 복잡도가 증가하고 외부에서 건드리면 안 되는 중요한 내부 데이터를 실수로 수정하여 버그를 유발할 수 있습니다.