Game Over Scene不起作用(Unity C#)

时间:2016-03-04 07:31:35

标签: c# unity3d

我在Unity C#中制作游戏,我想制作游戏场景。

我创建了一个C#脚本(GameOverScript):

using UnityEngine;
using System.Collections;

public class GameOverScript : MonoBehaviour {

int score = 0;

void Start () {


    score = PlayerPrefs.GetInt("Score");

}

void OnGUI()
{
    GUI.Label(new Rect(Screen.width / 2 - 40, 50, 80, 30), "GAME OVER");
    GUI.Label(new Rect(Screen.width / 2 - 40, 300, 80, 30), "Score: " + score);
    if (GUI.Button(new Rect(Screen.width / 2 - 30, 350, 60, 30), "Retry?"));
    {
        Application.LoadLevel(0);
    }
}

}

它可以工作,但它只显示约2秒钟,游戏会自动重启。代码有什么问题?

2 个答案:

答案 0 :(得分:2)

请删除; (位于条件之后)

GUI.Label(new Rect(Screen.width / 2 - 40, 300, 80, 30), "Score: " + score);
if (GUI.Button(new Rect(Screen.width / 2 - 30, 350, 60, 30), "Retry?")) //---->;
{
    Application.LoadLevel(0);
}

答案 1 :(得分:1)

您熟悉IEnumerator函数吗?我倾向于延迟的方式是使用WaitForSeconds()。例如,

IEnumerator PauseFunc(){

yield return new WaitForSeconds(5); //5 second pause

}

然后在您想启动CoRoutine的代码中进行备份。 StartCoroutine(“ PauseFunc”);