Unity:如何加快倒计时倒计时

时间:2018-01-06 14:59:01

标签: c# unity3d unity5 unity3d-2dtools

一个简单的问题。我正在玩一些教程中的小游戏,但想要添加一个减少每秒的分数。我设法通过下面提供的代码这样做,但分数只降低了1秒。我想以某种方式加速它,所以它可以通过让我们说150来降低每秒。我尝试了一些东西,但它们不起作用,并且大多数甚至没有记录游戏中GUI的变化。任何帮助表示赞赏!

代码:

public class GameOver : MonoBehaviour {

    public GameObject gameOverScreen;
    public Text Score;
    public Text Highscore;

    bool gameOver;
    private int score = 12000;

    void Start () {
        FindObjectOfType<PlayerController>().OnPlayerDeath += OnGameOver;
    }


    public void Update () {

        Score.text = Mathf.Round(score - Time.timeSinceLevelLoad).ToString();

        if (gameOver)
        {
            if (Input.GetKeyDown (KeyCode.Space))
            {
                SceneManager.LoadScene(1);
            }
        }
    }

     void OnGameOver()
    {
        gameOverScreen.SetActive (true);
        Highscore.text = Mathf.Round(score - Time.timeSinceLevelLoad ).ToString();

        gameOver = true;
    }
}

2 个答案:

答案 0 :(得分:2)

不要重复自己。制作一个获得分数的功能。

int GetScore() {
    return score - (int)Time.timeSinceLevelLoad * 150;
}

然后使用它。

void Update() {
    Score.text = GetScore().ToString();
}

答案 1 :(得分:1)

更改此部分

 Score.text = Mathf.Round(score- Time.deltaTime*150).ToString(); 

-

public void Update () {

            Score.text = Mathf.Round(score- Time.deltaTime*150).ToString();

            if (gameOver)
            {
                if (Input.GetKeyDown (KeyCode.Space))
                {
                    SceneManager.LoadScene(1);
                }
            }
        }