-
무기 교체Game Programming/언리얼 2023. 10. 18. 18:13
void AMyCharacter::SelectButtonPressed() { if (TraceHitItem) { auto TraceHitWeapon = Cast<AWeapon>(TraceHitItem); SwapWeapon(TraceHitWeapon); } GEngine->AddOnScreenDebugMessage(1, 1, FColor::Green, FString::Printf(TEXT("SelectButtonPressed"))); }
무기 교체를 하기 위해 'T" 버튼을 누르면 현재 Trace 중인 무기와 스왑하도록 코드를 변경했다.
void AMyCharacter::SwapWeapon(AWeapon* WeaponToSwap) { DropWeapon(); EquipWeapon(WeaponToSwap); TraceHitItem = nullptr; TraceHitItemLastFrame = nullptr; }
스왑을하면 기존 무기를 버리고 Trace중인 무기를 장착하도록 했다.
TraceHitItem = nullptr; TraceHitItemLastFrame = nullptr;
무기 교체가 일어나면 TraceHitItem과 TraceHitItemLastFrame을 초기화시켜 더 이상 Trace하지 않도록 했다.
void AMyCharacter::TraceForItems() { if (bShouldTraceForItems) { GEngine->AddOnScreenDebugMessage(1, 1, FColor::Green, FString::Printf(TEXT("bShouldTraceForItems"))); FHitResult ItemTraceResult; FVector HitLocation; TraceUnderCrosshairs(ItemTraceResult, HitLocation); if (ItemTraceResult.bBlockingHit) { TraceHitItem = Cast<Aitem>(ItemTraceResult.GetActor());
Trace하는 아이템도 저장하도록 멤버 변수로 변경했다.
'Game Programming > 언리얼' 카테고리의 다른 글
문 소켓 추가 (0) 2023.10.19 문 물리 작용 업데이트 (0) 2023.10.19 무기 버리는 물리효과 추가 (1) 2023.10.18 Item Falling State (0) 2023.10.17 무기 버리기 (1) 2023.10.17