시간 UI

  • UI 상에 시간을 표기 하는 기능 제작

UI 제작

  • 간단한 Image 및 TMP로 시계 제작

TimeUI 스크립트 작성

public class TimeUI : MonoBehaviour  
{  
	private TextMeshProUGUI _time;  
	private float _timer = 0f;  
	private const string TimeZone = "Asia/Seoul";
	  
	private void Start()  
	{  
		_time = GetComponent<TextMeshProUGUI>();  
		UpdateTime();  
	}  
	  
	/// <summary>  
	/// 타이머가 1 보다 커지면 UpdateTime() 을 호출하여 매 초마다 시간이 변하게 됩니다.  
	/// </summary>  
	private void Update()  
	{  
		_timer += Time.deltaTime;  
		if (!(_timer >= 1f)) return;  
		UpdateTime();  
		_timer = 0;  
	}  
	  
	/// <summary>  
	/// 한국시간을 표시  
	/// </summary>  
	private void UpdateTime()  
	{  
		DateTime utcNow = DateTime.UtcNow;  
		TimeZoneInfo koreaTimeZone = TimeZoneInfo.FindSystemTimeZoneById(TimeZone);  
		DateTime koreanTime = TimeZoneInfo.ConvertTimeFromUtc(utcNow, koreaTimeZone);  
		  
		// 2023/11/29  
		// [오전] 05:19:34  
		  
		// AM/PM (오전/오후)  
		string amPm = koreanTime.Hour < 12 ? "오전" : "오후";  
		  
		// 12시간을 기준으로 값이 바뀜  
		int hour = koreanTime.Hour % 12;  
		if (hour == 0)  
		{  
			hour = 12;  
		}  
		  
		string formattedTime = $"{koreanTime:yyyy/MM/dd} \n[{amPm}] {hour:00}:{koreanTime:mm:ss}";  
		  
		_time.text = formattedTime;  
	}
}
  • 시간표시의 경우 거의 정해진 대로 구현하시면 됩니다.
  • 해당 스크립트는 매초 마다 시간을 업데이트 합니다.
  • TimeZone의 경우 상수로 만들어 스크립트 내부에서 변경하지 않도록 합니다.