이번엔 아이템 드래그를 통한 슬롯이동에 대해서 가지고 왔습니다.
슬롯을 드래그하면 아이템이 옮겨지게끔 만들려니 또 버튼이 필요하겠지! 했지만...
아니였습니다.
물론 그렇게 할 수도 있겠지만 언리얼에는 해당 기능에 도움을 줄수있는 요소들을 만들어 주셨네요...
바로 dragdrop 오퍼레이션입니다.
드래그하고 드롭된것들에 대해 데이터를 전달해주는 역할을 할 블루프린트입니다!
바로 하나를 생성한후
내부에서 이동시킬 데이터들을 선언해주게 되면
이 데이터들을 위 함수를 통해 이동 가능하게 됩니다!
여기 까지 해주고 다음은 저번에 만들어둔 슬롯위젯으로 가봅시다.
그리고 좌측상단에 추가를 누르면 아래처럼 많은 함수들이 생성됩니다...
이중 저는 클릭, 드래그, 드롭 함수들을 사용해보겠습니다.
먼저 클릭입니다.
이부분은 딱히... 버튼이랑 다른점을 찾지못하겠네요... 여튼 간단히 만들어 주고
이번엔 드래그 입니다.
드래그시 현재 아이템의 이미지를 60*60크기로 만들어주고!
그 다음 위에서 만들어준 dragdrop 오퍼레이션데이터형으로 만들어 반환시키는 방식입니다!
이렇게 반환해주면 drop부분에서 데이터를 받고 아래처럼 서로의 자리를 변경하는 방법으로
교환 이동이 가능하게 됩니다!
굳굳 잘되네요..
만약 여기까지 안된다면...
저도 한번 헤맸습니다..
다행히.. 해결된 문제였는데
드래그시 제가 끌어가고 싶은 위치가 아니라 이상한 위치가 잡히며 이동이 제대로 되지 않던 문제였습니다.
해결책은 visible부분이였습니다 .
현재 슬롯 구성이 아래와 같은데
이중 제일 알 텍스트 부분만 visible 처리가 되어있어 위치가 이상하게 잡혔습니다...
이러한 경우에는 모든 부분은 not hit testable(self only)로 비활성화 시켜준후
캔버스 패널에만 visible 처리를해주시면 해결하실수 있습니다!
틀린점이 있다면 댓 달아주세요!
'언리얼 최고 > 언리얼 구현' 카테고리의 다른 글
언리얼엔진(UE5) -- 확률성 시스템 만들어 보기 (0) | 2022.11.21 |
---|---|
언리얼엔진(UE5) -- UI창 드래그(drag) 하는 방법 (5) | 2022.11.19 |
언리얼엔진(UE5) -- RPG 인벤토리 제작 1-(슬롯 채우기) (1) | 2022.11.18 |
언리얼엔진(UE5) 데이터 테이블을 사용한 게임 아이템 관리 [블루프린터] (0) | 2022.11.16 |
언리얼엔진(UE5) -- water(바다, 강 섬) 플러그인 사용해보기 (0) | 2022.10.01 |
댓글