Update()
и OnGUI()
не зависят от шкалы времени, поэтому на них не влияет установка Time.timeScale
на 0
.Это влияет только на FixedUpdate()
.
Как сказано в Документации :
Когда timeScale установлен на ноль, игра в основном приостанавливается , есливсе ваши функции не зависят от частоты кадров . (выделено мной)
Вы должны использовать некоторую логику для ваших Update()
вызовов, например:
1) Пусть движения зависят от масштаба времени,Если ваши персонажи двигаются с переводом, сделайте следующее:
transform.Translate(Vector3.forward * Time.deltaTime);
2) Применяйте Update()
логику, только если игра не приостановлена:
void Update(){
if (Time.timeScale == 0)
return;
//...
}
или
void Update(){
if (pause)
return;
//...
}