Как сделать кнопку назад в Unity?

658
08 августа 2017, 13:30

Как сделать кнопку назад на Cancel, так, чтобы при возврате происходило автосохранение изменений в сцене из которой хотят выйти.

Answer 1

Если нужна кнопка Cancel, по нажатию на которую все происходит:

1) Создаете кнопку

2) вешаете на нее скрипт с функцией (добавьте в скрипт using UnityEngine.SceneManagement;)

 public void CancelMyScene()
    {
        // аналогично для float или string, но пишите SetFloat или SetString
        PlayerPrefs.SetInt ("Тут ключ, на который сохраняются значения", 42); // 42 - тут любое int, какое хотите сохранить
        // все, что нужно сохранить
        SceneManager.LoadScene (0); // загружаете нужную сцену
    }

3) выбираете кнопку, и в On Click() жмете +

4) переносите скрипт на кнопке в None, который появился в On Click()

5) в On Click() жмете по No Function, там ищите вашу функцию и выбираете ее.

Все это можно делать не вручную, а в коде.

Вариант 2. Если нужно сделать так, чтобы все это делалось при нажатии кнопки "назад" на телефоне/планшете:

1) Создаете скрипт на любом объекте на сцене

2)

using UnityEngine.SceneManagement; // обязательно
public class BUTEST : MonoBehaviour {
    // Update is called once per frame
    void Update ()
    {
        if (Application.platform == RuntimePlatform.Android ||
            Application.platform == RuntimePlatform.WindowsEditor)
        {
            if (Input.GetKeyDown (KeyCode.Escape))
            {
                // аналогично для float или string, но пишите SetFloat или SetString
                PlayerPrefs.SetInt ("Тут ключ, на который сохраняются значения", 42); // 42 - тут любое int, какое хотите сохранить
                // все, что нужно сохранить
                SceneManager.LoadScene (0); // загружаете нужную сцену
            }
        }
    }
}

Наверно, можно лучше, но и так работает

READ ALSO
@Url.Action не находит View

@Url.Action не находит View

Есть view: Views\WindowCalc\ChooseWindowcshtml Есть контроллер: Controllers\WindowCalcController

600
Разница в выбранном потоке между TaskCompletionSource и Task.Factory.StartNew

Разница в выбранном потоке между TaskCompletionSource и Task.Factory.StartNew

С практическим асинхронным программированием столкнулся относительно недавно, и, изучая тему детальнее, назрел вопрос: При создании задачи...

404
Связывание Entity Framework Core SqLite с WPF

Связывание Entity Framework Core SqLite с WPF

Как связать WPF с EF Core Sqlite и что прописывать в appconfig? Если нельзя связать

348
c# reportviwer передача параметров в отчет

c# reportviwer передача параметров в отчет

Здравствуйте, назрел вопрос по передаче параметров в отчет

305