我试图在游戏结束屏幕上显示高分,因此我需要使用 PlayerPrefs 来存储高分。问题是当我使用 PlayerPrefs.GetFloat().ToString() 方法时,我无法将秒转换为分钟。您知道这个 ((@"mm:ss)) 方法适用于 TimeSpan 但 PlayerPrefs.GetFloat() 是一个浮点值,所以我也不能使用该方法。我尝试了 .ToString(string.Format("{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"); }}
1 回答
BIG阳
TA贡献1859条经验 获得超6个赞
using System;
//...
TimeSpan time = TimeSpan.FromSeconds(PlayerPrefs.GetFloat("key"));
Debug.Log(time.Minutes + ":" + time.Seconds);
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消