我在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秒钟,游戏会自动重启。代码有什么问题?
答案 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”);