如何在播放器首选项中将秒转换为分钟



我试图在屏幕上显示我的游戏的高时间分数,所以我需要使用 PlayerPrefs 来存储高分数。问题是当我使用PlayerPrefs.GetFloat((时,我无法将秒转换为分钟。ToString(( 方法。你知道这个((@"mm:ss((方法适用于TimeSpan,但PlayerPrefs.GetFloat((是一个浮点值,所以我也不能使用这种方法。

我试过了。ToString(string.格式("{0:00}:{1:00}",分钟,秒((,但它显示不准确(01:41 而不是 02:21,我认为大约是 141 秒 = 2 分 21 秒(。请帮助我。

private DateTime startTime;
private TimeSpan gameLength;
private void Start()
{
startTime = DateTime.Now;
gameLength = DateTime.Now - startTime;
string minutes = gameLength.Minutes.ToString("00");
string seconds = gameLength.Seconds.ToString("00");
mostTimeSurvived.text = 
PlayerPrefs.GetFloat("HighTime").ToString(string.Format("{0:00}:{1:00}", minutes, seconds));
}
public void Finish()
{
finished = true;
gameLength = DateTime.Now - startTime;
float gameTimer = (float)gameLength.TotalSeconds;
if (PlayerPrefs.GetFloat("HighTime") < gameTimer)
{
PlayerPrefs.SetFloat("HighTime", gameTimer);
mostTimeSurvived.text = gameLength.ToString(@"mm:ss");
}
}
using System;
//...
TimeSpan time = TimeSpan.FromSeconds(PlayerPrefs.GetFloat("key"));
Debug.Log(time.Minutes + ":" + time.Seconds);

最新更新