※ 개인적인 공부를 위해 포스팅 하는 글입니다.
#놀랍게도 DragDrop의 상속을 받는 클래스를 생성할 수 있다.
ㆍ 실제로 마우스를 드래그 드롭 하는 순간에 보이는 위젯도 별도로 만들어줘야 하기에, 미리 클래스도 생성해줬다.
-> 흣챠~! 들리는 이미지
# DragDropOperation
ㆍ 이미 엔진레벨에서 정의가 되어있어서 뭐 사실 별 기능은 없다. 추후 확장성을 위해 커스텀하기 편하게 가져와 사용할 준비만 해준것.
ㆍ 위젯 부분도 지금은 뭐 사이즈랑, 아이콘 이미지 세팅같은걸 받아줄 준비정도만 해주는정도로 끝냈다.
#Entry 클래스
ㆍ 인풋과 드래그와 관련된 함수들이 정의되어있는데, 이 함수들의 구현부를 한번 작성해보자
ㆍ Drag위젯클래스를 받을 수 있는 변수도 선언해주고, 당연히 전방선언 했다.
ㆍ 버튼을 누르면 들린 위젯 이미지가 마우스 포지션에 맞게 이리저리 연산해주는 코드.
ㆍ 드래그 하고있는게 감지되면.. 세팅을 해주는 부분
ㆍ 그 이외 취소와 유틸리티에 관련된 함수들까지 정의 완료.
사실 찾아보면 엄청 자세히 나오는 코드들이다.
# 엔트리만 드래그가 감지되어 이리저리 움직이면 이상할 것이다.
ㆍ Slot에서도 어떠한 상호작용이 필요할 것이므로 Slots 클래스로 가서 드래그와 관련된 함수를 정의해줬다.
ㆍ 지금은 그냥 초기화해주는 용도로만 쓰고있다.
Define 클래스에서 슬롯사이즈를 그냥 50 50 으로 해줬었다.
ㆍ 인벤토리 창 떠난경우엔 그냥 초기화, 만약 뭐 버리기 기능이있다면 여기에 추가하면 될듯!
#핵심은 Drop했을때의 기능이겠다.
OnInventoryEntryChanged함수는 이전 포스팅 글에서 다루고있다.
ㆍ 지금은 간단하게 아이템의 위치를 변경해주는 코드
ㆍ 커서 캡처가 안돼서 그렇지 잘 작동하고있다.
'언리얼엔진 > 언리얼 C++' 카테고리의 다른 글
GameplayAbilitySystem - Attribute (0) | 2024.10.30 |
---|---|
GameAbilitySystem 이론과 초기 세팅 (3) | 2024.10.29 |
Inventory - 아이템창에 아이템 구성해보기 (1) | 2024.10.27 |
SubSystem - 아이템 매니저 (3) | 2024.10.27 |
Scene UI - 인벤토리 구성 (0) | 2024.10.27 |