float NewSpeed = GetCharacterMovement()->MaxWalkSpeed * 0.1f;
UE_LOG(LogTemp, Error, TEXT(" %f"), NewSpeed);
GetCharacterMovement()->MaxWalkSpeed += NewSpeed;
FTimerHandle myTimerHandle;
GetWorld()->GetTimerManager().SetTimer(myTimerHandle, FTimerDelegate::CreateLambda([&]()
{
GetCharacterMovement()->MaxWalkSpeed -= NewSpeed;
UE_LOG(LogTemp, Error, TEXT(" %f"), NewSpeed);
}), 5.0f, false);
예제코드 짜는 중인데
처음에 캐릭터 무브먼트에서 속도의 10%만큼 올렸다가
5초가 지나면 다시 원래대로 돌리고 싶음.
그래서 처음 캐릭터 속도의 10%를 담은 변수 NewSpeed 만들어서 5초 지나면 다시 그만큼 빼려고했는데
저 타이머 안에서는 NewSpeed가 0으로 나옴 위 사진처럼. 왜이러는걸까요
람다 캡쳐할때 &하면 레퍼런스로 변수 캡쳐하지않나
지역변수를 레퍼런스 캡쳐하지말고 그냥 값 캡쳐하시는거 추천
흠.. [&] 대신 [=] 써보셈
갓니티에서는 코루틴이면 1초민에 짜는 코드누.