2016-07-28 4 views
0

Есть ли способ вернуться к моему предыдущему игровому приложению, когда я закрываю приложение для закрытия/закрытия игры при нажатии кнопки. В основном у меня есть сцена с кнопкой в ​​нем, если игрок нажмет кнопку, он выведет их на новый уровень (сцена 1). Здесь я хочу сохранить эту сцену (сцена 2), используя что-то вроде playerprefs, чтобы следить за ней, чтобы, если я закрываю приложение для игры или закрываю единство, а затем снова открываю и воспроизвожу приложение (независимо от того, какая сцена I am in) игра должна автоматически вернуть меня на сцену 2. Возможно ли вернуться к предыдущему приложению (даже если я закрою приложение или игру) при нажатии кнопки? Итак, если кнопка нажата, и я выхожу из приложения и/или игры, тогда откройте ее и сыграйте в игру, после чего она автоматически вернет меня на сцену, из которой я вышел (сцена 2)Unity2d: возврат к предыдущему приложению при нажатии кнопки

+0

Возможно вернуть игру обратно в то же состояние, в котором оно было, когда оно было закрыто, но что касается возврата к предыдущему приложению, я сомневаюсь в этом, но это будет зависеть от того, на какой платформе мы говорим. – Droppy

ответ

0

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

using UnityEngine.SceneManagement; 

void quitGame() 
{ 
    Scene currentScene = SceneManager.GetActiveScene(); 
    PlayerPrefs.SetString("lastSceneName",currentScene.name); 
    Application.Quit(); 
} 

код, указанный выше, сохранит имя текущей сцены во время закрытия приложения.

Теперь, когда вы перезагружаете игру и загружается ваша сцена (0). вызовите следующий метод в функции Start() или Awake().

void loadLastScene() 
{ 
    if (PlayerPrefs.GetInt("isFirstTime") == 0) //this is to make sure this chunk of code doen't run on the very first usage. 
    { 
     PlayerPrefs.SetInt("isFirstTime", 1); 
    } 
    else if (PlayerPrefs.GetInt("isFirstTime") == 1) 
    { 
    SceneManager.LoadScene(PlayerPrefs.GetString("lastSceneName")); 
    } 
} 

Код не проверен.

+0

Зачем использовать 'PlayerPrefs.SetInt (« isFirstTime », 1);'? Разве это не повлияет на функциональность игры * в следующий раз? Почему бы просто не сохранить этот флаг в переменной экземпляра? – Droppy

+0

Ой, Просто глупая ошибка, которую я там сделал. Позвольте мне изменить –

+0

Но если вы снова закроете приложение, а затем снова откроете его, сцена не будет загружена. – Droppy

Смежные вопросы