嗨,我想知道,如果有人知道如何使这个定时器只做小数点后两位。目前,它显示的小数点后6位。我正在做一个计时器,从0开始上升,看看玩家需要多长时间来完成一个课程。如果你知道如何使定时器也进行当你死了,并转移到下一个场景,这将是感激。再次感谢。
以下是我使用的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timer : MonoBehaviour
{
public float timeStart = 0;
public Text textBox;
// Start is called before the first frame update
void Start()
{
PlayerPrefs.SetInt("Second", 59);
PlayerPrefs.SetInt("Minute", 9);
StartCoroutine("bekle1sn");
textBox.text = timeStart.ToString();
}
// Update is called once per frame
void Update()
{
timeStart += Time.deltaTime;
textBox.text = (timeStart).ToString("F2");
textBox.enabled = true;
textBox.text = PlayerPrefs.GetInt("Minute") + ":" + PlayerPrefs.GetInt("Second").ToString();
}
IEnumerator bekle1sn()
{
for (int iCnt = 0; iCnt < 600; iCnt++)
{
yield return new WaitForSeconds(1); //Bekleme
PlayerPrefs.SetInt("Second", PlayerPrefs.GetInt("sureSaniye") + 1);
if (PlayerPrefs.GetInt("Second") + 1 == 0)
{
PlayerPrefs.SetInt(("Second"), 0);
PlayerPrefs.SetInt("Minute", PlayerPrefs.GetInt("Minute") + 1);
if (PlayerPrefs.GetInt("Minute") + 1 == 0)
{
// finish the screen
}
}
}
}
}
我最近做了一个这样的项目.我的是从10分钟开始倒计时.你可以自己编辑这段代码,并把它转移到下一个场景。
string fmt = "00.##";
start(){
PlayerPrefs.SetInt ("Second", 59);
PlayerPrefs.SetInt ("Minute", 9);
StartCoroutine("bekle1sn");
}
void Update()
{
sureTextTMP.enabled = true;
sureTextTMP.text = PlayerPrefs.GetInt("Minute") + ":" + PlayerPrefs.GetInt("Second").ToString(fmt);
}
IEnumerator bekle1sn()
{
for (int iCnt = 0; iCnt < 600; iCnt++)
{
yield return new WaitForSeconds(1); //Bekleme
PlayerPrefs.SetInt("Second", PlayerPrefs.GetInt("Second") - 1);
if (PlayerPrefs.GetInt("Second") - 1 == 0)
{
PlayerPrefs.SetInt(("Second"), 59);
PlayerPrefs.SetInt("Minute", PlayerPrefs.GetInt("Minute") - 1);
if (PlayerPrefs.GetInt("Minute") - 1 == 0)
{
// finish the screen
}
}
}
}
你可以使用String类的格式化功能,像这样。
textBox.text = (timeStart).ToString("F2");
这将会把它四舍五入到你需要的两位小数。
textBox.text = (timeStart).ToString("F0");
这将把它四舍五入到一个整数
使用 标准数字格式字符串:
float f = 12.4435345f;
f.ToString("F2"); // 12.44