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를 해서 액터를 생성해주고 그 반환 값을 사용해야 한다.
손전등 배터리 구현에 성공했다.
'Unreal Engine > Ultimate Survival Horror Course' 카테고리의 다른 글
플레이어 체력 구현 (0) | 2023.02.09 |
---|---|
손전등 페이드 기능 추가 (0) | 2023.02.09 |
새로운 아이템 추가하기 (0) | 2023.02.08 |
인벤토리 슬롯 확장하기 (0) | 2023.02.08 |
조사하기 아이템 회전 기능 추가 (0) | 2023.02.08 |