在 UI Unity 上显示 TimeSpan 计时器
Display TimeSpan timer on UI Unity
我的 Unity 项目中有运行计时器的代码,计时器使用 DateTime 在多个场景中运行,我试图让时间在编辑器中可见,这样我就可以让倒计时在 UI.
这是倒计时的脚本;
public static class GlobalCountDown
{
static DateTime TimeStarted;
static TimeSpan TotalTime;
public static void StartCountDown(TimeSpan totalTime)
{
TimeStarted = DateTime.UtcNow;
TotalTime = totalTime;
}
public static TimeSpan TimeLeft
{
get
{
var result = TotalTime - (DateTime.UtcNow - TimeStarted);
if (result.TotalSeconds <= 0)
return TimeSpan.Zero;
return result;
}
}
}
下面是我在每个场景中调用的用于携带计时器的脚本;
GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (8));
该功能正常运行,但我不确定如何使其在 UI 中可见,我尝试使用以下方法,但运气不佳;
string timeLeft = GlobalCountDown.TimeLeft.TotalSeconds().ToString("D2");
如有任何帮助或建议,我们将不胜感激。
使用 UI 文本对象。
[SerializeField] Private Text countdownTimer; // will require UnityEngine.UI at top
每次 change/reduce 计时器值更新 countdownTimer
的 text
属性。
countdownTimer.text = your_time_left_var.ToString();
我的 Unity 项目中有运行计时器的代码,计时器使用 DateTime 在多个场景中运行,我试图让时间在编辑器中可见,这样我就可以让倒计时在 UI.
这是倒计时的脚本;
public static class GlobalCountDown
{
static DateTime TimeStarted;
static TimeSpan TotalTime;
public static void StartCountDown(TimeSpan totalTime)
{
TimeStarted = DateTime.UtcNow;
TotalTime = totalTime;
}
public static TimeSpan TimeLeft
{
get
{
var result = TotalTime - (DateTime.UtcNow - TimeStarted);
if (result.TotalSeconds <= 0)
return TimeSpan.Zero;
return result;
}
}
}
下面是我在每个场景中调用的用于携带计时器的脚本;
GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (8));
该功能正常运行,但我不确定如何使其在 UI 中可见,我尝试使用以下方法,但运气不佳;
string timeLeft = GlobalCountDown.TimeLeft.TotalSeconds().ToString("D2");
如有任何帮助或建议,我们将不胜感激。
使用 UI 文本对象。
[SerializeField] Private Text countdownTimer; // will require UnityEngine.UI at top
每次 change/reduce 计时器值更新 countdownTimer
的 text
属性。
countdownTimer.text = your_time_left_var.ToString();