블루프린트 DragDropOperation 생성 (dropOperation) -> 변수 생성 (m-DropSlot, w-Slot 오브젝트 래퍼런스, 인스턴스 편집, 스폰시 노출 On )[w-slot] create Drop Operation : class - 아까 만든 dropOperation, m-dropSlot - self[bp-gameState] e-itemSwap에서 인덱스를 제거하고 Dst, Src로 변경 ( bp-slot, 오브젝트 래퍼런스 )[w-slot] on Drop 함수 호출 : dropOperation, bp-gameState 형변환 - e-item swap 호출, Dst : m-dropSlot의 m-inventory Slot / Src : m-Inventory Slot실행 - 잘 옮겨지는것을 확인
아이템 버리기
[bp-gameState] e-itemDrop 함수 생성 / 입력 - Slot : bp-slot, 오브젝트 래퍼런스 - 시퀀스 0 : if -> m-item - get Class Defaults의 M-enable이 True일 경우 SpawnActor로 스폰 ( 위치는 플레이어의 액터 위치 ) - is Valid -> m-item은 bp-itemSlot, m-count는 0로 설정[w-main] On Drop 함수 호출 : dropOperation, bp-gameState 형변환 - > e-item Drop 호출 ( Slot에 m-dropSlot의 m-inventory slot 연결 )[w-inventory] On Drop 함수 호출 : return true 반환 ( 이거 인벤토리에도 버려지는걸 방지하기 위한 것 )실행 - 인벤토리에 두면 안버려지고 밖에 버리면 잘 버려지는것을 확인
아이템 사용하기
[bp-item-base] 변수 m-use ( bool형) 생성 - if : m-enable && m-Use가 True 라면 Use - destory Actor[bp-gameState] e-itemUse 함수 생성 - e-item Drop - is Valid - e-use 호출[w-slot] on Mouse Button Double Click 함수 호출 - 시퀀스 0 : in Mouse Event - Get Effection Button == 왼쪽 마우스 버튼이 True 라면 - bp-gameState에서 e-item Use 호출실행 - 더블 클릭하면 잘 실행되는 것을 확인
아이템 팝업 창 띄우기, 기능 사용하기
w-popUp 생성 후 위젯 설정[w-popUp] construct - bp-gameState 형변환 - 변수 승격 (m-gameState) / bp-slot 변수 생성 ( bp-slot, 오브젝트 래퍼런스 )[w-slot] On Mouse Button Up 함수 호출 : 시퀀스 0, 1 : 오른쪽 마우스 버튼이 아니고, m-item의 m-enable이 Flase 라면 return unHandled / 시퀀스 2 : create Widget (w-pop Up) - get Mouse Position on Viewport - set Position in Viewport - Add to Viewport 연결[w-popUp] 각 버튼에 대한 함수 호출실행 - 각각의 버튼에 대한 것이 잘 실행되는것을 확인