Make Unreal REAL.
article thumbnail
Unreal Engine: Ultimate Survival Horror Course

 

손전등 배터리를 관리할 BPC_Flashlight 컴포넌트를 생성한다.

 


L1_Character에 있는 손전등 Spot Light 컴포넌트를 저장할 Spot Light Component (Object Reference) 타입의 FlashlightLight 변수를 생성한다.

  • 그냥 Spot Light가 아닌 Spot Light Component임에 주의해야 한다.
  • Light Component는 모든 종류의 라이트를 담을 수 있으므로 이것으로 해도 된다.

 

 

BPC_Flashlight에 Initialize 함수를 추가한다.

 


L1_Character에 BPC_Flashlight 컴포넌트를 생성한다.

 


Initialize 함수 뒷 부분에 BPC_Flashlight의 Initialize를 호출하여 변수의 값을 설정한다.

 


BPC_Flashlight에 최대 배터리량, 현재 배터리량, 최소 배터리량, 감소량, 감소 속도 변수를 추가한다.

 

 

아이템 사용 시 배터리 증가 함수 AddBatteryLife, 손전등을 켰을 때 배터리 감소 함수 DepleteBatteryLife를 생성한다.

 

 

L1_Character의 FlashlightToggle 이벤트에서 구현 내용을 가져와 ToggleFlashlight 함수를 생성한다.

  • 배터리가 없는 상태에서는 조작하지 못하도록 한다.
  • 손전등을 켜면 감소 속도에 따라 타이머를 이용해 배터리 감소 함수를 호출한다.
  • 손전등을 끄면 배터리 감소 함수를 중지시킨다.

 

FlashlightToggle 이벤트는 방금 생성한 함수로 처리하도록 한다.

 

 

L1_Character에 현재 배터리 잔류량을 출력하는 Debug용 노드를 추가한다.

 


BP_InventoryItem_Master의 BeginPlay에서 PlayerRef 변수를 추가하고 설정한다.

 

 

아이템 사용 성공 여부를 저장할 Boolean 타입의 Use Item Success 변수를 생성한다.

 


BP_InventoryItem_FlashlightBattery의 Use Item 이벤트에서 디버그용 Print String 노드를 제거하고 실제 기능을 구현한다.

 

BatteryAmount 변수를 생성해 충전할 양을 지정한다.

 

배터리가 완충 상태가 아닐 때만 배터리 아이템을 사용할 수 있도록 한다.

 


BPC_Inventory의 Use Item 함수 마지막 부분에 UseItemSuccess 값이 true일 때만 인벤토리에서 아이템을 삭제하도록 한다.

 

한 종류의 아이템을 처음 획득하면 Get Actor Of Class 노드의 객체는 Not Valid 상태이다.

이때는 SpawnActor를 해서 액터를 생성해주고 그 반환 값을 사용해야 한다.

 

 

손전등 배터리 구현에 성공했다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그