Всё работает хорошо, но со второго раза, когда я вхожу из меню на уровень, он почему-то уже на паузе. И только когда я 2 раза нажму на Esc, всё начинает работать. Помогите пожалуйста решить проблему, заранее спасибо.
Скрипт прикрепил к игроку. using UnityEngine; using System.Collections;
public class PauseEsc : MonoBehaviour { public bool paused; public GameObject canvas; // Use this for initialization void Start () { paused = false; }
// Update is called once per frame void Update () { if (Input.GetKeyDown (KeyCode.Escape)) { if (!paused) { Time.timeScale = 0; paused = true; canvas.SetActive (true); } else { Time.timeScale = 1; paused = false; canvas.SetActive (false); } } } }
Потому что вы выставляете timeScale в 0, но при выходе с уровня в меню или при входе на уровень не выставляете его обратно, только сбрасываете флаг paused (что кстати делать не обязательно он так и так false, если конечно не меняли вручную в инспекторе). Добавьте в Start()
Код
Time.timeScale = 1;
если по умолчанию канвас активен то еще и
Код
canvas.SetActive(false);
Но судя по тому, что при первом входе все нормально, канвас изначально не активен)
Сообщение отредактировал Irbis - Воскресенье, 06 Января 2019, 12:25