언리얼 - 게임 개발

첫 게임 개발 (32) _ 아이템 사용시 물체와 상호작용

earth-star 2024. 9. 1. 02:04

인벤토리에 있는 아이템을 사용하여 물체와 상호작용하는 것을 구현해볼 것이다.

간단히 에셋을 구해서 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키를 누르면 문이 열리고 인벤토리에서 열쇠가 사용되어 없어진다.