ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 무기 교체
    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
Designed by Tistory.