반응형
FDateTime은 언리얼 엔진 에서 시간 정보를 다루기 위한 핵심 클래스입니다. 이 클래스를 통해 현재 시간을 가져오거나, 특정 시간 간격을 계산하고, 타임아웃 구현 또는 포맷팅된 문자열로 시간 정보를 표시할 수 있습니다. 특히 UTC 시간, 유닉스 타임스탬프, 문자열 변환 기능까지 제공하여 게임 시스템 내 로그, 타이머, 이벤트 트리거 등에 폭넓게 사용됩니다. 이 글에서는 FDateTime의 기본 사용법부터 시간 계산, 타임아웃 처리, 문자열 포맷까지 초보자를 위한 완전 가이드를 제공합니다.
1. 현재 시간 구하기 (UTCNow와 Now)
FDateTime UtcTime = FDateTime::UtcNow();
FDateTime LocalTime = FDateTime::Now();
UE_LOG(LogTemp, Log, TEXT("UTC Time: %s"), *UtcTime.ToString());
UE_LOG(LogTemp, Log, TEXT("Local Time: %s"), *LocalTime.ToString());
2. 유닉스 타임스탬프 다루기
FDateTime Now = FDateTime::UtcNow();
int64 UnixTimestamp = Now.ToUnixTimestamp();
UE_LOG(LogTemp, Log, TEXT("Unix Time: %lld"), UnixTimestamp);
FDateTime FromUnix = FDateTime::FromUnixTimestamp(UnixTimestamp);
3. 시간 계산과 타임아웃 처리
FDateTime StartTime = FDateTime::UtcNow();
FDateTime ExpireTime = StartTime + FTimespan(0, 0, 30); // 30초 타이머
// 현재 시간 기준으로 남은 시간 계산
FTimespan Remaining = ExpireTime - FDateTime::UtcNow();
// 조건 판단: 남은 시간이 0 이하이면 타임아웃
if (Remaining.GetTotalSeconds() <= 0)
{
UE_LOG(LogTemp, Warning, TEXT("타임아웃 발생!"));
}
else
{
UE_LOG(LogTemp, Log, TEXT("남은 시간: %.0f초"), Remaining.GetTotalSeconds());
}
4. 시간 포맷 문자열로 출력하기
FDateTime Time = FDateTime::UtcNow();
int32 Hour = Time.GetHour();
int32 Minute = Time.GetMinute();
int32 Second = Time.GetSecond();
FString TimeString = FString::Printf(TEXT("%02d:%02d:%02d"), Hour, Minute, Second);
UE_LOG(LogTemp, Log, TEXT("Formatted Time: %s"), *TimeString);
5. 결론: FDateTime은 게임 시간 처리의 핵심
FDateTime은 언리얼에서 시간 처리를 위한 가장 기본이자 강력한 클래스입니다. 현재 시간 조회, 타이머 처리, 유닉스 시간 변환, 문자열 포맷 출력까지 다양한 기능을 제공합니다. 특히 게임 내 쿨다운, 서버 이벤트 시간 검증, 로그 기록 등에서 필수적으로 활용됩니다. 초보 개발자라면 UtcNow()부터 익히고 FTimespan과 함께 사용하는 구조를 익혀두는 것이 좋습니다.
🔗 관련 공식 문서
반응형
'Unreal Engine' 카테고리의 다른 글
Paused 상태에서도 Tick이 가능? (FTickableGameObject 활용법, Tick 우회, 게임정지 대응) (2) | 2025.05.06 |
---|---|
Unreal Engine iOS에서 LaunchURL 동작 오류 대응 가이드 (iOS 18 대응) (0) | 2025.05.05 |
언리얼 델리게이트 완전정복 (Single, Multicast, Dynamic, Event, Params) (0) | 2025.05.03 |
UE 초보 개발자를 위한 FString 완전정복 (0) | 2025.05.02 |
[android] Invalid keystore format (0) | 2023.10.24 |