一个简单的问题。我正在玩一些教程中的小游戏,但想要添加一个减少每秒的分数。我设法通过下面提供的代码这样做,但分数只降低了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;
}
}
答案 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);
}
}
}