Unity NGUI C#計時器製作(時:分:秒)

views

unity-ngui-timer-timespan

遊戲中大多會有計時功能需求,除了一秒一秒顯示數字外,有時會需要顯示01:23:31這樣格式的可能性,除了在Unity中寫入換算的程式碼之外,還可以使用TimeSpan功能來簡化程式碼,並提升程式可讀性,以下為實際範例分享:

主要需製作兩個功能:

  • 顯示 15:59:13 這樣的計時格式 (在我的遊戲中是指過了15小時59分13秒)
  • 遊戲結束後歸零重設(Reset Timer)

15:59:13 時:分:秒 計時格式製作

  • 使用TimeSpan
  • 使用Time.deltaTime 讓遊戲結束後可歸零重設
  • 格式設定

using UnityEngine;
using System.Collections;
using System; //#1

public class SurvivalTimer : MonoBehaviour 
{
  public UILabel timerLabel; //#2
  private string timerText; 
  private float temp; 

  void Start()
  {

  }

  void Update () 
  {  
    temp += Time.deltaTime; //#3
    TimeSpan timeSpan = TimeSpan.FromSeconds(temp); //#4

    timerText = string.Format("{0:D2}:{1:D2}:{2:D2}", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds); //#5
    timerLabel.text = timerText; //#6

  }


}
									

重點說明 :

  • #1 因為會使用TimeSpan( ) 所以要將using System這行加進來
  • #2 這是之後要將時間用NGUI顯示用的
  • #3 讓起始時間從零開始
  • #4 使用TimeSpan來進行時間顯示的設定
  • #5 因為希望顯示格式為00:00:00 所以用這樣的方式。以{0:D2}為例:0是表示顯示順序在最左邊(依序向右用1,2..來決定顯示順序)。D2表示要顯示的位數為2位,也就是00。中間用 : 來分隔

 

This entry was posted in Meteor Shower, Unity小技巧 by Mr.M. Bookmark the permalink.


Leave a Reply

Your email address will not be published. Required fields are marked *