CapersProject/Assets/02.Scripts/Ui/GameTimeUi.cs

48 lines
1.4 KiB
C#

using System;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Uis
{
public class GameTimeUi : MonoBehaviour
{
[SerializeField]
private Transform _handHour;
private GameTimeManager _gameTimeManager;
private TimeSpan _openTime;
private TimeSpan _closeTime;
private TimeSpan _currentTime;
private void Awake()
{
_gameTimeManager = GameTimeManager.Instance;
_openTime = _gameTimeManager.GetTycoonOpenTimeSpan();
_closeTime = _gameTimeManager.GetTycoonCloseTimeSpan();
}
private void Start()
{
InitializeComponents();
}
private void Update()
{
_currentTime = _gameTimeManager.GetCurrentGameTime();
var openTimeHours = (float)_openTime.TotalHours;
var closeTimeHours = (float)_closeTime.TotalHours;
var currentTimeHours = (float)_currentTime.TotalHours;
var t = (currentTimeHours - openTimeHours) / (closeTimeHours - openTimeHours);
var hourAngle = Mathf.Lerp(90f, -90f, t);
_handHour.localRotation = Quaternion.Euler(0, 0, hourAngle);
}
[Button("컴포넌트 초기화")]
private void InitializeComponents()
{
_handHour = transform.Find("Clock/HourHand");
}
}
}