私は基本的に私のゲームでカウントダウンタイマーを持っています。私が基本的にやってみたいのは、アプリケーションを終了してもう一度再生しても、タイマーの再生を続けることです。タイマーのカウントダウンを続行します。アプリが閉鎖されているときにカウンタがまだ動作しているときのような一族のようなもの。たとえば、ゲームを終了し、タイマーが1:30(1分、30秒)に設定されているとします。 30秒後にゲームを再開すると、タイマーは1:00(1分、0秒)に表示されます.30秒後にゲームを終了すると、タイマーは1:00(1分、0秒)になります。Unity2D:アプリケーション終了後もタイマーを再開する方法
これまでのところ、これは限り私が持っているようです:
パブリッククラスTimeManager:MonoBehaviour {
public Text timer;
float minutes = 5;
float seconds = 0;
float miliseconds = 0;
public int curHealth;
public int maxHealth = 3;
void Start()
{
curHealth = maxHealth;
}
void Awake()
{
if (PlayerPrefs.HasKey("TimeOnExit"))
{
var x = DateTime.Now - DateTime.Parse(PlayerPrefs.GetString("TimeOnExit"));
PlayerPrefs.DeleteKey("TimeOnExit");
}
}
void Update(){
if(miliseconds <= 0){
if(seconds <= 0){
minutes--;
seconds = 59;
}
else if(seconds >= 0){
seconds--;
}
miliseconds = 100;
}
miliseconds -= Time.deltaTime * 100;
//Debug.Log(string.Format("{0}:{1}:{2}", minutes, seconds, (int)miliseconds));
timer.text = string.Format("{0}:{1}", minutes, seconds, (int)miliseconds);
}
private void OnApplicationQuit()
{
PlayerPrefs.SetString("TimeOnExit", DateTime.Now.ToShortTimeString());
}
}