-
Cross hair FactorGame Programming/언리얼 2023. 10. 10. 17:08
케릭터가 점프 중일 때
if (GetCharacterMovement()->IsFalling()) { CrosshairInAirFactor = FMath::FInterpTo(CrosshairInAirFactor, 2.25f, DeltaTime, 2.25f); } else { CrosshairInAirFactor = FMath::FInterpTo(CrosshairInAirFactor, 0.f, DeltaTime, 30.f); }
조준 중일 때
if (bAiming) { CrosshairAimFactor = FMath::FInterpTo(CrosshairAimFactor, 0.6f, DeltaTime, 30.f); } else { CrosshairAimFactor = FMath::FInterpTo(CrosshairAimFactor, 0.f, DeltaTime, 30.f); }
총을 쏠 때
if (bFiringBullet) { CrosshairShootingFactor = FMath::FInterpTo( CrosshairShootingFactor, 0.3f, DeltaTime, 60.f); } else { CrosshairShootingFactor = FMath::FInterpTo( CrosshairShootingFactor, 0.f, DeltaTime, 60.f); }
CrosshairVelocityFactor 간격 넓어진다. CrosshairInAirFactor 간격 넓어진다. CrosshairAimFactor 간격 좁아진다 CrosshairShootingFactor 간격 넓어진다 CrosshairSpreadMultiplier = //1.f보다 큰 값을 가지면 Crosshair 간격이 넓어진다. 1.f + //속도가 상승 할 수록 Crosshair 간격 널어진다. CrosshairVelocityFactor + //공기 중에 떠 있을 수록 Crosshair 간격 널어진다. CrosshairInAirFactor - //조준 할 때 간격 좁아진다. CrosshairAimFactor + // 총을 쏠 때 간격 넓어진다. CrosshairShootingFactor;
마우스 왼쪽을 클린하면 타이머가 실행된다.
void AMyCharacter::StartCrosshairBulletFire() { bFiringBullet = true; GetWorldTimerManager().SetTimer( CrosshairShootTimer, this, &AMyCharacter::FinishCrosshairBulletFire, ShootTimeDuration); }
타이머에 전달한 함수에서
void AMyCharacter::FinishCrosshairBulletFire() { bFiringBullet = false; if (PointLight) { PointLight->SetVisibility(false); } }
bFiringBullet을 끄고, 포인트 라이트를 끄도록 했다.
'Game Programming > 언리얼' 카테고리의 다른 글
점프 애니메이션 추가 (0) 2023.10.11 카메라 흔들리는 효과 (1) 2023.10.11 Add CrossMultiplier to HUD (0) 2023.10.10 Aiming 애니메이션 추가 (0) 2023.10.09 ZoomIn ZoomOut 마우스 민감도 조절 (0) 2023.10.09