Стоп считать, когда игра окончена и сохранить значение

Для моей новой игры в Unity3D я создал код Javascript, который позволяет считать, когда игрок играет, и отображать значение в GUIText.

Но у меня есть некоторые проблемы.

В игре начинается отсчет, и текст GUIT показывает значение счетчика. Но когда я заканчиваю игру, счет не останавливается.

В сцене выхода GUIText, который показывает значение счетчика игровой сцены, перезапустите с 0, и он не остановится.

Вот сценарий:

var Counter : int = 0;
var score : GUIText;

function Start () {

}

function Update () {

  Counter++;
  score.text = Counter.ToString();

}

Итак, я хочу остановить счет, когда игра закончится, и сохранить значение, чтобы в следующей сцене GUIText показывал окончательное значение.

Как я могу это сделать?

2 ответа

Вам нужно ограничить приращение счетчика, используя переменное состояние в вашей игре поверх события. (Я не знаю, чем закончится твоя игра)

    var Counter : int = 0;
    var score : GUIText;
    var isGameOver = false; //true this variable as your gameover
    function Start () {

    }

    function Update () {
    //isGameOver variable to check that  the game is over or not
    if(!isGameOver){
      Counter++;
      score.text = Counter.ToString();
    }

    }

Попробуй это:

private var isFinished : boolean = false;

var Counter : int = 0;
var score : GUIText;

function Start () {

}

function Update () {

  if(!isFinished){
      Counter++;
      score.text = Counter.ToString();
  }

  if ("something that makes the game stop") {
       isFinished = true;
  }
}

Затем, чтобы передать переменную в следующую сцену, вы можете использовать PlayerPrefs чтобы сохранить вашу переменную, а затем получить ее в следующей сцене, посмотрите здесь и здесь

Другие вопросы по тегам