인벤토리에 있는 아이템을 사용하여 물체와 상호작용하는 것을 구현해볼 것이다.
간단히 에셋을 구해서 Door와 DoorFrame을 Static Mesh로 두었다.
커스텀 이벤트를 만들어서 Door가 시간에 따라 돌아가도록 하였다.
문이 열리고 난 후를 구분하기 위해서 Is Door Opened? Bool 변수를 추가하였다.
타임라인은 위와 같이 1초로 지정하였다.
플레이어 이벤트 틱에 위와 같이 추가하였다.
WoodenKey 변수를 따로 만들어서 이 변수가 BPC Inventory에 있고 Is Door Opended가 False일 경우 상호작용 위젯이 보이도록 설정하였다.
즉 인벤토리에 WoodenKey가 없으면 가까이 갔을 때 상호작용 위젯이 뜨지 않고 WoodenKey가 있어야 위젯이 표시된다.
플레이어의 E키 상호작용이다.
마찬가지로 WoodenKey가 있을시에만 동작하고 ForEachLoopWithBreak로 Objects배열의 모든 Elements를 확인하여 이름이 WoodenKey일 경우의 Index를 가져와 배열의 그 Index값에서 Quantity값을 -1 한다.
즉, E키를 눌러 문과 상호작용을 하면 인벤토리에서 Key의 값을 -1한다.
열쇠가 없으면 문에 다가가도 Interact가 표시되지 않는다.
열쇠를 얻고나면 문에 다가갈시 Interact가 표시되고 상호작용도 가능하다.
E키를 누르면 문이 열리고 인벤토리에서 열쇠가 사용되어 없어진다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발 (34) _ 향상된 레벨이동 (0) | 2024.09.02 |
---|---|
첫 게임 개발 (33) _ 체크포인트와 리스폰 구현 (0) | 2024.09.01 |
첫 게임 개발 (31) _ 인벤토리 구현 (0) | 2024.08.31 |
첫 게임 개발 (30) _ 숨겨진 장소 만들기 (0) | 2024.08.23 |
첫 게임 개발 (29) _ 대화 시스템 추가 및 간단한 컷씬 구현 (0) | 2024.08.21 |