2016-07-30 18 views
1

Unityプロジェクトでタイマーを実行するコードがあり、タイマーがDateTimeを使用して複数のシーンを実行しています。私はカウントダウンを表示できるようにエディターで時刻を表示しようとしていますUI上でUIのTimeSpanタイマーを表示Unity

ここにはカウントダウンのスクリプトがあります。

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"); 

これに関する助言やアドバイスは非常に高く評価されます。

答えて

1

UIテキストオブジェクトを使用します。

[SerializeField] Private Text countdownTimer; // will require UnityEngine.UI at top 

更新countdownTimertextプロパティを変更するたびに/タイマー値を下げます。

+0

ファンタスティックで、タイマーがUIに表示され、シーン間のカウントダウンが継続されます。タイマーが合計で8秒になるように設定すると、タイマーは00:00:08と表示されます。最後の2つの数字だけを表示する方法は分かりますか?タイマーは決して10秒を超えることはありません。 次のコードは、タイマーを表示するものです。 \t [SerializeField] \tプライベートテキストカウントダウンタイマー; および countdownTimer.text = GlobalCountDown.TimeLeft.ToString(); – Ethranes

+0

TimeLeftタイプによって異なります。それが単なる整数カウンタであれば、それは単なる整数出力でなければなりません。 TimeLeftが1時間:分:秒の形式になっている場合は、その方法でその方法をフォーマットしないでください。結果には秒が表示されます。ショートカットを使うには 'String.Trim()' –

関連する問題